|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r56767 - in trunk/libs/spirit/doc: . abstracts advanced html html/spirit html/spirit/abstracts html/spirit/abstracts/attributes html/spirit/advanced html/spirit/advanced/customize html/spirit/advanced/customize/assign_to html/spirit/advanced/customize/store_value html/spirit/advanced/indepth html/spirit/karma html/spirit/karma/performance_measurements html/spirit/karma/performance_measurements/numeric_performance html/spirit/karma/quick_reference html/spirit/karma/quick_reference/primitive_generators html/spirit/karma/reference html/spirit/karma/reference/auxiliary html/spirit/karma/reference/binary html/spirit/karma/reference/char html/spirit/karma/reference/directive html/spirit/karma/reference/generator_concepts html/spirit/karma/reference/numeric html/spirit/karma/reference/operator html/spirit/karma/reference/stream html/spirit/karma/reference/string html/spirit/karma/tutorials html/spirit/lex html/spirit/lex/abstracts html/spirit/lex/abstracts/lexer_primitives html/spirit/lex/quick_reference html/spirit/lex/reference html/spirit/lex/reference/lexer_concepts html/spirit/lex/reference/primitives html/spirit/lex/tutorials html/spirit/notes html/spirit/qi html/spirit/qi/quick_reference html/spirit/qi/quick_reference/qi_parsers html/spirit/qi/reference html/spirit/qi/reference/auxiliary html/spirit/qi/reference/binary html/spirit/qi/reference/char html/spirit/qi/reference/directive html/spirit/qi/reference/numeric html/spirit/qi/reference/operator html/spirit/qi/reference/parser_concepts html/spirit/qi/reference/string html/spirit/qi/tutorials html/spirit/structure html/spirit/support
From: joel_at_[hidden]
Date: 2009-10-12 23:10:16
Author: djowel
Date: 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
New Revision: 56767
URL: http://svn.boost.org/trac/boost/changeset/56767
Log:
moving things around
Added:
trunk/libs/spirit/doc/advanced/
trunk/libs/spirit/doc/advanced.qbk (contents, props changed)
trunk/libs/spirit/doc/advanced/customization_points.qbk (contents, props changed)
trunk/libs/spirit/doc/advanced/indepth.qbk (contents, props changed)
trunk/libs/spirit/doc/html/spirit/advanced/
trunk/libs/spirit/doc/html/spirit/advanced.html (contents, props changed)
trunk/libs/spirit/doc/html/spirit/advanced/customize/
trunk/libs/spirit/doc/html/spirit/advanced/customize.html (contents, props changed)
trunk/libs/spirit/doc/html/spirit/advanced/customize/assign_to/
trunk/libs/spirit/doc/html/spirit/advanced/customize/assign_to.html (contents, props changed)
trunk/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_attribute_from_iterators.html (contents, props changed)
trunk/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_attribute_from_value.html (contents, props changed)
trunk/libs/spirit/doc/html/spirit/advanced/customize/clear_value.html (contents, props changed)
trunk/libs/spirit/doc/html/spirit/advanced/customize/extract_from.html (contents, props changed)
trunk/libs/spirit/doc/html/spirit/advanced/customize/is_container.html (contents, props changed)
trunk/libs/spirit/doc/html/spirit/advanced/customize/store_value/
trunk/libs/spirit/doc/html/spirit/advanced/customize/store_value.html (contents, props changed)
trunk/libs/spirit/doc/html/spirit/advanced/customize/store_value/container_value.html (contents, props changed)
trunk/libs/spirit/doc/html/spirit/advanced/customize/store_value/push_back.html (contents, props changed)
trunk/libs/spirit/doc/html/spirit/advanced/customize/transform.html (contents, props changed)
trunk/libs/spirit/doc/html/spirit/advanced/indepth/
trunk/libs/spirit/doc/html/spirit/advanced/indepth.html (contents, props changed)
trunk/libs/spirit/doc/html/spirit/advanced/indepth/parsers_indepth.html (contents, props changed)
trunk/libs/spirit/doc/operator_template.qbk (contents, props changed)
Removed:
trunk/libs/spirit/doc/abstracts/customization_points.qbk
trunk/libs/spirit/doc/abstracts/indepth.qbk
Text files modified:
trunk/libs/spirit/doc/abstracts.qbk | 2
trunk/libs/spirit/doc/html/index.html | 54 +-
trunk/libs/spirit/doc/html/spirit/abstracts.html | 34 -
trunk/libs/spirit/doc/html/spirit/abstracts/attributes.html | 21
trunk/libs/spirit/doc/html/spirit/abstracts/attributes/compound_attributes.html | 185 +++----
trunk/libs/spirit/doc/html/spirit/abstracts/attributes/more_sompound_attributes.html | 166 +++---
trunk/libs/spirit/doc/html/spirit/abstracts/attributes/nonterminal_attributes.html | 44 +
trunk/libs/spirit/doc/html/spirit/abstracts/attributes/primitive_attributes.html | 49 +
trunk/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html | 111 ++--
trunk/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html | 76 +-
trunk/libs/spirit/doc/html/spirit/acknowledgments.html | 121 ++--
trunk/libs/spirit/doc/html/spirit/faq.html | 94 ++-
trunk/libs/spirit/doc/html/spirit/introduction.html | 303 +++++-------
trunk/libs/spirit/doc/html/spirit/karma.html | 17
trunk/libs/spirit/doc/html/spirit/karma/performance_measurements.html | 21
trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance.html | 22
trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/double_performance.html | 257 ++++------
trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/format_performance.html | 255 ++++------
trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/int_performance.html | 257 ++++------
trunk/libs/spirit/doc/html/spirit/karma/quick_reference.html | 21
trunk/libs/spirit/doc/html/spirit/karma/quick_reference/common_notation.html | 102 ++--
trunk/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html | 237 ++++-----
trunk/libs/spirit/doc/html/spirit/karma/quick_reference/non_terminals.html | 299 +++++-------
trunk/libs/spirit/doc/html/spirit/karma/quick_reference/phoenix.html | 40
trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators.html | 23
trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/action.html | 70 +-
trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/auxiliary.html | 236 ++++-----
trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/binary.html | 280 ++++------
trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/boolean.html | 144 ++---
trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/char.html | 649 +++++++++++---------------
trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/directives.html | 674 +++++++++++----------------
trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/operators.html | 273 ++++------
trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/real_number.html | 306 +++++-------
trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/signed_int.html | 302 +++++-------
trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/stream.html | 228 ++++-----
trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/string.html | 140 ++---
trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/unsigned_int.html | 402 +++++++---------
trunk/libs/spirit/doc/html/spirit/karma/quick_reference/semantic_actions.html | 25
trunk/libs/spirit/doc/html/spirit/karma/reference.html | 20
trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary.html | 43 +
trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/attr_cast.html | 158 +++---
trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eol.html | 141 ++---
trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eps.html | 240 ++++-----
trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/lazy.html | 197 +++----
trunk/libs/spirit/doc/html/spirit/karma/reference/binary.html | 33
trunk/libs/spirit/doc/html/spirit/karma/reference/binary/binary_big.html | 336 +++++--------
trunk/libs/spirit/doc/html/spirit/karma/reference/binary/binary_little.html | 339 +++++--------
trunk/libs/spirit/doc/html/spirit/karma/reference/binary/binary_native.html | 428 +++++++----------
trunk/libs/spirit/doc/html/spirit/karma/reference/char.html | 44 +
trunk/libs/spirit/doc/html/spirit/karma/reference/char/char_class.html | 430 +++++++----------
trunk/libs/spirit/doc/html/spirit/karma/reference/char/char_generator.html | 687 ++++++++++++----------------
trunk/libs/spirit/doc/html/spirit/karma/reference/directive.html | 52 +-
trunk/libs/spirit/doc/html/spirit/karma/reference/directive/alignment.html | 592 ++++++++++--------------
trunk/libs/spirit/doc/html/spirit/karma/reference/directive/buffer.html | 160 +++---
trunk/libs/spirit/doc/html/spirit/karma/reference/directive/delimit.html | 239 ++++-----
trunk/libs/spirit/doc/html/spirit/karma/reference/directive/maxwidth.html | 189 +++----
trunk/libs/spirit/doc/html/spirit/karma/reference/directive/omit.html | 148 ++---
trunk/libs/spirit/doc/html/spirit/karma/reference/directive/repeat.html | 330 ++++++-------
trunk/libs/spirit/doc/html/spirit/karma/reference/directive/upperlower.html | 217 ++++----
trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts.html | 19
trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/binarygenerator.html | 198 +++----
trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/generator.html | 235 ++++-----
trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/narygenerator.html | 168 +++---
trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/primitivegenerator.html | 98 ++--
trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/unarygenerator.html | 243 ++++-----
trunk/libs/spirit/doc/html/spirit/karma/reference/karma_basics.html | 116 ++--
trunk/libs/spirit/doc/html/spirit/karma/reference/numeric.html | 48 +
trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/boolean.html | 621 +++++++++++--------------
trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/real_number.html | 956 ++++++++++++++++++---------------------
trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/signed_int.html | 685 ++++++++++++----------------
trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/unsigned_int.html | 709 ++++++++++++----------------
trunk/libs/spirit/doc/html/spirit/karma/reference/operator.html | 71 +-
trunk/libs/spirit/doc/html/spirit/karma/reference/operator/alternative.html | 140 ++---
trunk/libs/spirit/doc/html/spirit/karma/reference/operator/and_predicate.html | 127 ++--
trunk/libs/spirit/doc/html/spirit/karma/reference/operator/kleene.html | 144 ++---
trunk/libs/spirit/doc/html/spirit/karma/reference/operator/list.html | 155 +++---
trunk/libs/spirit/doc/html/spirit/karma/reference/operator/not_predicate.html | 124 ++--
trunk/libs/spirit/doc/html/spirit/karma/reference/operator/optional.html | 133 ++--
trunk/libs/spirit/doc/html/spirit/karma/reference/operator/plus.html | 141 ++---
trunk/libs/spirit/doc/html/spirit/karma/reference/operator/sequence.html | 146 ++---
trunk/libs/spirit/doc/html/spirit/karma/reference/stream.html | 35
trunk/libs/spirit/doc/html/spirit/karma/reference/stream/stream.html | 459 ++++++++-----------
trunk/libs/spirit/doc/html/spirit/karma/reference/string.html | 33
trunk/libs/spirit/doc/html/spirit/karma/reference/string/string.html | 297 +++++-------
trunk/libs/spirit/doc/html/spirit/karma/tutorials.html | 17
trunk/libs/spirit/doc/html/spirit/karma/tutorials/karma_complex.html | 46 +
trunk/libs/spirit/doc/html/spirit/karma/tutorials/karma_easier_complex.html | 142 +++--
trunk/libs/spirit/doc/html/spirit/karma/tutorials/num_list.html | 76 +-
trunk/libs/spirit/doc/html/spirit/karma/tutorials/num_matrix.html | 22
trunk/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html | 32
trunk/libs/spirit/doc/html/spirit/karma/tutorials/semantic_actions.html | 86 +-
trunk/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html | 161 +++---
trunk/libs/spirit/doc/html/spirit/lex.html | 20
trunk/libs/spirit/doc/html/spirit/lex/abstracts.html | 20
trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_attributes.html | 20
trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_parsing.html | 22
trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives.html | 20
trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_primitives.html | 20
trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_definition.html | 21
trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_values.html | 134 ++--
trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_semantic_actions.html | 448 +++++++-----------
trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html | 45 +
trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html | 71 +-
trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html | 83 +-
trunk/libs/spirit/doc/html/spirit/lex/lexer_introduction.html | 88 ++-
trunk/libs/spirit/doc/html/spirit/lex/quick_reference.html | 22
trunk/libs/spirit/doc/html/spirit/lex/quick_reference/common_notation.html | 56 +-
trunk/libs/spirit/doc/html/spirit/lex/quick_reference/lexers.html | 229 +++-----
trunk/libs/spirit/doc/html/spirit/lex/quick_reference/phoenix.html | 47 +
trunk/libs/spirit/doc/html/spirit/lex/quick_reference/semantic_actions.html | 29
trunk/libs/spirit/doc/html/spirit/lex/reference.html | 21
trunk/libs/spirit/doc/html/spirit/lex/reference/lex_basics.html | 50 +
trunk/libs/spirit/doc/html/spirit/lex/reference/lexer.html | 54 +-
trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts.html | 19
trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/lexer.html | 189 +++----
trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/narylexer.html | 153 ++---
trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/primitivelexer.html | 85 +-
trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/unarylexer.html | 147 ++---
trunk/libs/spirit/doc/html/spirit/lex/reference/primitives.html | 38
trunk/libs/spirit/doc/html/spirit/lex/reference/primitives/char_tokendef.html | 155 ++---
trunk/libs/spirit/doc/html/spirit/lex/reference/token.html | 19
trunk/libs/spirit/doc/html/spirit/lex/reference/tokendef.html | 23
trunk/libs/spirit/doc/html/spirit/lex/tutorials.html | 24
trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html | 108 ++--
trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html | 125 ++--
trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html | 196 ++++----
trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_tutorials.html | 51 +
trunk/libs/spirit/doc/html/spirit/notes.html | 18
trunk/libs/spirit/doc/html/spirit/notes/porting_from_spirit_1_8_x.html | 331 ++++++-------
trunk/libs/spirit/doc/html/spirit/notes/style_guide.html | 52 +-
trunk/libs/spirit/doc/html/spirit/preface.html | 223 +++-----
trunk/libs/spirit/doc/html/spirit/qi.html | 22
trunk/libs/spirit/doc/html/spirit/qi/quick_reference.html | 18
trunk/libs/spirit/doc/html/spirit/qi/quick_reference/common_notation.html | 91 +-
trunk/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html | 250 ++++-----
trunk/libs/spirit/doc/html/spirit/qi/quick_reference/non_terminals.html | 305 +++++-------
trunk/libs/spirit/doc/html/spirit/qi/quick_reference/phoenix.html | 38
trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers.html | 20
trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/action.html | 67 +-
trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/auxiliary.html | 221 +++-----
trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/binary.html | 243 +++------
trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/char.html | 590 +++++++++--------------
trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/directive.html | 313 +++++-------
trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/numeric.html | 391 ++++++---------
trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/operator.html | 395 ++++++---------
trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/string.html | 199 +++----
trunk/libs/spirit/doc/html/spirit/qi/quick_reference/semantic_actions.html | 23
trunk/libs/spirit/doc/html/spirit/qi/reference.html | 17
trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary.html | 43
trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr.html | 141 ++---
trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eoi.html | 135 ++---
trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eol.html | 132 ++---
trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eps.html | 194 +++----
trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/lazy.html | 183 +++----
trunk/libs/spirit/doc/html/spirit/qi/reference/basics.html | 230 ++++-----
trunk/libs/spirit/doc/html/spirit/qi/reference/binary.html | 30
trunk/libs/spirit/doc/html/spirit/qi/reference/binary/binary_big.html | 346 ++++++--------
trunk/libs/spirit/doc/html/spirit/qi/reference/binary/binary_little.html | 349 ++++++--------
trunk/libs/spirit/doc/html/spirit/qi/reference/binary/binary_native.html | 430 +++++++----------
trunk/libs/spirit/doc/html/spirit/qi/reference/char.html | 42
trunk/libs/spirit/doc/html/spirit/qi/reference/char/char.html | 519 +++++++++------------
trunk/libs/spirit/doc/html/spirit/qi/reference/char/char_class.html | 365 ++++++---------
trunk/libs/spirit/doc/html/spirit/qi/reference/directive.html | 52 +
trunk/libs/spirit/doc/html/spirit/qi/reference/directive/lexeme.html | 162 +++---
trunk/libs/spirit/doc/html/spirit/qi/reference/directive/no_case.html | 155 +++---
trunk/libs/spirit/doc/html/spirit/qi/reference/directive/omit.html | 151 ++---
trunk/libs/spirit/doc/html/spirit/qi/reference/directive/raw.html | 161 +++---
trunk/libs/spirit/doc/html/spirit/qi/reference/directive/repeat.html | 281 +++++------
trunk/libs/spirit/doc/html/spirit/qi/reference/directive/skip.html | 188 +++----
trunk/libs/spirit/doc/html/spirit/qi/reference/numeric.html | 43 +
trunk/libs/spirit/doc/html/spirit/qi/reference/numeric/boolean.html | 407 +++++++---------
trunk/libs/spirit/doc/html/spirit/qi/reference/numeric/int.html | 551 +++++++++-------------
trunk/libs/spirit/doc/html/spirit/qi/reference/numeric/real.html | 945 ++++++++++++++++-----------------------
trunk/libs/spirit/doc/html/spirit/qi/reference/numeric/uint.html | 618 ++++++++++---------------
trunk/libs/spirit/doc/html/spirit/qi/reference/operator.html | 85 +-
trunk/libs/spirit/doc/html/spirit/qi/reference/operator/alternative.html | 150 +++---
trunk/libs/spirit/doc/html/spirit/qi/reference/operator/and_predicate.html | 131 ++--
trunk/libs/spirit/doc/html/spirit/qi/reference/operator/difference.html | 142 ++---
trunk/libs/spirit/doc/html/spirit/qi/reference/operator/expect.html | 173 +++---
trunk/libs/spirit/doc/html/spirit/qi/reference/operator/kleene.html | 119 ++--
trunk/libs/spirit/doc/html/spirit/qi/reference/operator/list.html | 138 ++---
trunk/libs/spirit/doc/html/spirit/qi/reference/operator/not_predicate.html | 130 ++--
trunk/libs/spirit/doc/html/spirit/qi/reference/operator/optional.html | 128 ++--
trunk/libs/spirit/doc/html/spirit/qi/reference/operator/permutation.html | 136 ++--
trunk/libs/spirit/doc/html/spirit/qi/reference/operator/plus.html | 121 ++--
trunk/libs/spirit/doc/html/spirit/qi/reference/operator/sequence.html | 137 ++--
trunk/libs/spirit/doc/html/spirit/qi/reference/operator/sequential_or.html | 147 ++---
trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts.html | 15
trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/binaryparser.html | 189 +++----
trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/naryparser.html | 147 ++---
trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/parser.html | 227 ++++-----
trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/primitiveparser.html | 77 +-
trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/unaryparser.html | 143 ++---
trunk/libs/spirit/doc/html/spirit/qi/reference/string.html | 33
trunk/libs/spirit/doc/html/spirit/qi/reference/string/string.html | 241 ++++-----
trunk/libs/spirit/doc/html/spirit/qi/reference/string/symbols.html | 564 +++++++++-------------
trunk/libs/spirit/doc/html/spirit/qi/tutorials.html | 17
trunk/libs/spirit/doc/html/spirit/qi/tutorials/complex___our_first_complex_parser.html | 50 +
trunk/libs/spirit/doc/html/spirit/qi/tutorials/employee___parsing_into_structs.html | 191 ++++---
trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___asts_.html | 267 +++++-----
trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___error_handling.html | 185 +++----
trunk/libs/spirit/doc/html/spirit/qi/tutorials/number_list___stuffing_numbers_into_a_std__vector.html | 33
trunk/libs/spirit/doc/html/spirit/qi/tutorials/number_list_attribute___one_more__with_style.html | 44 +
trunk/libs/spirit/doc/html/spirit/qi/tutorials/number_list_redux___list_syntax.html | 25
trunk/libs/spirit/doc/html/spirit/qi/tutorials/quick_start.html | 23
trunk/libs/spirit/doc/html/spirit/qi/tutorials/roman_numerals.html | 153 +++---
trunk/libs/spirit/doc/html/spirit/qi/tutorials/semantic_actions.html | 68 +-
trunk/libs/spirit/doc/html/spirit/qi/tutorials/sum___adding_numbers.html | 113 ++--
trunk/libs/spirit/doc/html/spirit/qi/tutorials/warming_up.html | 153 +++---
trunk/libs/spirit/doc/html/spirit/references.html | 447 ++++++------------
trunk/libs/spirit/doc/html/spirit/repository.html | 17
trunk/libs/spirit/doc/html/spirit/structure.html | 15
trunk/libs/spirit/doc/html/spirit/structure/include.html | 77 +-
trunk/libs/spirit/doc/html/spirit/support.html | 24
trunk/libs/spirit/doc/html/spirit/support/multi_pass.html | 717 +++++++++++++----------------
trunk/libs/spirit/doc/html/spirit/what_s_new.html | 278 ++++++-----
trunk/libs/spirit/doc/spirit2.qbk | 3
217 files changed, 17062 insertions(+), 20989 deletions(-)
Modified: trunk/libs/spirit/doc/abstracts.qbk
==============================================================================
--- trunk/libs/spirit/doc/abstracts.qbk (original)
+++ trunk/libs/spirit/doc/abstracts.qbk 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -22,8 +22,6 @@
[/include abstracts/debugging.qbk]
[/include abstracts/error_handling.qbk]
[/include abstracts/parse_trees_and_asts.qbk]
-[include abstracts/indepth.qbk]
-[include abstracts/customization_points.qbk]
[endsect]
Deleted: trunk/libs/spirit/doc/abstracts/customization_points.qbk
==============================================================================
--- trunk/libs/spirit/doc/abstracts/customization_points.qbk 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
+++ (empty file)
@@ -1,960 +0,0 @@
-[/==============================================================================
- Copyright (C) 2001-2009 Hartmut Kaiser
- Copyright (C) 2001-2009 Joel de Guzman
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-===============================================================================/]
-
-[def __customize_is_container__ [link spirit.abstracts.customize.is_container `is_container`]]
-[def __customize_transform_attribute__ [link spirit.abstracts.customize.transform `transform_attribute`]]
-[def __customize_optional_attribute__ [link spirit.abstracts.customize.optional `optional_attribute`]]
-[def __customize_assign_to__ [link spirit.abstracts.customize.assign_to `assign_to`]]
-[def __customize_push_back_container__ [link spirit.abstracts.customize.store_value.push_back `push_back_container`]]
-[def __customize_container_value__ [link spirit.abstracts.customize.store_value.container_value `container_value`]]
-[def __customize_clear_value__ [link spirit.abstracts.customize.clear_value `clear_value`]]
-[def __customize_extract_from__ [link spirit.abstracts.customize.extract_from `extract_from`]]
-[def __customize_container_iterator__ [link spirit.abstracts.customize.iterate.container_iterator `container_iterator`]]
-[def __customize_begin_container__ [link spirit.abstracts.customize.iterate.begin_container `begin_container`]]
-[def __customize_end_container__ [link spirit.abstracts.customize.iterate.end_container `end_container`]]
-[def __customize_next_iterator__ [link spirit.abstracts.customize.iterate.next_iterator `next_iterator`]]
-[def __customize_deref_iterator__ [link spirit.abstracts.customize.iterate.deref_iterator `deref_iterator`]]
-[def __customize_compare_iterators__ [link spirit.abstracts.customize.iterate.compare_iterators `compare_iterators`]]
-
-[section:customize Customization of Spirit's Attribute Handling]
-
-[heading Why do we need Attribute Customization Points]
-
-[important Before you read on please be aware that the interfaces described in
- this section are not finalized and may change in the future without
- attempting to be backwards compatible. We document the customization
- point interfaces anyways as we think they are important.
- Understanding customization points helps understanding Spirit.
- Additionally they prove to be powerful tools enabling full
- integration of the user's data structures with /Qi's/ parsers and
- /Karma's/ generators.]
-
-__spirit__ has been written with extensibility in mind. It provides many
-different attribute customization points allowing to integrate custom data
-types with the process of parsing in __qi__ or output generation with
-__karma__. All attribute customization points are exposed using a similar
-technique: full or partial template specialization. __spirit__ generally
-implements the main template, providing a default implementation. You as the
-user have to provide a partial or full specialization of this template for the
-data types you want to integrate with the library. In fact, the library uses
-these customization points itself for instance to handle the magic of the
-__unused_type__ attribute type.
-
-Here is an example showing the __customize_container_value__ customization point
-used by different parsers (such as __qi_kleene__, __qi_plus__, etc.) to find
-the attribute type to be stored in a supplied STL container:
-
-[import ../../../../boost/spirit/home/support/container.hpp]
-
-[customization_container_value_default]
-
-This template is instantiated by the library at the appropriate places while
-using the supplied container type as the template argument. The embedded `type`
-is used as the attribute type while parsing the elements to be store in that
-container.
-
-The following example shows the predefined specialization for __unused_type__:
-
-[customization_container_value_unused]
-
-which defines its embedded `type` to be __unused_type__ as well, this way
-propagating the 'don't care' attribute status to the embedded parser.
-
-All attribute customization points follow the same scheme. The last template
-parameter is always `typename Enable = void` allowing to apply SFINAE for
-fine grained control over the template specialization process. But most of the
-time you can safely forget about its existence.
-
-The following sections will describe all customization points, together with a
-description which needs to be specialized for what purpose.
-
-[heading The Usage of Customization Points]
-
-The different customizations points are used by different parts of the library.
-Part of the customizations points are used by both, __qi__ and __karma__,
-whereas others are specialized to be applied for one of the sub-libraries only.
-We will explain when a specific customization point needs to be implemented and,
-equally important, which customization points need to be implemented at the
-same time. Often it is not sufficient to provide a specialization for one
-single customization point only, in this case you as the user have to provide
-all necessary customizations for your data type you want to integrate with the
-library.
-
-[/////////////////////////////////////////////////////////////////////////////]
-[section:is_container Determine if a Type Should be Treated as a Container (Qi and Karma)]
-
-[heading is_container]
-
-The template `is_container` is a template meta-function used as an attribute
-customization point. It is invoked by the /Qi/ __qi_sequence__ (`>>`) and
-/Karma/ __karma_sequence__ operators in order to determine whether a supplied
-attribute can potentially be treated as a container.
-
-[heading Header]
-
- #include <boost/spirit/home/support/container.hpp>
-
-Also, see __include_structure__.
-
-[note This header file does not need to be included directly by any user
- program as it is normally included by other Spirit header files relying
- on its content.]
-
-[heading Namespace]
-
-[table
- [[Name]]
- [[`boost::spirit::traits`]]
-]
-
-[heading Synopsis]
-
- template <typename Container, typename Enable>
- struct is_container;
-
-[heading Template parameters]
-
-[table
- [[Parameter] [Description] [Default]]
- [[`Container`] [The type, `Container` needs to
- be tested whether it has to be treated
- as a container] [none]]
- [[`Enable`] [Helper template parameter usable to selectively
- enable or disable certain specializations
- of `is_container` utilizing SFINAE (i.e.
- `boost::enable_if` or `boost::disable_if`).] [`void`]]
-]
-
-[heading Notation]
-
-[variablelist
- [[`C`] [A type to be tested whether it needs to be treated
- as a container.]]
- [[`T1`, `T2`, ...] [Arbitrary types]]
-]
-
-[heading Expression Semantics]
-
-[table
- [[Expression] [Semantics]]
- [[`is_container<C>::type`] [Metafunction that evaluates to `mpl::true_`
- if a given type, `C`, is to be treated as a
- container, `mpl::false_` otherwise (See
- __mpl_boolean_constant__).]]
-]
-
-[heading Predefined Specializations]
-
-__spirit__ predefines specializations of this customization point for
-several types. The following table lists those types together with the
-conditions for which the corresponding specializations will evaluate to
-`mpl::true_` (see __mpl_boolean_constant__):
-
-[table
- [[Template Parameters] [Value]]
- [[`T`] [Returns `mpl::true_` if `T` has the following
- embedded types defined: `value_type`,
- `iterator`, `size_type`, and`reference`.
- Otherwise it will return `mpl::false_`.]]
- [[`boost::optional<T>`] [Returns `is_container<T>::type`]]
- [[`boost::variant<T1, T2, ...>`]
- [Returns `mpl::true_` if at least one of the
- `is_container<TN>::type` returns `mpl::true_`
- (where `TN` is `T1`, `T2`, ...).
- Otherwise it will return `mpl::false_`.]]
- [[__unused_type__] [Returns `mpl::false_`.]]
-]
-
-[heading When to implement]
-
-The customization point `is_container` needs to be implemented for a specific
-type whenever this type is to be used as an attribute in place of a STL
-container. It is applicable for parsers (__qi__) and generators (__karma__).
-As a rule of thumb: it has to be implemented whenever a certain type
-is to be passed as an attribute to a parser or a generator normally exposing a
-STL container and if the type does not expose the interface of a STL container
-(i.e. `is_container<C>::type` would normally return `mpl::false_`). These
-components have an attribute propagation rule in the form:
-
- a: A --> Op(a): vector<A>
-
-where `Op(a)` stands for any meaningful operation on the component `a`.
-
-[heading Related Attribute Customization Points]
-
-If this customization point is implemented, the following other customization
-points need to be implemented as well.
-
-[table
- [[Name] [When to implement]]
- [[__customize_container_value__] [Needs to be implemented whenever `is_container` is implemented.]]
- [[__customize_push_back_container__] [Qi: __qi_list__, __qi_kleene__, __qi_plus__, [qi_repeat Repeat].]]
- [[`container_iterator`] [Karma: __karma_list__, [karma_kleene Kleene (unary `*`)], __karma_plus__, [karma_repeat Repeat].]]
- [[`begin_container`] [Karma: __karma_list__, [karma_kleene Kleene (unary `*`)], __karma_plus__, [karma_repeat Repeat].]]
- [[`end_container`] [Karma: __karma_list__, [karma_kleene Kleene (unary `*`)], __karma_plus__, [karma_repeat Repeat].]]
- [[`deref_iterator`] [Karma: __karma_list__, [karma_kleene Kleene (unary `*`)], __karma_plus__, [karma_repeat Repeat].]]
- [[`next_iterator`] [Karma: __karma_list__, [karma_kleene Kleene (unary `*`)], __karma_plus__, [karma_repeat Repeat].]]
- [[`compare_iterators`] [Karma: __karma_list__, [karma_kleene Kleene (unary `*`)], __karma_plus__, [karma_repeat Repeat].]]
-]
-
-[heading Example]
-
-TBD
-
-[endsect]
-
-[/////////////////////////////////////////////////////////////////////////////]
-[section:transform Transform an Attribute to a Different Type (Qi and Karma)]
-
-[heading transform_attribute]
-
-Short description here...
-
-[heading Module Headers]
-
- #include <boost/spirit/xxx.hpp>
-
-Also, see __include_structure__.
-
-[note This header file does not need to be included directly by any user
- program as it is normally included by other Spirit header files relying
- on its content.]
-
-[heading Namespace]
-
-[table
- [[Name]]
- [[`boost::spirit::xxx`]]
-]
-
-[heading Synopsis]
-
- template <typename T>
- struct XXX;
-
-[heading Template parameters]
-
-[table
- [[Parameter] [Description] [Default]]
- [[`T`] [What is T] []]
-]
-
-[heading Notation]
-
-[variablelist Notation
- [[`xxx`] [An XXX]]
-]
-
-[heading Expression Semantics]
-
-Semantics of an expression is defined only where it differs from, or is not
-defined in _concept-of_XXX_.
-
-[table
- [[Expression] [Semantics]]
- [[`xxx`] [Semantics of `xxx`]]
-]
-
-[heading Predefined Specializations]
-
-[table
- [[Type] [Condition]]
- [[`xxx`] [when does it evaluate to mpl::true_]]
-]
-
-[heading When to implement]
-
-Describe when this customization point needs to be implemented by the user.
-
-[heading Related Attribute Customization Points]
-
-If this customization point is implemented, the following other customization
-points need to be implemented as well.
-
-[table
- [[Name] [When to implement]]
-]
-
-[heading Example]
-
-TBD
-
-[endsect]
-
-[/////////////////////////////////////////////////////////////////////////////]
-[/ section:optional Handling of Optional Attributes (Qi and Karma)]
-
-[/ optional_attribute]
-
-[/ endsect]
-
-[/////////////////////////////////////////////////////////////////////////////]
-[section:assign_to Store a Parsed Attribute Value (Qi)]
-
-After parsing input and generting an attribute value this value needs to
-assigned to the attribute instance provided by the user. The customization
-points `assign_to_attribute_from_iterators` and `assign_to_attribute_from_value`
-are utilized to adapt this assignment to the concrete type to be assigned.
-This section describes both.
-
-[section:assign_to_attribute_from_iterators Store an Attribute after a Parser Produced a Pair of Iterators (Qi)]
-
-[heading assign_to_attribute_from_iterators]
-
-The template `assign_to_attribute_from_iterators` is a type used as an attribute
-customization point. It is invoked by the those /Qi/ parsers not producing any
-attribute value but returning a pair of iterators pointing to the matched input
-sequence. It is used to either store the iterator pair into the attribute
-instance provided by the user or to convert the iterator pair into an attribute
-as provided by the user.
-
-[heading Module Headers]
-
- #include <boost/spirit/home/qi/detail/assign_to.hpp>
-
-Also, see __include_structure__.
-
-[note This header file does not need to be included directly by any user
- program as it is normally included by other Spirit header files relying
- on its content.]
-
-[heading Namespace]
-
-[table
- [[Name]]
- [[`boost::spirit::traits`]]
-]
-
-[heading Synopsis]
-
- template <typename Attrib, typename Iterator, typename Enable>
- struct assign_to_attribute_from_iterators;
-
-[heading Template parameters]
-
-[table
- [[Parameter] [Description] [Default]]
- [[`Attrib`] [The type, `Attrib` is the type of the attribute as
- passed in by the user.] [none]]
- [[`Iterator`] [The type, `Iterator` is the type of the iterators
- as produced by the parser.] [none]]
- [[`Enable`] [Helper template parameter usable to selectively
- enable or disable certain specializations
- of `assign_to_attribute_from_value` utilizing SFINAE (i.e.
- `boost::enable_if` or `boost::disable_if`).] [`void`]]
-]
-
-[heading Notation]
-
-[variablelist Notation
- [[`Attrib`] [A type to be used as the target to store the attribute value in.]]
- [[`attr`] [A attribute instance of type `Attrib`.]]
- [[`Iterator`] [The iterator type used by the parser. This type usually
- corresponds to the iterators as passed in by the user.]]
- [[`begin`, `end`] [Iterator instances of type `Iterator` pointing to the
- begin and the end of the matched input sequence.]]
-]
-
-[heading Expression Semantics]
-
-[table
- [[Expression] [Semantics]]
- [[
-``assign_to_attribute_from_iterators<Attrib, Iterator>::call(b, e, attr)``]
- [Use the iterators `begin` and `end` to initialize
- the attribute `attr`.]]
-]
-
-[heading Predefined Specializations]
-
-[table
- [[Type] [Semantics]]
- [[`Attrib`, `Iterator`] [Execute an assignment `attr = Attrib(begin, end)`.]]
- [[__unused_type__, `T`] [Do nothing.]]
-]
-
-[heading When to implement]
-
-The customization point `assign_to_attribute_from_iterators` needs to be
-implemented for a specific type whenever the default implementation as shown
-above is not applicable. Examples for this could be that the type `Attrib` is
-not constructible from the pair of iterators.
-
-[heading Example]
-
-TBD
-
-[endsect]
-
-[section:assign_to_attribute_from_value Store an Attribute Value after a Parser Produced a Value (Qi)]
-
-[heading assign_to_attribute_from_value]
-
-The template `assign_to_attribute_from_value` is a type used as an attribute
-customization point. It is invoked by the all primitive /Qi/ parsers in order
-to store a parsed attribute value into the attribute instance provided by the
-user.
-
-[heading Module Headers]
-
- #include <boost/spirit/home/qi/detail/assign_to.hpp>
-
-Also, see __include_structure__.
-
-[note This header file does not need to be included directly by any user
- program as it is normally included by other Spirit header files relying
- on its content.]
-
-[heading Namespace]
-
-[table
- [[Name]]
- [[`boost::spirit::traits`]]
-]
-
-[heading Synopsis]
-
- template <typename Attrib, typename T, typename Enable>
- struct assign_to_attribute_from_value;
-
-[heading Template parameters]
-
-[table
- [[Parameter] [Description] [Default]]
- [[`Attrib`] [The type, `Attrib` is the type of the attribute as
- passed in by the user.] [none]]
- [[`T`] [The type, `T` is the type of the attribute instance
- as produced by the parser.] [none]]
- [[`Enable`] [Helper template parameter usable to selectively
- enable or disable certain specializations
- of `assign_to_attribute_from_value` utilizing SFINAE (i.e.
- `boost::enable_if` or `boost::disable_if`).] [`void`]]
-]
-
-[heading Notation]
-
-[variablelist Notation
- [[`Attrib`] [A type to be used as the target to store the attribute value in.]]
- [[`attr`] [A attribute instance of type `Attrib`.]]
- [[`T`] [A type as produced by the parser. The parser temporarily stores
- its parsed values using this type.]]
- [[`t`] [A attribute instance of type `T`.]]
-]
-
-[heading Expression Semantics]
-
-[table
- [[Expression] [Semantics]]
- [[
-``assign_to_attribute_from_value<Attrib, T>::call(t, attr)``]
- [Copy (assign) the value, `t` to the attribute `attr`.]]
-]
-
-[heading Predefined Specializations]
-
-[table
- [[Type] [Semantics]]
- [[`Attrib`, `T`] [Assign the argument `t` to `attr`.]]
- [[__unused_type__, `T`] [Do nothing.]]
-]
-
-[heading When to implement]
-
-The customization point `assign_to_attribute_from_value` needs to be
-implemented for a specific type whenever the default implementation as shown
-above is not applicable. Examples for this could be that the type `Attrib` is
-not copy constructible.
-
-[heading Example]
-
-TBD
-
-[endsect]
-
-[endsect]
-
-[/////////////////////////////////////////////////////////////////////////////]
-[section:store_value Store Parsed Attribute Values into a Container (Qi)]
-
-In order to customize Spirit to accept a given data type as a container for
-elements parsed by any of the repetitive parsers (__qi_kleene__, __qi_plus__,
-__qi_list__, and [qi_repeat Repeat]) two attribute customization points have to be
-specialized: __customize_container_value__ and __customize_push_back_container__.
-This section describes both.
-
-[section:container_value Determine the Type to be Stored in a Container (Qi)]
-
-[heading container_value]
-
-The template `container_value` is a template meta function used as an attribute
-customization point. It is invoked by the /Qi/ repetitive parsers
-(__qi_kleene__, __qi_plus__, __qi_list__, and [qi_repeat Repeat]) to determine the
-type to store in a container.
-
-[heading Module Headers]
-
- #include <boost/spirit/home/support/container.hpp>
-
-Also, see __include_structure__.
-
-[note This header file does not need to be included directly by any user
- program as it is normally included by other Spirit header files relying
- on its content.]
-
-[heading Namespace]
-
-[table
- [[Name]]
- [[`boost::spirit::traits`]]
-]
-
-[heading Synopsis]
-
- template <typename Container, typename Enable>
- struct container_value;
-
-[heading Template parameters]
-
-[table
- [[Parameter] [Description] [Default]]
- [[`Container`] [The type, `Container` needs to
- be tested whether it has to be treated
- as a container] [none]]
- [[`Enable`] [Helper template parameter usable to selectively
- enable or disable certain specializations
- of `container_value` utilizing SFINAE (i.e.
- `boost::enable_if` or `boost::disable_if`).] [`void`]]
-]
-
-[heading Notation]
-
-[variablelist
- [[`C`] [A type to be tested whether it needs to be treated
- as a container.]]
- [[`T1`, `T2`, ...] [Arbitrary types]]
-]
-
-[heading Expression Semantics]
-
-[table
- [[Expression] [Semantics]]
- [[`container_value<C>::type`] [Metafunction that evaluates to the type
- to be stored in a given container type,
- `C`.]]
-]
-
-[heading Predefined Specializations]
-
-__spirit__ predefines specializations of this customization point for
-several types. The following table lists those types together with the types
-exposed and the corresponding semantics:
-
-[table
- [[Template Parameters] [Value]]
- [[`C`] [The non-const `value_type` of the given container
- type, `C`. ]]
- [[`boost::optional<C>`] [Returns `container_value<C>::type`]]
- [[`boost::variant<T1, T2, ...>`]
- [Returns `container_value<TN>::value` for the
- first `TN` (out of `T1`, `T2`, ...) for which
- `is_container<TN>::type` evaluates to `mpl::true_`.
- Otherwise it will return __unused_type__.]]
- [[__unused_type__] [Returns __unused_type__.]]
-]
-
-[heading When to implement]
-
-The customization point `is_container` needs to be implemented for a specific
-type whenever this type is to be used as an attribute in place of a STL
-container. It is applicable for parsers (__qi__) only. As a rule of thumb: it
-has to be implemented whenever a certain type is to be passed as an attribute
-to a parser normally exposing a STL container and if the type does not expose
-the interface of a STL container (i.e. no embedded typedef for `value_type`).
-These components have an attribute propagation rule in the form:
-
- a: A --> Op(a): vector<A>
-
-where `Op(a)` stands for any meaningful operation on the component `a`.
-
-[heading Related Attribute Customization Points]
-
-If this customization point is implemented, the following other customization
-points need to be implemented as well.
-
-[table
- [[Name] [When to implement]]
- [[__customize_push_back_container__] [Qi: __qi_list__, __qi_kleene__, __qi_plus__, [qi_repeat Repeat].]]
- [[__customize_clear_value__] [Qi: __qi_list__, __qi_kleene__, __qi_plus__, [qi_repeat Repeat].]]
-]
-
-[heading Example]
-
-TBD
-
-[endsect]
-
-[section:push_back Store a Parsed Attribute Value into a Container (Qi)]
-
-[heading push_back_container]
-
-The template `push_back_container` is a type used as an attribute customization
-point. It is invoked by the /Qi/ repetitive parsers (__qi_kleene__, __qi_plus__,
-__qi_list__, and [qi_repeat Repeat]) to store a parsed attribute value into a
-container.
-
-[heading Module Headers]
-
- #include <boost/spirit/home/support/container.hpp>
-
-Also, see __include_structure__.
-
-[note This header file does not need to be included directly by any user
- program as it is normally included by other Spirit header files relying
- on its content.]
-
-[heading Namespace]
-
-[table
- [[Name]]
- [[`boost::spirit::traits`]]
-]
-
-[heading Synopsis]
-
- template <typename Container, typename Attrib, typename Enable>
- struct push_back_container;
-
-[heading Template parameters]
-
-[table
- [[Parameter] [Description] [Default]]
- [[`Container`] [The type, `Container` needs to
- be tested whether it has to be treated
- as a container] [none]]
- [[`Attrib`] [The type, `Attrib` is the one returned from the
- customization point __customize_container_value__
- and represents the attribute value to be stored in
- the container of type `Container`.] [none]]
- [[`Enable`] [Helper template parameter usable to selectively
- enable or disable certain specializations
- of `push_back_container` utilizing SFINAE (i.e.
- `boost::enable_if` or `boost::disable_if`).] [`void`]]
-]
-
-[heading Notation]
-
-[variablelist
- [[`C`] [A type to be used as a container to store attribute values in.]]
- [[`c`] [A container instance of type `C`.]
- [[`Attrib`] [A type to be used as a container to store attribute values in.]]
- [[`attr`] [A attribute instance of type `Attrib`.]]
- [[`T1`, `T2`, ...] [Arbitrary types]]
-]
-
-[heading Expression Semantics]
-
-[table
- [[Expression] [Semantics]]
- [[
-``push_back_container<C, Attrib>::call(c, attr)``]
- [Static function that is invoked whenever an
- attribute value, `attr` needs to be stored
- into the container instance `c`.]]
-]
-
-[heading Predefined Specializations]
-
-__spirit__ predefines specializations of this customization point for
-several types. The following table lists those types together with the types
-exposed and the corresponding semantics:
-
-[table
- [[Template Parameters] [Value]]
- [[`C`, `Attrib`] [Store the provided attribute instance `attr` into
- the given container `c` using the function call
- `c.insert(c.end(), attr)`.]]
- [[`boost::optional<C>`, `Attrib`]
- [If the provided instance of `boost::optional<>` is not
- initialized, invoke the appropriate initialization
- and afterwards apply the customization point
- `push_back_container<C, Attrib>`, treating the
- instance held by the optional (of type `C`) as
- the container to store the attribute in.]]
- [[`boost::variant<T1, T2, ...>`, `Attrib`]
- [If the instance of the variant currently holds a
- value with a type, `TN`, for which `is_container<TN>::type`
- evaluates to `mpl::true_`, this customization
- point specialization will apply
- `push_back_container<TN, Attrib>`, treating the
- instance held by the variant (of type `TN`) as
- the container to store the attribute in. Otherwise
- it will raise an assertion.]]
- [[__unused_type__] [Do nothing.]]
-]
-
-[heading When to Implement]
-
-The customization point `push_back_container` needs to be implemented for a
-specific type whenever this type is to be used as an attribute in place of a STL
-container. It is applicable for parsers (__qi__) only. As a rule of thumb: it
-has to be implemented whenever a certain type is to be passed as an attribute
-to a parser normally exposing a STL container and if the type does not expose
-the interface of a STL container (i.e. no function being equivalent to
-`c.insert(c.end(), attr)`. These components have an attribute propagation rule
-in the form:
-
- a: A --> Op(a): vector<A>
-
-where `Op(a)` stands for any meaningful operation on the component `a`.
-
-[heading Related Attribute Customization Points]
-
-If this customization point is implemented, the following other customization
-points need to be implemented as well.
-
-[table
- [[Name] [When to implement]]
- [[__customize_container_value__] [Qi: __qi_list__, __qi_kleene__, __qi_plus__, [qi_repeat Repeat].]]
- [[__customize_clear_value__] [Qi: __qi_list__, __qi_kleene__, __qi_plus__, [qi_repeat Repeat].]]
-]
-
-[heading Example]
-
-TBD
-
-[endsect]
-
-[endsect]
-
-[/////////////////////////////////////////////////////////////////////////////]
-[section:clear_value Re-Initialize an Attribute Value before Parsing (Qi)]
-
-[heading clear_value]
-
-The template `clear_value` is a type used as an attribute customization point.
-It is invoked by the /Qi/ repetitive parsers (__qi_kleene__, __qi_plus__,
-__qi_list__, and [qi_repeat Repeat]) in order to re-initialize the attribute
-instance passed to the embedded parser after it has been stored in the provided
-container. This re-initialized attribute instance is reused during the next
-iteration of the repetitive parser.
-
-[heading Module Headers]
-
- #include <boost/spirit/home/support/attributes.hpp>
-
-Also, see __include_structure__.
-
-[note This header file does not need to be included directly by any user
- program as it is normally included by other Spirit header files relying
- on its content.]
-
-[heading Namespace]
-
-[table
- [[Name]]
- [[`boost::spirit::traits`]]
-]
-
-[heading Synopsis]
-
- template <typename Attrib, typename Enable>
- struct clear_value;
-
-[heading Template parameters]
-
-[table
- [[Parameter] [Description] [Default]]
- [[`Attrib`] [The type, `Attrib` of the attribute to be
- re-initialized.] [none]]
- [[`Enable`] [Helper template parameter usable to selectively
- enable or disable certain specializations
- of `clear_value` utilizing SFINAE (i.e.
- `boost::enable_if` or `boost::disable_if`).] [`void`]]
-]
-
-[heading Notation]
-
-[variablelist Notation
- [[`Attrib`] [A type to be used as a container to store attribute values in.]]
- [[`attr`] [A attribute instance of type `Attrib`.]]
- [[`T1`, `T2`, ...] [Arbitrary types]]
-]
-
-[heading Expression Semantics]
-
-[table
- [[Expression] [Semantics]]
- [[
-``clear_value<Attrib>::call(Attrib& attr)``] [Re-initialize the instance referred to by
- `attr` in the most efficient way.]]
-]
-
-[heading Predefined Specializations]
-
-__spirit__ predefines specializations of this customization point for
-several types. The following table lists those types together with the types
-exposed and the corresponding semantics:
-
-[table
- [[Template Parameters] [Value]]
- [[`Attrib`] [Re-initialize using assignment of default
- constructed value.]]
- [[Any type `T` for which `is_container<>::type` is `mpl::true_`]
- [Call the member function `attr.clear()` for the
- passed attribute instance.]]
- [[`boost::optional<Attrib>`] [Clear the `optional` instance and leave it
- uninitialized.]]
- [[`boost::variant<T1, T2, ...>`][Invoke the `clear_value` customization
- point for the currently held value.]]
- [[`fusion::tuple<T1, T2, ...>`][Invoke the `clear_value` customization
- point for all elements of the tuple.]]
- [[__unused_type__] [Do nothing.]]
-]
-
-[heading When to Implement]
-
-The customization point `clear_value` needs to be implemented for a
-specific type whenever this type is to be used as an attribute to be stored
-into a STL container and if the type cannot be re-initialized using one of the
-specializations listed above. Examples for this might be types not being default
-constructible or container types not exposing a member function `clear()`.
-
-[heading Example]
-
-TBD
-
-[endsect]
-
-[/////////////////////////////////////////////////////////////////////////////]
-[section:extract_from Extract an Attribute Value to Generate Output (Karma)]
-
-[heading extract_from]
-
-Before generating output for an value this value needs to extracted from the
-attribute instance provided by the user. The customization point
-`extract_from` is utilized to adapt this extraction for any data type possibly
-used to store the values to output.
-
-Short description here...
-
-[heading Module Headers]
-
- #include <boost/spirit/home/karma/detail/extract_from.hpp>
-
-Also, see __include_structure__.
-
-[note This header file does not need to be included directly by any user
- program as it is normally included by other Spirit header files relying
- on its content.]
-
-[heading Namespace]
-
-[table
- [[Name]]
- [[`boost::spirit::traits`]]
-]
-
-[heading Synopsis]
-
- template <typename Attrib, typename Enable>
- struct extract_from_attribute;
-
-[heading Template parameters]
-
-[table
- [[Parameter] [Description] [Default]]
- [[`Attrib`] [The type, `Attrib` of the attribute to be used to
- generate output from.] [none]]
- [[`Enable`] [Helper template parameter usable to selectively
- enable or disable certain specializations
- of `clear_value` utilizing SFINAE (i.e.
- `boost::enable_if` or `boost::disable_if`).] [`void`]]
-]
-
-[heading Notation]
-
-[variablelist Notation
- [[`Attrib`] [A type to be used to generate output from.]]
- [[`attr`] [A attribute instance of type `Attrib`.]]
-]
-
-[heading Expression Semantics]
-
-Semantics of an expression is defined only where it differs from, or is not
-defined in _concept-of_XXX_.
-
-[table
- [[Expression] [Semantics]]
- [[
-``extract_from_attribute<Attrib>::call(attr)``] [Extract the value to generate
- output from and return it to the caller.]]
-]
-
-[heading Predefined Specializations]
-
-__spirit__ predefines specializations of this customization point for
-several types. The following table lists those types together with the types
-exposed and the corresponding semantics:
-
-[table
- [[Template Parameters] [Value]]
- [[`Attrib`] [The exposed typedef `type` is defined to
- `Attrib const&`. The function `call()` returns
- the argument by reference without change.]]
- [[`boost::optional<Attrib>`] [The exposed typedef `type` is defined to
- `Attrib const&`. The function `call()` returns
- the value held by the `optional<>` argument
- by reference without change.]]
- [[`boost::reference_wrapper<Attrib>`]
- [The exposed typedef `type` is defined to
- `Attrib const&`. The function `call()` returns
- the value held by the `reference_wrapper<>`
- argument by reference without change.]]
- [[__unused_type__] [The exposed typedef `type` is defined to
- __unused_type__. The function `call()` returns
- an instance of __unused_type__.]]
-]
-
-[heading When to implement]
-
-The customization point `extract_from_attribute` needs to be implemented for a
-specific type whenever the default implementation as shown above is not
-applicable. Examples for this could be that the type to be extracted is
-different from `Attrib` and is not copy constructible.
-
-[heading Example]
-
-TBD
-
-[endsect]
-
-[/////////////////////////////////////////////////////////////////////////////]
-[/ section:iterate Extract Attribute Values to Generate Output from a Container (Karma)]
-
-[/ container_iterator]
-[/ endsect]
-
-[/ begin_container]
-[/ endsect]
-
-[/ end_container]
-[/ endsect]
-
-[/ next_iterator]
-[/ endsect]
-
-[/ deref_iterator]
-[/ endsect]
-
-[/ compare_iterators]
-[/ endsect]
-
-[/ endsect]
-
-[endsect]
-
Deleted: trunk/libs/spirit/doc/abstracts/indepth.qbk
==============================================================================
--- trunk/libs/spirit/doc/abstracts/indepth.qbk 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
+++ (empty file)
@@ -1,279 +0,0 @@
-[/==============================================================================
- Copyright (C) 2001-2009 Joel de Guzman
- Copyright (C) 2001-2009 Hartmut Kaiser
- Copyright (C) 2009 Andreas Haberstroh?
-
- Distributed under the Boost Software License, Version 1.0. (See accompanying
- file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-===============================================================================/]
-
-[section:indepth In Depth]
-
-[section:parsers_indepth Parsers in Depth]
-
-This section is not for the faint of heart. In here, are distilled the inner
-workings of __qi__ parsers, using real code from the __spirit__ library as
-examples. On the other hand, here is no reason to fear reading on, though.
-We tried to explain things step by step while highlighting the important
-insights.
-
-The `__parser_concept__` class is the base class for all parsers.
-
-[import ../../../../boost/spirit/home/qi/parser.hpp]
-[parser_base_parser]
-
-The `__parser_concept__` class does not really know how to parse anything but
-instead relies on the template parameter `Derived` to do the actual parsing.
-This technique is known as the "Curiously Recurring Template Pattern" in template
-meta-programming circles. This inheritance strategy gives us the power of
-polymorphism without the virtual function overhead. In essence this is a way to
-implement compile time polymorphism.
-
-The Derived parsers, `__primitive_parser_concept__`, `__unary_parser_concept__`,
-`__binary_parser_concept__` and `__nary_parser_concept__` provide the necessary
-facilities for parser detection, introspection, transformation and visitation.
-
-Derived parsers must support the following:
-
-[variablelist bool parse(f, l, context, skip, attr)
- [[`f`, `l`] [first/last iterator pair]]
- [[`context`] [enclosing rule context (can be unused_type)]]
- [[`skip`] [skipper (can be unused_type)]]
- [[`attr`] [attribute (can be unused_type)]]
-]
-
-The /parse/ is the main parser entry point. /skipper/ can be an `unused_type`.
-It's a type used every where in __spirit__ to signify "don't-care". There
-is an overload for /skip/ for `unused_type` that is simply a no-op.
-That way, we do not have to write multiple parse functions for
-phrase and character level parsing.
-
-Here are the basic rules for parsing:
-
-* The parser returns `true` if successful, `false` otherwise.
-* If successful, `first` is incremented N number of times, where N
- is the number of characters parsed. N can be zero --an empty (epsilon)
- match.
-* If successful, the parsed attribute is assigned to /attr/
-* If unsuccessful, `first` is reset to its position before entering
- the parser function. /attr/ is untouched.
-
-[variablelist void what(context)
- [[`context`] [enclosing rule context (can be `unused_type`)]]
-]
-
-The /what/ function should be obvious. It provides some information
-about ["what] the parser is. It is used as a debugging aid, for
-example.
-
-[variablelist P::template attribute<context>::type
- [[`P`] [a parser type]]
- [[`context`] [A context type (can be unused_type)]]
-]
-
-The /attribute/ metafunction returns the expected attribute type
-of the parser. In some cases, this is context dependent.
-
-In this section, we will dissect two parser types:
-
-[variablelist Parsers
- [[`__primitive_parser_concept__`] [A parser for primitive data (e.g. integer parsing).]]
- [[`__unary_parser_concept__`] [A parser that has single subject (e.g. kleene star).]]
-]
-
-[/------------------------------------------------------------------------------]
-[heading Primitive Parsers]
-
-For our disection study, we will use a __spirit__ primitive, the `int_parser`
-in the boost::spirit::qi namespace.
-
-[import ../../../../boost/spirit/home/qi/numeric/int.hpp]
-[primitive_parsers_int]
-
-The `int_parser` is derived from a `__primitive_parser_concept__<Derived>`, which
-in turn derives from `parser<Derived>`. Therefore, it supports the following
-requirements:
-
-* The `parse` member function
-* The `what` member function
-* The nested `attribute` metafunction
-
-/parse/ is the main entry point. For primitive parsers, our first thing to do is
-call:
-
-``
-qi::skip(first, last, skipper);
-``
-
-to do a pre-skip. After pre-skipping, the parser proceeds to do its thing. The
-actual parsing code is placed in `extract_int<T, Radix, MinDigits,
-MaxDigits>::call(first, last, attr);`
-
-This simple no-frills protocol is one of the reasons why __spirit__ is
-fast. If you know the internals of __classic__ and perhaps
-even wrote some parsers with it, this simple __spirit__ mechanism
-is a joy to work with. There are no scanners and all that crap.
-
-The /what/ function just tells us that it is an integer parser. Simple.
-
-The /attribute/ metafunction returns the T template parameter. We associate the
-`int_parser` to some placeholders for `short_`, `int_`, `long_` and `long_long`
-types. But, first, we enable these placeholders in namespace boost::spirit:
-
-[primitive_parsers_enable_short_]
-[primitive_parsers_enable_int_]
-[primitive_parsers_enable_long_]
-[primitive_parsers_enable_long_long_]
-
-Notice that `int_parser` is placed in the namespace boost::spirit::qi
-while these /enablers/ are in namespace boost::spirit. The reason is
-that these placeholders are shared by other __spirit__ /domains/. __qi__,
-the parser is one domain. __karma__, the generator is another domain.
-Other parser technologies may be developed and placed in yet
-another domain. Yet, all these can potentially share the same
-placeholders for interoperability. The interpretation of these
-placeholders is domain-specific.
-
-Now that we enabled the placeholders, we have to write generators
-for them. The make_xxx stuff (in boost::spirit::qi namespace):
-
-[primitive_parsers_make_int]
-
-This one above is our main generator. It's a simple function object
-with 2 (unused) arguments. These arguments are
-
-# The actual terminal value obtained by proto. In this case, either
- a short_, int_, long_ or long_long. We don't care about this.
-
-# Modifiers. We also don't care about this. This allows directives
- such as `no_case[p]` to pass information to inner parser nodes.
- We'll see how that works later.
-
-Now:
-
-[primitive_parsers_short_]
-[primitive_parsers_int_]
-[primitive_parsers_long_]
-[primitive_parsers_long_long_]
-
-These, specialize `qi:make_primitive` for specific tags. They all
-inherit from `make_int` which does the actual work.
-
-[heading Composite Parsers]
-
-Let me present the kleene star (also in namespace spirit::qi):
-
-[import ../../../../boost/spirit/home/qi/operator/kleene.hpp]
-[composite_parsers_kleene]
-
-Looks similar in form to its primitive cousin, the `int_parser`. And, again, it
-has the same basic ingredients required by `Derived`.
-
-* The nested attribute metafunction
-* The parse member function
-* The what member function
-
-kleene is a composite parser. It is a parser that composes another
-parser, its ["subject]. It is a `__unary_parser_concept__` and subclasses from it.
-Like `__primitive_parser_concept__`, `__unary_parser_concept__<Derived>` derives
-from `parser<Derived>`.
-
-unary_parser<Derived>, has these expression requirements on Derived:
-
-* p.subject -> subject parser ( ['p] is a __unary_parser_concept__ parser.)
-* P::subject_type -> subject parser type ( ['P] is a __unary_parser_concept__ type.)
-
-/parse/ is the main parser entry point. Since this is not a primitive
-parser, we do not need to call `qi::skip(first, last, skipper)`. The
-['subject], if it is a primitive, will do the pre-skip. If if it is
-another composite parser, it will eventually call a primitive parser
-somewhere down the line which will do the pre-skip. This makes it a
-lot more efficient than __classic__. __classic__ puts the skipping business
-into the so-called "scanner" which blindly attempts a pre-skip
-everytime we increment the iterator.
-
-What is the /attribute/ of the kleene? In general, it is a `std::vector<T>`
-where `T` is the attribute of the subject. There is a special case though.
-If `T` is an `unused_type`, then the attribute of kleene is also `unused_type`.
-`traits::build_std_vector` takes care of that minor detail.
-
-So, let's parse. First, we need to provide a local attribute of for
-the subject:
-
-``
-typename traits::attribute_of<Subject, Context>::type val;
-``
-
-`traits::attribute_of<Subject, Context>` simply calls the subject's
-`struct attribute<Context>` nested metafunction.
-
-/val/ starts out default initialized. This val is the one we'll
-pass to the subject's parse function.
-
-The kleene repeats indefinitely while the subject parser is
-successful. On each successful parse, we `push_back` the parsed
-attribute to the kleen's attribute, which is expected to be,
-at the very least, compatible with a `std::vector`. In other words,
-although we say that we want our attribute to be a `std::vector`,
-we try to be more lenient than that. The caller of kleene's
-parse may pass a different attribute type. For as long as it is
-also a conforming STL container with `push_back`, we are ok. Here
-is the kleene loop:
-
-``
-while (subject.parse(first, last, context, skipper, val))
-{
- // push the parsed value into our attribute
- traits::push_back(attr, val);
- traits::clear(val);
-}
-return true;
-``
-Take note that we didn't call attr.push_back(val). Instead, we
-called a Spirit provided function:
-
-``
-traits::push_back(attr, val);
-``
-
-This is a recurring pattern. The reason why we do it this way is
-because attr [*can] be `unused_type`. `traits::push_back` takes care
-of that detail. The overload for unused_type is a no-op. Now, you
-can imagine why __spirit__ is fast! The parsers are so simple and the
-generated code is as efficient as a hand rolled loop. All these
-parser compositions and recursive parse invocations are extensively
-inlined by a modern C++ compiler. In the end, you get a tight loop
-when you use the kleene. No more excess baggage. If the attribute
-is unused, then there is no code generated for that. That's how
-__spirit__ is designed.
-
-The /what/ function simply wraps the output of the subject in a
-"kleene[" ... "]".
-
-Ok, now, like the `int_parser`, we have to hook our parser to the
-_qi_ engine. Here's how we do it:
-
-First, we enable the prefix star operator. In proto, it's called
-the "dereference":
-
-[composite_parsers_kleene_enable_]
-
-This is done in namespace `boost::spirit` like its friend, the `use_terminal`
-specialization for our `int_parser`. Obviously, we use /use_operator/ to
-enable the dereference for the qi::domain.
-
-Then, we need to write our generator (in namespace qi):
-
-[composite_parsers_kleene_generator]
-
-This essentially says; for all expressions of the form: `*p`, to build a kleene
-parser. Elements is a __fusion__ sequence. For the kleene, which is a unary
-operator, expect only one element in the sequence. That element is the subject
-of the kleene.
-
-We still don't care about the Modifiers. We'll see how the modifiers is
-all about when we get to deep directives.
-
-[endsect]
-
-[endsect]
Added: trunk/libs/spirit/doc/advanced.qbk
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/advanced.qbk 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -0,0 +1,6 @@
+[section Advanced]
+
+[include advanced/indepth.qbk]
+[include advanced/customization_points.qbk]
+
+[endsect]
Added: trunk/libs/spirit/doc/advanced/customization_points.qbk
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/advanced/customization_points.qbk 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -0,0 +1,960 @@
+[/==============================================================================
+ Copyright (C) 2001-2009 Hartmut Kaiser
+ Copyright (C) 2001-2009 Joel de Guzman
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+===============================================================================/]
+
+[def __customize_is_container__ [link spirit.advanced.customize.is_container `is_container`]]
+[def __customize_transform_attribute__ [link spirit.advanced.customize.transform `transform_attribute`]]
+[def __customize_optional_attribute__ [link spirit.advanced.customize.optional `optional_attribute`]]
+[def __customize_assign_to__ [link spirit.advanced.customize.assign_to `assign_to`]]
+[def __customize_push_back_container__ [link spirit.advanced.customize.store_value.push_back `push_back_container`]]
+[def __customize_container_value__ [link spirit.advanced.customize.store_value.container_value `container_value`]]
+[def __customize_clear_value__ [link spirit.advanced.customize.clear_value `clear_value`]]
+[def __customize_extract_from__ [link spirit.advanced.customize.extract_from `extract_from`]]
+[def __customize_container_iterator__ [link spirit.advanced.customize.iterate.container_iterator `container_iterator`]]
+[def __customize_begin_container__ [link spirit.advanced.customize.iterate.begin_container `begin_container`]]
+[def __customize_end_container__ [link spirit.advanced.customize.iterate.end_container `end_container`]]
+[def __customize_next_iterator__ [link spirit.advanced.customize.iterate.next_iterator `next_iterator`]]
+[def __customize_deref_iterator__ [link spirit.advanced.customize.iterate.deref_iterator `deref_iterator`]]
+[def __customize_compare_iterators__ [link spirit.advanced.customize.iterate.compare_iterators `compare_iterators`]]
+
+[section:customize Customization of Spirit's Attribute Handling]
+
+[heading Why do we need Attribute Customization Points]
+
+[important Before you read on please be aware that the interfaces described in
+ this section are not finalized and may change in the future without
+ attempting to be backwards compatible. We document the customization
+ point interfaces anyways as we think they are important.
+ Understanding customization points helps understanding Spirit.
+ Additionally they prove to be powerful tools enabling full
+ integration of the user's data structures with /Qi's/ parsers and
+ /Karma's/ generators.]
+
+__spirit__ has been written with extensibility in mind. It provides many
+different attribute customization points allowing to integrate custom data
+types with the process of parsing in __qi__ or output generation with
+__karma__. All attribute customization points are exposed using a similar
+technique: full or partial template specialization. __spirit__ generally
+implements the main template, providing a default implementation. You as the
+user have to provide a partial or full specialization of this template for the
+data types you want to integrate with the library. In fact, the library uses
+these customization points itself for instance to handle the magic of the
+__unused_type__ attribute type.
+
+Here is an example showing the __customize_container_value__ customization point
+used by different parsers (such as __qi_kleene__, __qi_plus__, etc.) to find
+the attribute type to be stored in a supplied STL container:
+
+[import ../../../../boost/spirit/home/support/container.hpp]
+
+[customization_container_value_default]
+
+This template is instantiated by the library at the appropriate places while
+using the supplied container type as the template argument. The embedded `type`
+is used as the attribute type while parsing the elements to be store in that
+container.
+
+The following example shows the predefined specialization for __unused_type__:
+
+[customization_container_value_unused]
+
+which defines its embedded `type` to be __unused_type__ as well, this way
+propagating the 'don't care' attribute status to the embedded parser.
+
+All attribute customization points follow the same scheme. The last template
+parameter is always `typename Enable = void` allowing to apply SFINAE for
+fine grained control over the template specialization process. But most of the
+time you can safely forget about its existence.
+
+The following sections will describe all customization points, together with a
+description which needs to be specialized for what purpose.
+
+[heading The Usage of Customization Points]
+
+The different customizations points are used by different parts of the library.
+Part of the customizations points are used by both, __qi__ and __karma__,
+whereas others are specialized to be applied for one of the sub-libraries only.
+We will explain when a specific customization point needs to be implemented and,
+equally important, which customization points need to be implemented at the
+same time. Often it is not sufficient to provide a specialization for one
+single customization point only, in this case you as the user have to provide
+all necessary customizations for your data type you want to integrate with the
+library.
+
+[/////////////////////////////////////////////////////////////////////////////]
+[section:is_container Determine if a Type Should be Treated as a Container (Qi and Karma)]
+
+[heading is_container]
+
+The template `is_container` is a template meta-function used as an attribute
+customization point. It is invoked by the /Qi/ __qi_sequence__ (`>>`) and
+/Karma/ __karma_sequence__ operators in order to determine whether a supplied
+attribute can potentially be treated as a container.
+
+[heading Header]
+
+ #include <boost/spirit/home/support/container.hpp>
+
+Also, see __include_structure__.
+
+[note This header file does not need to be included directly by any user
+ program as it is normally included by other Spirit header files relying
+ on its content.]
+
+[heading Namespace]
+
+[table
+ [[Name]]
+ [[`boost::spirit::traits`]]
+]
+
+[heading Synopsis]
+
+ template <typename Container, typename Enable>
+ struct is_container;
+
+[heading Template parameters]
+
+[table
+ [[Parameter] [Description] [Default]]
+ [[`Container`] [The type, `Container` needs to
+ be tested whether it has to be treated
+ as a container] [none]]
+ [[`Enable`] [Helper template parameter usable to selectively
+ enable or disable certain specializations
+ of `is_container` utilizing SFINAE (i.e.
+ `boost::enable_if` or `boost::disable_if`).] [`void`]]
+]
+
+[heading Notation]
+
+[variablelist
+ [[`C`] [A type to be tested whether it needs to be treated
+ as a container.]]
+ [[`T1`, `T2`, ...] [Arbitrary types]]
+]
+
+[heading Expression Semantics]
+
+[table
+ [[Expression] [Semantics]]
+ [[`is_container<C>::type`] [Metafunction that evaluates to `mpl::true_`
+ if a given type, `C`, is to be treated as a
+ container, `mpl::false_` otherwise (See
+ __mpl_boolean_constant__).]]
+]
+
+[heading Predefined Specializations]
+
+__spirit__ predefines specializations of this customization point for
+several types. The following table lists those types together with the
+conditions for which the corresponding specializations will evaluate to
+`mpl::true_` (see __mpl_boolean_constant__):
+
+[table
+ [[Template Parameters] [Value]]
+ [[`T`] [Returns `mpl::true_` if `T` has the following
+ embedded types defined: `value_type`,
+ `iterator`, `size_type`, and`reference`.
+ Otherwise it will return `mpl::false_`.]]
+ [[`boost::optional<T>`] [Returns `is_container<T>::type`]]
+ [[`boost::variant<T1, T2, ...>`]
+ [Returns `mpl::true_` if at least one of the
+ `is_container<TN>::type` returns `mpl::true_`
+ (where `TN` is `T1`, `T2`, ...).
+ Otherwise it will return `mpl::false_`.]]
+ [[__unused_type__] [Returns `mpl::false_`.]]
+]
+
+[heading When to implement]
+
+The customization point `is_container` needs to be implemented for a specific
+type whenever this type is to be used as an attribute in place of a STL
+container. It is applicable for parsers (__qi__) and generators (__karma__).
+As a rule of thumb: it has to be implemented whenever a certain type
+is to be passed as an attribute to a parser or a generator normally exposing a
+STL container and if the type does not expose the interface of a STL container
+(i.e. `is_container<C>::type` would normally return `mpl::false_`). These
+components have an attribute propagation rule in the form:
+
+ a: A --> Op(a): vector<A>
+
+where `Op(a)` stands for any meaningful operation on the component `a`.
+
+[heading Related Attribute Customization Points]
+
+If this customization point is implemented, the following other customization
+points need to be implemented as well.
+
+[table
+ [[Name] [When to implement]]
+ [[__customize_container_value__] [Needs to be implemented whenever `is_container` is implemented.]]
+ [[__customize_push_back_container__] [Qi: __qi_list__, __qi_kleene__, __qi_plus__, [qi_repeat Repeat].]]
+ [[`container_iterator`] [Karma: __karma_list__, [karma_kleene Kleene (unary `*`)], __karma_plus__, [karma_repeat Repeat].]]
+ [[`begin_container`] [Karma: __karma_list__, [karma_kleene Kleene (unary `*`)], __karma_plus__, [karma_repeat Repeat].]]
+ [[`end_container`] [Karma: __karma_list__, [karma_kleene Kleene (unary `*`)], __karma_plus__, [karma_repeat Repeat].]]
+ [[`deref_iterator`] [Karma: __karma_list__, [karma_kleene Kleene (unary `*`)], __karma_plus__, [karma_repeat Repeat].]]
+ [[`next_iterator`] [Karma: __karma_list__, [karma_kleene Kleene (unary `*`)], __karma_plus__, [karma_repeat Repeat].]]
+ [[`compare_iterators`] [Karma: __karma_list__, [karma_kleene Kleene (unary `*`)], __karma_plus__, [karma_repeat Repeat].]]
+]
+
+[heading Example]
+
+TBD
+
+[endsect]
+
+[/////////////////////////////////////////////////////////////////////////////]
+[section:transform Transform an Attribute to a Different Type (Qi and Karma)]
+
+[heading transform_attribute]
+
+Short description here...
+
+[heading Module Headers]
+
+ #include <boost/spirit/xxx.hpp>
+
+Also, see __include_structure__.
+
+[note This header file does not need to be included directly by any user
+ program as it is normally included by other Spirit header files relying
+ on its content.]
+
+[heading Namespace]
+
+[table
+ [[Name]]
+ [[`boost::spirit::xxx`]]
+]
+
+[heading Synopsis]
+
+ template <typename T>
+ struct XXX;
+
+[heading Template parameters]
+
+[table
+ [[Parameter] [Description] [Default]]
+ [[`T`] [What is T] []]
+]
+
+[heading Notation]
+
+[variablelist Notation
+ [[`xxx`] [An XXX]]
+]
+
+[heading Expression Semantics]
+
+Semantics of an expression is defined only where it differs from, or is not
+defined in _concept-of_XXX_.
+
+[table
+ [[Expression] [Semantics]]
+ [[`xxx`] [Semantics of `xxx`]]
+]
+
+[heading Predefined Specializations]
+
+[table
+ [[Type] [Condition]]
+ [[`xxx`] [when does it evaluate to mpl::true_]]
+]
+
+[heading When to implement]
+
+Describe when this customization point needs to be implemented by the user.
+
+[heading Related Attribute Customization Points]
+
+If this customization point is implemented, the following other customization
+points need to be implemented as well.
+
+[table
+ [[Name] [When to implement]]
+]
+
+[heading Example]
+
+TBD
+
+[endsect]
+
+[/////////////////////////////////////////////////////////////////////////////]
+[/ section:optional Handling of Optional Attributes (Qi and Karma)]
+
+[/ optional_attribute]
+
+[/ endsect]
+
+[/////////////////////////////////////////////////////////////////////////////]
+[section:assign_to Store a Parsed Attribute Value (Qi)]
+
+After parsing input and generting an attribute value this value needs to
+assigned to the attribute instance provided by the user. The customization
+points `assign_to_attribute_from_iterators` and `assign_to_attribute_from_value`
+are utilized to adapt this assignment to the concrete type to be assigned.
+This section describes both.
+
+[section:assign_to_attribute_from_iterators Store an Attribute after a Parser Produced a Pair of Iterators (Qi)]
+
+[heading assign_to_attribute_from_iterators]
+
+The template `assign_to_attribute_from_iterators` is a type used as an attribute
+customization point. It is invoked by the those /Qi/ parsers not producing any
+attribute value but returning a pair of iterators pointing to the matched input
+sequence. It is used to either store the iterator pair into the attribute
+instance provided by the user or to convert the iterator pair into an attribute
+as provided by the user.
+
+[heading Module Headers]
+
+ #include <boost/spirit/home/qi/detail/assign_to.hpp>
+
+Also, see __include_structure__.
+
+[note This header file does not need to be included directly by any user
+ program as it is normally included by other Spirit header files relying
+ on its content.]
+
+[heading Namespace]
+
+[table
+ [[Name]]
+ [[`boost::spirit::traits`]]
+]
+
+[heading Synopsis]
+
+ template <typename Attrib, typename Iterator, typename Enable>
+ struct assign_to_attribute_from_iterators;
+
+[heading Template parameters]
+
+[table
+ [[Parameter] [Description] [Default]]
+ [[`Attrib`] [The type, `Attrib` is the type of the attribute as
+ passed in by the user.] [none]]
+ [[`Iterator`] [The type, `Iterator` is the type of the iterators
+ as produced by the parser.] [none]]
+ [[`Enable`] [Helper template parameter usable to selectively
+ enable or disable certain specializations
+ of `assign_to_attribute_from_value` utilizing SFINAE (i.e.
+ `boost::enable_if` or `boost::disable_if`).] [`void`]]
+]
+
+[heading Notation]
+
+[variablelist Notation
+ [[`Attrib`] [A type to be used as the target to store the attribute value in.]]
+ [[`attr`] [A attribute instance of type `Attrib`.]]
+ [[`Iterator`] [The iterator type used by the parser. This type usually
+ corresponds to the iterators as passed in by the user.]]
+ [[`begin`, `end`] [Iterator instances of type `Iterator` pointing to the
+ begin and the end of the matched input sequence.]]
+]
+
+[heading Expression Semantics]
+
+[table
+ [[Expression] [Semantics]]
+ [[
+``assign_to_attribute_from_iterators<Attrib, Iterator>::call(b, e, attr)``]
+ [Use the iterators `begin` and `end` to initialize
+ the attribute `attr`.]]
+]
+
+[heading Predefined Specializations]
+
+[table
+ [[Type] [Semantics]]
+ [[`Attrib`, `Iterator`] [Execute an assignment `attr = Attrib(begin, end)`.]]
+ [[__unused_type__, `T`] [Do nothing.]]
+]
+
+[heading When to implement]
+
+The customization point `assign_to_attribute_from_iterators` needs to be
+implemented for a specific type whenever the default implementation as shown
+above is not applicable. Examples for this could be that the type `Attrib` is
+not constructible from the pair of iterators.
+
+[heading Example]
+
+TBD
+
+[endsect]
+
+[section:assign_to_attribute_from_value Store an Attribute Value after a Parser Produced a Value (Qi)]
+
+[heading assign_to_attribute_from_value]
+
+The template `assign_to_attribute_from_value` is a type used as an attribute
+customization point. It is invoked by the all primitive /Qi/ parsers in order
+to store a parsed attribute value into the attribute instance provided by the
+user.
+
+[heading Module Headers]
+
+ #include <boost/spirit/home/qi/detail/assign_to.hpp>
+
+Also, see __include_structure__.
+
+[note This header file does not need to be included directly by any user
+ program as it is normally included by other Spirit header files relying
+ on its content.]
+
+[heading Namespace]
+
+[table
+ [[Name]]
+ [[`boost::spirit::traits`]]
+]
+
+[heading Synopsis]
+
+ template <typename Attrib, typename T, typename Enable>
+ struct assign_to_attribute_from_value;
+
+[heading Template parameters]
+
+[table
+ [[Parameter] [Description] [Default]]
+ [[`Attrib`] [The type, `Attrib` is the type of the attribute as
+ passed in by the user.] [none]]
+ [[`T`] [The type, `T` is the type of the attribute instance
+ as produced by the parser.] [none]]
+ [[`Enable`] [Helper template parameter usable to selectively
+ enable or disable certain specializations
+ of `assign_to_attribute_from_value` utilizing SFINAE (i.e.
+ `boost::enable_if` or `boost::disable_if`).] [`void`]]
+]
+
+[heading Notation]
+
+[variablelist Notation
+ [[`Attrib`] [A type to be used as the target to store the attribute value in.]]
+ [[`attr`] [A attribute instance of type `Attrib`.]]
+ [[`T`] [A type as produced by the parser. The parser temporarily stores
+ its parsed values using this type.]]
+ [[`t`] [A attribute instance of type `T`.]]
+]
+
+[heading Expression Semantics]
+
+[table
+ [[Expression] [Semantics]]
+ [[
+``assign_to_attribute_from_value<Attrib, T>::call(t, attr)``]
+ [Copy (assign) the value, `t` to the attribute `attr`.]]
+]
+
+[heading Predefined Specializations]
+
+[table
+ [[Type] [Semantics]]
+ [[`Attrib`, `T`] [Assign the argument `t` to `attr`.]]
+ [[__unused_type__, `T`] [Do nothing.]]
+]
+
+[heading When to implement]
+
+The customization point `assign_to_attribute_from_value` needs to be
+implemented for a specific type whenever the default implementation as shown
+above is not applicable. Examples for this could be that the type `Attrib` is
+not copy constructible.
+
+[heading Example]
+
+TBD
+
+[endsect]
+
+[endsect]
+
+[/////////////////////////////////////////////////////////////////////////////]
+[section:store_value Store Parsed Attribute Values into a Container (Qi)]
+
+In order to customize Spirit to accept a given data type as a container for
+elements parsed by any of the repetitive parsers (__qi_kleene__, __qi_plus__,
+__qi_list__, and [qi_repeat Repeat]) two attribute customization points have to be
+specialized: __customize_container_value__ and __customize_push_back_container__.
+This section describes both.
+
+[section:container_value Determine the Type to be Stored in a Container (Qi)]
+
+[heading container_value]
+
+The template `container_value` is a template meta function used as an attribute
+customization point. It is invoked by the /Qi/ repetitive parsers
+(__qi_kleene__, __qi_plus__, __qi_list__, and [qi_repeat Repeat]) to determine the
+type to store in a container.
+
+[heading Module Headers]
+
+ #include <boost/spirit/home/support/container.hpp>
+
+Also, see __include_structure__.
+
+[note This header file does not need to be included directly by any user
+ program as it is normally included by other Spirit header files relying
+ on its content.]
+
+[heading Namespace]
+
+[table
+ [[Name]]
+ [[`boost::spirit::traits`]]
+]
+
+[heading Synopsis]
+
+ template <typename Container, typename Enable>
+ struct container_value;
+
+[heading Template parameters]
+
+[table
+ [[Parameter] [Description] [Default]]
+ [[`Container`] [The type, `Container` needs to
+ be tested whether it has to be treated
+ as a container] [none]]
+ [[`Enable`] [Helper template parameter usable to selectively
+ enable or disable certain specializations
+ of `container_value` utilizing SFINAE (i.e.
+ `boost::enable_if` or `boost::disable_if`).] [`void`]]
+]
+
+[heading Notation]
+
+[variablelist
+ [[`C`] [A type to be tested whether it needs to be treated
+ as a container.]]
+ [[`T1`, `T2`, ...] [Arbitrary types]]
+]
+
+[heading Expression Semantics]
+
+[table
+ [[Expression] [Semantics]]
+ [[`container_value<C>::type`] [Metafunction that evaluates to the type
+ to be stored in a given container type,
+ `C`.]]
+]
+
+[heading Predefined Specializations]
+
+__spirit__ predefines specializations of this customization point for
+several types. The following table lists those types together with the types
+exposed and the corresponding semantics:
+
+[table
+ [[Template Parameters] [Value]]
+ [[`C`] [The non-const `value_type` of the given container
+ type, `C`. ]]
+ [[`boost::optional<C>`] [Returns `container_value<C>::type`]]
+ [[`boost::variant<T1, T2, ...>`]
+ [Returns `container_value<TN>::value` for the
+ first `TN` (out of `T1`, `T2`, ...) for which
+ `is_container<TN>::type` evaluates to `mpl::true_`.
+ Otherwise it will return __unused_type__.]]
+ [[__unused_type__] [Returns __unused_type__.]]
+]
+
+[heading When to implement]
+
+The customization point `is_container` needs to be implemented for a specific
+type whenever this type is to be used as an attribute in place of a STL
+container. It is applicable for parsers (__qi__) only. As a rule of thumb: it
+has to be implemented whenever a certain type is to be passed as an attribute
+to a parser normally exposing a STL container and if the type does not expose
+the interface of a STL container (i.e. no embedded typedef for `value_type`).
+These components have an attribute propagation rule in the form:
+
+ a: A --> Op(a): vector<A>
+
+where `Op(a)` stands for any meaningful operation on the component `a`.
+
+[heading Related Attribute Customization Points]
+
+If this customization point is implemented, the following other customization
+points need to be implemented as well.
+
+[table
+ [[Name] [When to implement]]
+ [[__customize_push_back_container__] [Qi: __qi_list__, __qi_kleene__, __qi_plus__, [qi_repeat Repeat].]]
+ [[__customize_clear_value__] [Qi: __qi_list__, __qi_kleene__, __qi_plus__, [qi_repeat Repeat].]]
+]
+
+[heading Example]
+
+TBD
+
+[endsect]
+
+[section:push_back Store a Parsed Attribute Value into a Container (Qi)]
+
+[heading push_back_container]
+
+The template `push_back_container` is a type used as an attribute customization
+point. It is invoked by the /Qi/ repetitive parsers (__qi_kleene__, __qi_plus__,
+__qi_list__, and [qi_repeat Repeat]) to store a parsed attribute value into a
+container.
+
+[heading Module Headers]
+
+ #include <boost/spirit/home/support/container.hpp>
+
+Also, see __include_structure__.
+
+[note This header file does not need to be included directly by any user
+ program as it is normally included by other Spirit header files relying
+ on its content.]
+
+[heading Namespace]
+
+[table
+ [[Name]]
+ [[`boost::spirit::traits`]]
+]
+
+[heading Synopsis]
+
+ template <typename Container, typename Attrib, typename Enable>
+ struct push_back_container;
+
+[heading Template parameters]
+
+[table
+ [[Parameter] [Description] [Default]]
+ [[`Container`] [The type, `Container` needs to
+ be tested whether it has to be treated
+ as a container] [none]]
+ [[`Attrib`] [The type, `Attrib` is the one returned from the
+ customization point __customize_container_value__
+ and represents the attribute value to be stored in
+ the container of type `Container`.] [none]]
+ [[`Enable`] [Helper template parameter usable to selectively
+ enable or disable certain specializations
+ of `push_back_container` utilizing SFINAE (i.e.
+ `boost::enable_if` or `boost::disable_if`).] [`void`]]
+]
+
+[heading Notation]
+
+[variablelist
+ [[`C`] [A type to be used as a container to store attribute values in.]]
+ [[`c`] [A container instance of type `C`.]
+ [[`Attrib`] [A type to be used as a container to store attribute values in.]]
+ [[`attr`] [A attribute instance of type `Attrib`.]]
+ [[`T1`, `T2`, ...] [Arbitrary types]]
+]
+
+[heading Expression Semantics]
+
+[table
+ [[Expression] [Semantics]]
+ [[
+``push_back_container<C, Attrib>::call(c, attr)``]
+ [Static function that is invoked whenever an
+ attribute value, `attr` needs to be stored
+ into the container instance `c`.]]
+]
+
+[heading Predefined Specializations]
+
+__spirit__ predefines specializations of this customization point for
+several types. The following table lists those types together with the types
+exposed and the corresponding semantics:
+
+[table
+ [[Template Parameters] [Value]]
+ [[`C`, `Attrib`] [Store the provided attribute instance `attr` into
+ the given container `c` using the function call
+ `c.insert(c.end(), attr)`.]]
+ [[`boost::optional<C>`, `Attrib`]
+ [If the provided instance of `boost::optional<>` is not
+ initialized, invoke the appropriate initialization
+ and afterwards apply the customization point
+ `push_back_container<C, Attrib>`, treating the
+ instance held by the optional (of type `C`) as
+ the container to store the attribute in.]]
+ [[`boost::variant<T1, T2, ...>`, `Attrib`]
+ [If the instance of the variant currently holds a
+ value with a type, `TN`, for which `is_container<TN>::type`
+ evaluates to `mpl::true_`, this customization
+ point specialization will apply
+ `push_back_container<TN, Attrib>`, treating the
+ instance held by the variant (of type `TN`) as
+ the container to store the attribute in. Otherwise
+ it will raise an assertion.]]
+ [[__unused_type__] [Do nothing.]]
+]
+
+[heading When to Implement]
+
+The customization point `push_back_container` needs to be implemented for a
+specific type whenever this type is to be used as an attribute in place of a STL
+container. It is applicable for parsers (__qi__) only. As a rule of thumb: it
+has to be implemented whenever a certain type is to be passed as an attribute
+to a parser normally exposing a STL container and if the type does not expose
+the interface of a STL container (i.e. no function being equivalent to
+`c.insert(c.end(), attr)`. These components have an attribute propagation rule
+in the form:
+
+ a: A --> Op(a): vector<A>
+
+where `Op(a)` stands for any meaningful operation on the component `a`.
+
+[heading Related Attribute Customization Points]
+
+If this customization point is implemented, the following other customization
+points need to be implemented as well.
+
+[table
+ [[Name] [When to implement]]
+ [[__customize_container_value__] [Qi: __qi_list__, __qi_kleene__, __qi_plus__, [qi_repeat Repeat].]]
+ [[__customize_clear_value__] [Qi: __qi_list__, __qi_kleene__, __qi_plus__, [qi_repeat Repeat].]]
+]
+
+[heading Example]
+
+TBD
+
+[endsect]
+
+[endsect]
+
+[/////////////////////////////////////////////////////////////////////////////]
+[section:clear_value Re-Initialize an Attribute Value before Parsing (Qi)]
+
+[heading clear_value]
+
+The template `clear_value` is a type used as an attribute customization point.
+It is invoked by the /Qi/ repetitive parsers (__qi_kleene__, __qi_plus__,
+__qi_list__, and [qi_repeat Repeat]) in order to re-initialize the attribute
+instance passed to the embedded parser after it has been stored in the provided
+container. This re-initialized attribute instance is reused during the next
+iteration of the repetitive parser.
+
+[heading Module Headers]
+
+ #include <boost/spirit/home/support/attributes.hpp>
+
+Also, see __include_structure__.
+
+[note This header file does not need to be included directly by any user
+ program as it is normally included by other Spirit header files relying
+ on its content.]
+
+[heading Namespace]
+
+[table
+ [[Name]]
+ [[`boost::spirit::traits`]]
+]
+
+[heading Synopsis]
+
+ template <typename Attrib, typename Enable>
+ struct clear_value;
+
+[heading Template parameters]
+
+[table
+ [[Parameter] [Description] [Default]]
+ [[`Attrib`] [The type, `Attrib` of the attribute to be
+ re-initialized.] [none]]
+ [[`Enable`] [Helper template parameter usable to selectively
+ enable or disable certain specializations
+ of `clear_value` utilizing SFINAE (i.e.
+ `boost::enable_if` or `boost::disable_if`).] [`void`]]
+]
+
+[heading Notation]
+
+[variablelist Notation
+ [[`Attrib`] [A type to be used as a container to store attribute values in.]]
+ [[`attr`] [A attribute instance of type `Attrib`.]]
+ [[`T1`, `T2`, ...] [Arbitrary types]]
+]
+
+[heading Expression Semantics]
+
+[table
+ [[Expression] [Semantics]]
+ [[
+``clear_value<Attrib>::call(Attrib& attr)``] [Re-initialize the instance referred to by
+ `attr` in the most efficient way.]]
+]
+
+[heading Predefined Specializations]
+
+__spirit__ predefines specializations of this customization point for
+several types. The following table lists those types together with the types
+exposed and the corresponding semantics:
+
+[table
+ [[Template Parameters] [Value]]
+ [[`Attrib`] [Re-initialize using assignment of default
+ constructed value.]]
+ [[Any type `T` for which `is_container<>::type` is `mpl::true_`]
+ [Call the member function `attr.clear()` for the
+ passed attribute instance.]]
+ [[`boost::optional<Attrib>`] [Clear the `optional` instance and leave it
+ uninitialized.]]
+ [[`boost::variant<T1, T2, ...>`][Invoke the `clear_value` customization
+ point for the currently held value.]]
+ [[`fusion::tuple<T1, T2, ...>`][Invoke the `clear_value` customization
+ point for all elements of the tuple.]]
+ [[__unused_type__] [Do nothing.]]
+]
+
+[heading When to Implement]
+
+The customization point `clear_value` needs to be implemented for a
+specific type whenever this type is to be used as an attribute to be stored
+into a STL container and if the type cannot be re-initialized using one of the
+specializations listed above. Examples for this might be types not being default
+constructible or container types not exposing a member function `clear()`.
+
+[heading Example]
+
+TBD
+
+[endsect]
+
+[/////////////////////////////////////////////////////////////////////////////]
+[section:extract_from Extract an Attribute Value to Generate Output (Karma)]
+
+[heading extract_from]
+
+Before generating output for an value this value needs to extracted from the
+attribute instance provided by the user. The customization point
+`extract_from` is utilized to adapt this extraction for any data type possibly
+used to store the values to output.
+
+Short description here...
+
+[heading Module Headers]
+
+ #include <boost/spirit/home/karma/detail/extract_from.hpp>
+
+Also, see __include_structure__.
+
+[note This header file does not need to be included directly by any user
+ program as it is normally included by other Spirit header files relying
+ on its content.]
+
+[heading Namespace]
+
+[table
+ [[Name]]
+ [[`boost::spirit::traits`]]
+]
+
+[heading Synopsis]
+
+ template <typename Attrib, typename Enable>
+ struct extract_from_attribute;
+
+[heading Template parameters]
+
+[table
+ [[Parameter] [Description] [Default]]
+ [[`Attrib`] [The type, `Attrib` of the attribute to be used to
+ generate output from.] [none]]
+ [[`Enable`] [Helper template parameter usable to selectively
+ enable or disable certain specializations
+ of `clear_value` utilizing SFINAE (i.e.
+ `boost::enable_if` or `boost::disable_if`).] [`void`]]
+]
+
+[heading Notation]
+
+[variablelist Notation
+ [[`Attrib`] [A type to be used to generate output from.]]
+ [[`attr`] [A attribute instance of type `Attrib`.]]
+]
+
+[heading Expression Semantics]
+
+Semantics of an expression is defined only where it differs from, or is not
+defined in _concept-of_XXX_.
+
+[table
+ [[Expression] [Semantics]]
+ [[
+``extract_from_attribute<Attrib>::call(attr)``] [Extract the value to generate
+ output from and return it to the caller.]]
+]
+
+[heading Predefined Specializations]
+
+__spirit__ predefines specializations of this customization point for
+several types. The following table lists those types together with the types
+exposed and the corresponding semantics:
+
+[table
+ [[Template Parameters] [Value]]
+ [[`Attrib`] [The exposed typedef `type` is defined to
+ `Attrib const&`. The function `call()` returns
+ the argument by reference without change.]]
+ [[`boost::optional<Attrib>`] [The exposed typedef `type` is defined to
+ `Attrib const&`. The function `call()` returns
+ the value held by the `optional<>` argument
+ by reference without change.]]
+ [[`boost::reference_wrapper<Attrib>`]
+ [The exposed typedef `type` is defined to
+ `Attrib const&`. The function `call()` returns
+ the value held by the `reference_wrapper<>`
+ argument by reference without change.]]
+ [[__unused_type__] [The exposed typedef `type` is defined to
+ __unused_type__. The function `call()` returns
+ an instance of __unused_type__.]]
+]
+
+[heading When to implement]
+
+The customization point `extract_from_attribute` needs to be implemented for a
+specific type whenever the default implementation as shown above is not
+applicable. Examples for this could be that the type to be extracted is
+different from `Attrib` and is not copy constructible.
+
+[heading Example]
+
+TBD
+
+[endsect]
+
+[/////////////////////////////////////////////////////////////////////////////]
+[/ section:iterate Extract Attribute Values to Generate Output from a Container (Karma)]
+
+[/ container_iterator]
+[/ endsect]
+
+[/ begin_container]
+[/ endsect]
+
+[/ end_container]
+[/ endsect]
+
+[/ next_iterator]
+[/ endsect]
+
+[/ deref_iterator]
+[/ endsect]
+
+[/ compare_iterators]
+[/ endsect]
+
+[/ endsect]
+
+[endsect]
+
Added: trunk/libs/spirit/doc/advanced/indepth.qbk
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/advanced/indepth.qbk 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -0,0 +1,279 @@
+[/==============================================================================
+ Copyright (C) 2001-2009 Joel de Guzman
+ Copyright (C) 2001-2009 Hartmut Kaiser
+ Copyright (C) 2009 Andreas Haberstroh?
+
+ Distributed under the Boost Software License, Version 1.0. (See accompanying
+ file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+===============================================================================/]
+
+[section:indepth In Depth]
+
+[section:parsers_indepth Parsers in Depth]
+
+This section is not for the faint of heart. In here, are distilled the inner
+workings of __qi__ parsers, using real code from the __spirit__ library as
+examples. On the other hand, here is no reason to fear reading on, though.
+We tried to explain things step by step while highlighting the important
+insights.
+
+The `__parser_concept__` class is the base class for all parsers.
+
+[import ../../../../boost/spirit/home/qi/parser.hpp]
+[parser_base_parser]
+
+The `__parser_concept__` class does not really know how to parse anything but
+instead relies on the template parameter `Derived` to do the actual parsing.
+This technique is known as the "Curiously Recurring Template Pattern" in template
+meta-programming circles. This inheritance strategy gives us the power of
+polymorphism without the virtual function overhead. In essence this is a way to
+implement compile time polymorphism.
+
+The Derived parsers, `__primitive_parser_concept__`, `__unary_parser_concept__`,
+`__binary_parser_concept__` and `__nary_parser_concept__` provide the necessary
+facilities for parser detection, introspection, transformation and visitation.
+
+Derived parsers must support the following:
+
+[variablelist bool parse(f, l, context, skip, attr)
+ [[`f`, `l`] [first/last iterator pair]]
+ [[`context`] [enclosing rule context (can be unused_type)]]
+ [[`skip`] [skipper (can be unused_type)]]
+ [[`attr`] [attribute (can be unused_type)]]
+]
+
+The /parse/ is the main parser entry point. /skipper/ can be an `unused_type`.
+It's a type used every where in __spirit__ to signify "don't-care". There
+is an overload for /skip/ for `unused_type` that is simply a no-op.
+That way, we do not have to write multiple parse functions for
+phrase and character level parsing.
+
+Here are the basic rules for parsing:
+
+* The parser returns `true` if successful, `false` otherwise.
+* If successful, `first` is incremented N number of times, where N
+ is the number of characters parsed. N can be zero --an empty (epsilon)
+ match.
+* If successful, the parsed attribute is assigned to /attr/
+* If unsuccessful, `first` is reset to its position before entering
+ the parser function. /attr/ is untouched.
+
+[variablelist void what(context)
+ [[`context`] [enclosing rule context (can be `unused_type`)]]
+]
+
+The /what/ function should be obvious. It provides some information
+about ["what] the parser is. It is used as a debugging aid, for
+example.
+
+[variablelist P::template attribute<context>::type
+ [[`P`] [a parser type]]
+ [[`context`] [A context type (can be unused_type)]]
+]
+
+The /attribute/ metafunction returns the expected attribute type
+of the parser. In some cases, this is context dependent.
+
+In this section, we will dissect two parser types:
+
+[variablelist Parsers
+ [[`__primitive_parser_concept__`] [A parser for primitive data (e.g. integer parsing).]]
+ [[`__unary_parser_concept__`] [A parser that has single subject (e.g. kleene star).]]
+]
+
+[/------------------------------------------------------------------------------]
+[heading Primitive Parsers]
+
+For our disection study, we will use a __spirit__ primitive, the `int_parser`
+in the boost::spirit::qi namespace.
+
+[import ../../../../boost/spirit/home/qi/numeric/int.hpp]
+[primitive_parsers_int]
+
+The `int_parser` is derived from a `__primitive_parser_concept__<Derived>`, which
+in turn derives from `parser<Derived>`. Therefore, it supports the following
+requirements:
+
+* The `parse` member function
+* The `what` member function
+* The nested `attribute` metafunction
+
+/parse/ is the main entry point. For primitive parsers, our first thing to do is
+call:
+
+``
+qi::skip(first, last, skipper);
+``
+
+to do a pre-skip. After pre-skipping, the parser proceeds to do its thing. The
+actual parsing code is placed in `extract_int<T, Radix, MinDigits,
+MaxDigits>::call(first, last, attr);`
+
+This simple no-frills protocol is one of the reasons why __spirit__ is
+fast. If you know the internals of __classic__ and perhaps
+even wrote some parsers with it, this simple __spirit__ mechanism
+is a joy to work with. There are no scanners and all that crap.
+
+The /what/ function just tells us that it is an integer parser. Simple.
+
+The /attribute/ metafunction returns the T template parameter. We associate the
+`int_parser` to some placeholders for `short_`, `int_`, `long_` and `long_long`
+types. But, first, we enable these placeholders in namespace boost::spirit:
+
+[primitive_parsers_enable_short_]
+[primitive_parsers_enable_int_]
+[primitive_parsers_enable_long_]
+[primitive_parsers_enable_long_long_]
+
+Notice that `int_parser` is placed in the namespace boost::spirit::qi
+while these /enablers/ are in namespace boost::spirit. The reason is
+that these placeholders are shared by other __spirit__ /domains/. __qi__,
+the parser is one domain. __karma__, the generator is another domain.
+Other parser technologies may be developed and placed in yet
+another domain. Yet, all these can potentially share the same
+placeholders for interoperability. The interpretation of these
+placeholders is domain-specific.
+
+Now that we enabled the placeholders, we have to write generators
+for them. The make_xxx stuff (in boost::spirit::qi namespace):
+
+[primitive_parsers_make_int]
+
+This one above is our main generator. It's a simple function object
+with 2 (unused) arguments. These arguments are
+
+# The actual terminal value obtained by proto. In this case, either
+ a short_, int_, long_ or long_long. We don't care about this.
+
+# Modifiers. We also don't care about this. This allows directives
+ such as `no_case[p]` to pass information to inner parser nodes.
+ We'll see how that works later.
+
+Now:
+
+[primitive_parsers_short_]
+[primitive_parsers_int_]
+[primitive_parsers_long_]
+[primitive_parsers_long_long_]
+
+These, specialize `qi:make_primitive` for specific tags. They all
+inherit from `make_int` which does the actual work.
+
+[heading Composite Parsers]
+
+Let me present the kleene star (also in namespace spirit::qi):
+
+[import ../../../../boost/spirit/home/qi/operator/kleene.hpp]
+[composite_parsers_kleene]
+
+Looks similar in form to its primitive cousin, the `int_parser`. And, again, it
+has the same basic ingredients required by `Derived`.
+
+* The nested attribute metafunction
+* The parse member function
+* The what member function
+
+kleene is a composite parser. It is a parser that composes another
+parser, its ["subject]. It is a `__unary_parser_concept__` and subclasses from it.
+Like `__primitive_parser_concept__`, `__unary_parser_concept__<Derived>` derives
+from `parser<Derived>`.
+
+unary_parser<Derived>, has these expression requirements on Derived:
+
+* p.subject -> subject parser ( ['p] is a __unary_parser_concept__ parser.)
+* P::subject_type -> subject parser type ( ['P] is a __unary_parser_concept__ type.)
+
+/parse/ is the main parser entry point. Since this is not a primitive
+parser, we do not need to call `qi::skip(first, last, skipper)`. The
+['subject], if it is a primitive, will do the pre-skip. If if it is
+another composite parser, it will eventually call a primitive parser
+somewhere down the line which will do the pre-skip. This makes it a
+lot more efficient than __classic__. __classic__ puts the skipping business
+into the so-called "scanner" which blindly attempts a pre-skip
+everytime we increment the iterator.
+
+What is the /attribute/ of the kleene? In general, it is a `std::vector<T>`
+where `T` is the attribute of the subject. There is a special case though.
+If `T` is an `unused_type`, then the attribute of kleene is also `unused_type`.
+`traits::build_std_vector` takes care of that minor detail.
+
+So, let's parse. First, we need to provide a local attribute of for
+the subject:
+
+``
+typename traits::attribute_of<Subject, Context>::type val;
+``
+
+`traits::attribute_of<Subject, Context>` simply calls the subject's
+`struct attribute<Context>` nested metafunction.
+
+/val/ starts out default initialized. This val is the one we'll
+pass to the subject's parse function.
+
+The kleene repeats indefinitely while the subject parser is
+successful. On each successful parse, we `push_back` the parsed
+attribute to the kleen's attribute, which is expected to be,
+at the very least, compatible with a `std::vector`. In other words,
+although we say that we want our attribute to be a `std::vector`,
+we try to be more lenient than that. The caller of kleene's
+parse may pass a different attribute type. For as long as it is
+also a conforming STL container with `push_back`, we are ok. Here
+is the kleene loop:
+
+``
+while (subject.parse(first, last, context, skipper, val))
+{
+ // push the parsed value into our attribute
+ traits::push_back(attr, val);
+ traits::clear(val);
+}
+return true;
+``
+Take note that we didn't call attr.push_back(val). Instead, we
+called a Spirit provided function:
+
+``
+traits::push_back(attr, val);
+``
+
+This is a recurring pattern. The reason why we do it this way is
+because attr [*can] be `unused_type`. `traits::push_back` takes care
+of that detail. The overload for unused_type is a no-op. Now, you
+can imagine why __spirit__ is fast! The parsers are so simple and the
+generated code is as efficient as a hand rolled loop. All these
+parser compositions and recursive parse invocations are extensively
+inlined by a modern C++ compiler. In the end, you get a tight loop
+when you use the kleene. No more excess baggage. If the attribute
+is unused, then there is no code generated for that. That's how
+__spirit__ is designed.
+
+The /what/ function simply wraps the output of the subject in a
+"kleene[" ... "]".
+
+Ok, now, like the `int_parser`, we have to hook our parser to the
+_qi_ engine. Here's how we do it:
+
+First, we enable the prefix star operator. In proto, it's called
+the "dereference":
+
+[composite_parsers_kleene_enable_]
+
+This is done in namespace `boost::spirit` like its friend, the `use_terminal`
+specialization for our `int_parser`. Obviously, we use /use_operator/ to
+enable the dereference for the qi::domain.
+
+Then, we need to write our generator (in namespace qi):
+
+[composite_parsers_kleene_generator]
+
+This essentially says; for all expressions of the form: `*p`, to build a kleene
+parser. Elements is a __fusion__ sequence. For the kleene, which is a unary
+operator, expect only one element in the sequence. That element is the subject
+of the kleene.
+
+We still don't care about the Modifiers. We'll see how the modifiers is
+all about when we get to deep directives.
+
+[endsect]
+
+[endsect]
Modified: trunk/libs/spirit/doc/html/index.html
==============================================================================
--- trunk/libs/spirit/doc/html/index.html (original)
+++ trunk/libs/spirit/doc/html/index.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,7 +3,7 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Spirit 2.1</title>
<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="index.html" title="Spirit 2.1">
<link rel="next" href="spirit/preface.html" title="Preface">
</head>
@@ -18,7 +18,7 @@
</tr></table>
<hr>
<div class="spirit-nav"><a accesskey="n" href="spirit/preface.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
-<div class="article" title="Spirit 2.1">
+<div class="article" lang="en">
<div class="titlepage">
<div>
<div><h2 class="title">
@@ -33,13 +33,12 @@
</div></div>
<div><p class="copyright">Copyright © 2001-2009 Joel
de Guzman, Hartmut Kaiser</p></div>
-<div><div class="legalnotice" title="Legal Notice">
-<a name="id573782"></a><p>
+<div><div class="legalnotice"><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>
-</div></div>
+ </p></div></div>
</div>
+<div></div>
<hr>
</div>
<div class="toc">
@@ -66,25 +65,6 @@
<dt><span class="section"><a href="spirit/abstracts/attributes/nonterminal_attributes.html">
Attributes of Rules and Grammars</a></span></dt>
</dl></dd>
-<dt><span class="section"> In Depth</span></dt>
-<dd><dl><dt><span class="section"><a href="spirit/abstracts/indepth/parsers_indepth.html"> Parsers
- in Depth</a></span></dt></dl></dd>
-<dt><span class="section"><a href="spirit/abstracts/customize.html"> Customization of Spirit's
- Attribute Handling</a></span></dt>
-<dd><dl>
-<dt><span class="section"><a href="spirit/abstracts/customize/is_container.html"> Determine
- if a Type Should be Treated as a Container (Qi and Karma)</a></span></dt>
-<dt><span class="section"><a href="spirit/abstracts/customize/transform.html"> Transform an
- Attribute to a Different Type (Qi and Karma)</a></span></dt>
-<dt><span class="section"><a href="spirit/abstracts/customize/assign_to.html"> Store a Parsed
- Attribute Value (Qi)</a></span></dt>
-<dt><span class="section"><a href="spirit/abstracts/customize/store_value.html"> Store Parsed
- Attribute Values into a Container (Qi)</a></span></dt>
-<dt><span class="section"><a href="spirit/abstracts/customize/clear_value.html"> Re-Initialize
- an Attribute Value before Parsing (Qi)</a></span></dt>
-<dt><span class="section"><a href="spirit/abstracts/customize/extract_from.html"> Extract an
- Attribute Value to Generate Output (Karma)</a></span></dt>
-</dl></dd>
</dl></dd>
<dt><span class="section"> Qi - Writing Parsers</span></dt>
<dd><dl>
@@ -231,6 +211,28 @@
<dt><span class="section"> TokenDef Class</span></dt>
</dl></dd>
</dl></dd>
+<dt><span class="section">Advanced</span></dt>
+<dd><dl>
+<dt><span class="section"> In Depth</span></dt>
+<dd><dl><dt><span class="section"><a href="spirit/advanced/indepth/parsers_indepth.html"> Parsers in
+ Depth</a></span></dt></dl></dd>
+<dt><span class="section"><a href="spirit/advanced/customize.html"> Customization of Spirit's
+ Attribute Handling</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="spirit/advanced/customize/is_container.html"> Determine
+ if a Type Should be Treated as a Container (Qi and Karma)</a></span></dt>
+<dt><span class="section"><a href="spirit/advanced/customize/transform.html"> Transform an
+ Attribute to a Different Type (Qi and Karma)</a></span></dt>
+<dt><span class="section"><a href="spirit/advanced/customize/assign_to.html"> Store a Parsed
+ Attribute Value (Qi)</a></span></dt>
+<dt><span class="section"><a href="spirit/advanced/customize/store_value.html"> Store Parsed
+ Attribute Values into a Container (Qi)</a></span></dt>
+<dt><span class="section"><a href="spirit/advanced/customize/clear_value.html"> Re-Initialize
+ an Attribute Value before Parsing (Qi)</a></span></dt>
+<dt><span class="section"><a href="spirit/advanced/customize/extract_from.html"> Extract an
+ Attribute Value to Generate Output (Karma)</a></span></dt>
+</dl></dd>
+</dl></dd>
<dt><span class="section"> Supporting libraries</span></dt>
<dd><dl><dt><span class="section"> The multi pass iterator</span></dt></dl></dd>
<dt><span class="section"> Spirit FAQ</span></dt>
@@ -252,7 +254,7 @@
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: October 11, 2009 at 12:34:42 GMT</small></p></td>
+<td align="left"><p><small>Last revised: October 13, 2009 at 03:00:39 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
Modified: trunk/libs/spirit/doc/html/spirit/abstracts.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/abstracts.html (original)
+++ trunk/libs/spirit/doc/html/spirit/abstracts.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Abstracts</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../index.html" title="Spirit 2.1">
<link rel="up" href="../index.html" title="Spirit 2.1">
-<link rel="prev" href="structure/include.html" title="Include">
+<link rel="previous" href="structure/include.html" title="Include">
<link rel="next" href="abstracts/syntax_diagram.html" title="Syntax Diagram">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,10 +22,13 @@
<div class="spirit-nav">
<a accesskey="p" href="structure/include.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="abstracts/syntax_diagram.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Abstracts">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.abstracts"></a><a class="link" href="abstracts.html" title="Abstracts">Abstracts</a>
-</h2></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h2 class="title" style="clear: both">
+<a name="spirit.abstracts"></a>Abstracts
+</h2></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section">Syntax Diagram</span></dt>
<dt><span class="section"><a href="abstracts/parsing_expression_grammar.html">Parsing
@@ -41,25 +44,6 @@
<dt><span class="section"><a href="abstracts/attributes/nonterminal_attributes.html">
Attributes of Rules and Grammars</a></span></dt>
</dl></dd>
-<dt><span class="section"> In Depth</span></dt>
-<dd><dl><dt><span class="section"><a href="abstracts/indepth/parsers_indepth.html"> Parsers
- in Depth</a></span></dt></dl></dd>
-<dt><span class="section"><a href="abstracts/customize.html"> Customization of Spirit's
- Attribute Handling</a></span></dt>
-<dd><dl>
-<dt><span class="section"><a href="abstracts/customize/is_container.html"> Determine
- if a Type Should be Treated as a Container (Qi and Karma)</a></span></dt>
-<dt><span class="section"><a href="abstracts/customize/transform.html"> Transform an
- Attribute to a Different Type (Qi and Karma)</a></span></dt>
-<dt><span class="section"><a href="abstracts/customize/assign_to.html"> Store a Parsed
- Attribute Value (Qi)</a></span></dt>
-<dt><span class="section"><a href="abstracts/customize/store_value.html"> Store Parsed
- Attribute Values into a Container (Qi)</a></span></dt>
-<dt><span class="section"><a href="abstracts/customize/clear_value.html"> Re-Initialize
- an Attribute Value before Parsing (Qi)</a></span></dt>
-<dt><span class="section"><a href="abstracts/customize/extract_from.html"> Extract an
- Attribute Value to Generate Output (Karma)</a></span></dt>
-</dl></dd>
</dl></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/abstracts/attributes.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/abstracts/attributes.html (original)
+++ trunk/libs/spirit/doc/html/spirit/abstracts/attributes.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Attributes</title>
+<title> Attributes</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../index.html" title="Spirit 2.1">
<link rel="up" href="../abstracts.html" title="Abstracts">
-<link rel="prev" href="parsing_expression_grammar.html" title="Parsing Expression Grammar">
-<link rel="next" href="attributes/primitive_attributes.html" title="Attributes of Primitive Components">
+<link rel="previous" href="parsing_expression_grammar.html" title="Parsing
+ Expression Grammar">
+<link rel="next" href="attributes/primitive_attributes.html" title="
+ Attributes of Primitive Components">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,10 +24,13 @@
<div class="spirit-nav">
<a accesskey="p" href="parsing_expression_grammar.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="attributes/primitive_attributes.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Attributes">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.abstracts.attributes"></a><a class="link" href="attributes.html" title="Attributes"> Attributes</a>
-</h3></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h3 class="title">
+<a name="spirit.abstracts.attributes"></a> Attributes
+</h3></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section"><a href="attributes/primitive_attributes.html">
Attributes of Primitive Components</a></span></dt>
Modified: trunk/libs/spirit/doc/html/spirit/abstracts/attributes/compound_attributes.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/abstracts/attributes/compound_attributes.html (original)
+++ trunk/libs/spirit/doc/html/spirit/abstracts/attributes/compound_attributes.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Attributes of Compound Components</title>
+<title> Attributes
+ of Compound Components</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../attributes.html" title="Attributes">
-<link rel="prev" href="primitive_attributes.html" title="Attributes of Primitive Components">
-<link rel="next" href="more_sompound_attributes.html" title="More About Attributes of Compound Components">
+<link rel="up" href="../attributes.html" title=" Attributes">
+<link rel="previous" href="primitive_attributes.html" title="
+ Attributes of Primitive Components">
+<link rel="next" href="more_sompound_attributes.html" title="
+ More About Attributes of Compound Components">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +25,15 @@
<div class="spirit-nav">
<a accesskey="p" href="primitive_attributes.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../attributes.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="more_sompound_attributes.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Attributes of Compound Components">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.abstracts.attributes.compound_attributes"></a><a class="link" href="compound_attributes.html" title="Attributes of Compound Components"> Attributes
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.abstracts.attributes.compound_attributes"></a><a href="compound_attributes.html" title=" Attributes
+ of Compound Components"> Attributes
of Compound Components</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<p>
<span class="emphasis"><em>Spirit.Qi</em></span> and <span class="emphasis"><em>Spirit.Karma</em></span> implement
well defined attribute type propagation rules for all compound generators,
@@ -39,51 +46,39 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Library
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Sequence attribute propagation rule
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
+<td><p>
Qi
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</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">B</span> <span class="special">--></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">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></code>
- </p>
- </td>
+ <span class="special">>></span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
Karma
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</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">B</span> <span class="special">--></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">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></code>
- </p>
- </td>
+ <span class="special"><<</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
@@ -94,36 +89,36 @@
<p>
</p>
<p>
- Given <code class="computeroutput"><span class="identifier">a</span></code> and <code class="computeroutput"><span class="identifier">b</span></code> are parsers (generators), and
- <code class="computeroutput"><span class="identifier">A</span></code> is the attribute
- type of <code class="computeroutput"><span class="identifier">a</span></code>, and <code class="computeroutput"><span class="identifier">B</span></code> is the attribute type of <code class="computeroutput"><span class="identifier">b</span></code>, then the attribute type of <code class="computeroutput"><span class="identifier">a</span> <span class="special">>></span>
- <span class="identifier">b</span></code> (<code class="computeroutput"><span class="identifier">a</span>
- <span class="special"><<</span> <span class="identifier">b</span></code>)
- will be <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></code>.
+ Given <tt class="computeroutput"><span class="identifier">a</span></tt> and <tt class="computeroutput"><span class="identifier">b</span></tt> are parsers (generators), and
+ <tt class="computeroutput"><span class="identifier">A</span></tt> is the attribute
+ type of <tt class="computeroutput"><span class="identifier">a</span></tt>, and <tt class="computeroutput"><span class="identifier">B</span></tt> is the attribute type of <tt class="computeroutput"><span class="identifier">b</span></tt>, then the attribute type of <tt class="computeroutput"><span class="identifier">a</span> <span class="special">>></span>
+ <span class="identifier">b</span></tt> (<tt class="computeroutput"><span class="identifier">a</span>
+ <span class="special"><<</span> <span class="identifier">b</span></tt>)
+ will be <tt class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></tt>.
</p>
<p>
</p>
</blockquote></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- The notation <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></code>
+<tr><td colspan="2" align="left" valign="top"><p>
+ The notation <tt class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></tt>
is used as a placeholder expression for any fusion sequence holding the
- types A and B, such as <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></code> or <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></code> (for more information see Boost.Fusion).
+ types A and B, such as <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></tt> or <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></tt> (for more information see Boost.Fusion).
</p></td></tr>
</table></div>
<p>
As you can see, in order for a type to be compatible with the attribute
type of a compound expression it has to
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
either be convertible to the attribute type,
</li>
-<li class="listitem">
+<li>
or it has to expose certain functionalities, i.e. it needs to conform
to a concept compatible with the component.
</li>
@@ -131,15 +126,17 @@
<p>
Each compound component implements its own set of attribute propagation
rules. For a full list of how the different compound generators consume
- attributes see the sections <a class="link" href="../../qi/quick_reference/compound_attribute_rules.html" title="Compound Attribute Rules">Parser
- Compound Attribute Rules</a> and <a class="link" href="../../karma/quick_reference/compound_attribute_rules.html" title="Compound Attribute Rules">Generator
+ attributes see the sections <a href="../../qi/quick_reference/compound_attribute_rules.html" title="Compound
+ Attribute Rules">Parser
+ Compound Attribute Rules</a> and <a href="../../karma/quick_reference/compound_attribute_rules.html" title="Compound
+ Attribute Rules">Generator
Compound Attribute Rules</a>.
</p>
-<a name="spirit.abstracts.attributes.compound_attributes.the_attribute_of_sequence_parsers_and_generators"></a><h6>
-<a name="id585605"></a>
- <a class="link" href="compound_attributes.html#spirit.abstracts.attributes.compound_attributes.the_attribute_of_sequence_parsers_and_generators">The
+<a name="spirit.abstracts.attributes.compound_attributes.the_attribute_of_sequence_parsers_and_generators"></a><h5>
+<a name="id417507"></a>
+ <a href="compound_attributes.html#spirit.abstracts.attributes.compound_attributes.the_attribute_of_sequence_parsers_and_generators">The
Attribute of Sequence Parsers and Generators</a>
- </h6>
+ </h5>
<p>
Sequences require an attribute type to expose the concept of a fusion sequence,
where all elements of that fusion sequence have to be compatible with the
@@ -151,54 +148,42 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Library
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Sequence expression
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
+<td><p>
Qi
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">double_</span> <span class="special">>></span>
- <span class="identifier">double_</span></code>
- </p>
- </td>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">double_</span> <span class="special">>></span>
+ <span class="identifier">double_</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
Karma
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">double_</span> <span class="special"><<</span>
- <span class="identifier">double_</span></code>
- </p>
- </td>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">double_</span> <span class="special"><<</span>
+ <span class="identifier">double_</span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
<p>
is compatible any fusion sequence holding two types, where both types have
- to be compatible to <code class="computeroutput"><span class="keyword">double</span></code>.
+ to be compatible to <tt class="computeroutput"><span class="keyword">double</span></tt>.
The first element of the fusion sequence has to be compatible with the
- attribute of the first <code class="computeroutput"><span class="identifier">double_</span></code>,
+ attribute of the first <tt class="computeroutput"><span class="identifier">double_</span></tt>,
and the second element of the fusion sequence has to be compatible with
- the attribute of the second <code class="computeroutput"><span class="identifier">double_</span></code>.
- If we assume to have an instance of a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">></span></code>, we can directly use the expressions
+ the attribute of the second <tt class="computeroutput"><span class="identifier">double_</span></tt>.
+ If we assume to have an instance of a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">></span></tt>, we can directly use the expressions
above to do both, parse input to fill the attribute:
</p>
<pre class="programlisting"><span class="comment">// the following parses "1.0 2.0" into a pair of double
@@ -221,23 +206,23 @@
</span> <span class="identifier">p</span><span class="special">);</span> <span class="comment">// data to use as the attribute
</span></pre>
<p>
- (where the <code class="computeroutput"><span class="identifier">ascii</span><span class="special">::</span><span class="identifier">space</span></code> generator is used as the delimiter,
+ (where the <tt class="computeroutput"><span class="identifier">ascii</span><span class="special">::</span><span class="identifier">space</span></tt> generator is used as the delimiter,
allowing to automatically skip/insert delimiting spaces in between all
primitives).
</p>
-<div class="tip" title="Tip"><table border="0" summary="Tip">
+<div class="tip"><table border="0" summary="Tip">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../images/tip.png"></td>
<th align="left">Tip</th>
</tr>
-<tr><td align="left" valign="top">
+<tr><td colspan="2" align="left" valign="top">
<p>
- <span class="bold"><strong>For sequences only:</strong></span> <span class="emphasis"><em>Spirit.Qi</em></span>
+ <span class="bold"><b>For sequences only:</b></span> <span class="emphasis"><em>Spirit.Qi</em></span>
and <span class="emphasis"><em>Spirit.Karma</em></span> expose a set of API functions usable
- mainly with sequences. Very much like the functions of the <code class="computeroutput"><span class="identifier">scanf</span></code> and <code class="computeroutput"><span class="identifier">printf</span></code>
+ mainly with sequences. Very much like the functions of the <tt class="computeroutput"><span class="identifier">scanf</span></tt> and <tt class="computeroutput"><span class="identifier">printf</span></tt>
families these functions allow to pass the attributes for each of the
elements of the sequence separately. Using the corresponding overload
- of <span class="emphasis"><em>Qi's</em></span> parse or <span class="emphasis"><em>Karma's</em></span> <code class="computeroutput"><span class="identifier">generate</span><span class="special">()</span></code>
+ of <span class="emphasis"><em>Qi's</em></span> parse or <span class="emphasis"><em>Karma's</em></span> <tt class="computeroutput"><span class="identifier">generate</span><span class="special">()</span></tt>
the expression above could be rewritten as:
</p>
<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">d1</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">,</span> <span class="identifier">d2</span> <span class="special">=</span> <span class="number">0.0</span><span class="special">;</span>
@@ -245,16 +230,16 @@
<span class="identifier">karma</span><span class="special">::</span><span class="identifier">generate</span><span class="special">(</span><span class="identifier">out</span><span class="special">,</span> <span class="identifier">double_</span> <span class="special"><<</span> <span class="identifier">double_</span><span class="special">,</span> <span class="identifier">space</span><span class="special">,</span> <span class="identifier">d1</span><span class="special">,</span> <span class="identifier">d2</span><span class="special">);</span>
</pre>
<p>
- where the first attribute is used for the first <code class="computeroutput"><span class="identifier">double_</span></code>,
- and the second attribute is used for the second <code class="computeroutput"><span class="identifier">double_</span></code>.
+ where the first attribute is used for the first <tt class="computeroutput"><span class="identifier">double_</span></tt>,
+ and the second attribute is used for the second <tt class="computeroutput"><span class="identifier">double_</span></tt>.
</p>
</td></tr>
</table></div>
-<a name="spirit.abstracts.attributes.compound_attributes.the_attribute_of_alternative_parsers_and_generators"></a><h6>
-<a name="id586388"></a>
- <a class="link" href="compound_attributes.html#spirit.abstracts.attributes.compound_attributes.the_attribute_of_alternative_parsers_and_generators">The
+<a name="spirit.abstracts.attributes.compound_attributes.the_attribute_of_alternative_parsers_and_generators"></a><h5>
+<a name="id418548"></a>
+ <a href="compound_attributes.html#spirit.abstracts.attributes.compound_attributes.the_attribute_of_alternative_parsers_and_generators">The
Attribute of Alternative Parsers and Generators</a>
- </h6>
+ </h5>
<p>
Alternative parsers and generators are all about - well - alternatives.
In order to store possibly different result (attribute) types from the
Modified: trunk/libs/spirit/doc/html/spirit/abstracts/attributes/more_sompound_attributes.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/abstracts/attributes/more_sompound_attributes.html (original)
+++ trunk/libs/spirit/doc/html/spirit/abstracts/attributes/more_sompound_attributes.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>More About Attributes of Compound Components</title>
+<title>
+ More About Attributes of Compound Components</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../attributes.html" title="Attributes">
-<link rel="prev" href="compound_attributes.html" title="Attributes of Compound Components">
-<link rel="next" href="nonterminal_attributes.html" title="Attributes of Rules and Grammars">
+<link rel="up" href="../attributes.html" title=" Attributes">
+<link rel="previous" href="compound_attributes.html" title=" Attributes
+ of Compound Components">
+<link rel="next" href="nonterminal_attributes.html" title="
+ Attributes of Rules and Grammars">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,17 +25,21 @@
<div class="spirit-nav">
<a accesskey="p" href="compound_attributes.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../attributes.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="nonterminal_attributes.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="More About Attributes of Compound Components">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.abstracts.attributes.more_sompound_attributes"></a><a class="link" href="more_sompound_attributes.html" title="More About Attributes of Compound Components">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.abstracts.attributes.more_sompound_attributes"></a><a href="more_sompound_attributes.html" title="
+ More About Attributes of Compound Components">
More About Attributes of Compound Components</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<p>
While parsing input or generating output it is often desirable to combine
some constant elements with variable parts. For instance, let us look at
the example of parsing or formatting a complex number, which is written
- as <code class="computeroutput"><span class="special">(</span><span class="identifier">real</span><span class="special">,</span> <span class="identifier">imag</span><span class="special">)</span></code>, where <code class="computeroutput"><span class="identifier">real</span></code>
- and <code class="computeroutput"><span class="identifier">imag</span> </code> are the variables
+ as <tt class="computeroutput"><span class="special">(</span><span class="identifier">real</span><span class="special">,</span> <span class="identifier">imag</span><span class="special">)</span></tt>, where <tt class="computeroutput"><span class="identifier">real</span></tt>
+ and <tt class="computeroutput"><span class="identifier">imag</span> </tt> are the variables
representing the real and imaginary parts of our complex number. This can
be achieved by writing:
</p>
@@ -42,56 +49,44 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Library
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Sequence expression
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
+<td><p>
Qi
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="char">'('</span> <span class="special"><<</span>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="char">'('</span> <span class="special"><<</span>
<span class="identifier">double_</span> <span class="special">>></span>
<span class="string">", "</span> <span class="special"><<</span>
<span class="identifier">double_</span> <span class="special">>></span>
- <span class="char">')'</span></code>
- </p>
- </td>
+ <span class="char">')'</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
Karma
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="char">'('</span> <span class="special"><<</span>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="char">'('</span> <span class="special"><<</span>
<span class="identifier">double_</span> <span class="special"><<</span>
<span class="string">", "</span> <span class="special"><<</span>
<span class="identifier">double_</span> <span class="special"><<</span>
- <span class="char">')'</span></code>
- </p>
- </td>
+ <span class="char">')'</span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
<p>
- Fortunately, literals (such as <code class="computeroutput"><span class="char">'('</span></code>
- and <code class="computeroutput"><span class="string">", "</span></code>) do <span class="emphasis"><em>not</em></span>
- expose any attribute (well actually, they do expose the special type <code class="computeroutput"><span class="identifier">unused_type</span></code>, but in this context <code class="computeroutput"><span class="identifier">unused_type</span></code> is interpreted as if the
+ Fortunately, literals (such as <tt class="computeroutput"><span class="char">'('</span></tt>
+ and <tt class="computeroutput"><span class="string">", "</span></tt>) do <span class="emphasis"><em>not</em></span>
+ expose any attribute (well actually, they do expose the special type <tt class="computeroutput"><span class="identifier">unused_type</span></tt>, but in this context <tt class="computeroutput"><span class="identifier">unused_type</span></tt> is interpreted as if the
component does not expose any attribute at all). It is very important to
understand that the literals don't consume any of the elements of a fusion
sequence passed to this component sequence. As said, they just don't expose
@@ -117,25 +112,25 @@
</span></pre>
<p>
where the first element of the pair passed in as the data to generate is
- still associated with the first <code class="computeroutput"><span class="identifier">double_</span></code>,
- and the second element is associated with the second <code class="computeroutput"><span class="identifier">double_</span></code>
+ still associated with the first <tt class="computeroutput"><span class="identifier">double_</span></tt>,
+ and the second element is associated with the second <tt class="computeroutput"><span class="identifier">double_</span></tt>
generator.
</p>
<p>
This behavior should be familiar as it conforms to the way other input
- and output formatting libraries such as <code class="computeroutput"><span class="identifier">scanf</span></code>,
- <code class="computeroutput"><span class="identifier">printf</span></code> or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">format</span></code> are handling their variable parts.
+ and output formatting libraries such as <tt class="computeroutput"><span class="identifier">scanf</span></tt>,
+ <tt class="computeroutput"><span class="identifier">printf</span></tt> or <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">format</span></tt> are handling their variable parts.
In this context you can think about <span class="emphasis"><em>Spirit.Qi</em></span>'s and
<span class="emphasis"><em>Spirit.Karma</em></span>'s primitive components (such as the
- <code class="computeroutput"><span class="identifier">double_</span></code> above) as of being
+ <tt class="computeroutput"><span class="identifier">double_</span></tt> above) as of being
typesafe placeholders for the attribute values.
</p>
-<div class="tip" title="Tip"><table border="0" summary="Tip">
+<div class="tip"><table border="0" summary="Tip">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../images/tip.png"></td>
<th align="left">Tip</th>
</tr>
-<tr><td align="left" valign="top">
+<tr><td colspan="2" align="left" valign="top">
<p>
Similarly to the tip provided above, this example could be rewritten
using <span class="emphasis"><em>Spirit's</em></span> multi-attribute API function:
@@ -146,16 +141,17 @@
</pre>
<p>
which provides a clear and comfortable syntax, more similar to the placeholder
- based syntax as exposed by <code class="computeroutput"><span class="identifier">printf</span></code>
- or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">format</span></code>.
+ based syntax as exposed by <tt class="computeroutput"><span class="identifier">printf</span></tt>
+ or <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">format</span></tt>.
</p>
</td></tr>
</table></div>
<p>
Let's take a look at this from a more formal perspective. The sequence
attribute propagation rules define a special behavior if generators exposing
- <code class="computeroutput"><span class="identifier">unused_type</span></code> as their attribute
- are involved (see <a class="link" href="../../karma/quick_reference/compound_attribute_rules.html" title="Compound Attribute Rules">Generator
+ <tt class="computeroutput"><span class="identifier">unused_type</span></tt> as their attribute
+ are involved (see <a href="../../karma/quick_reference/compound_attribute_rules.html" title="Compound
+ Attribute Rules">Generator
Compound Attribute Rules</a>):
</p>
<div class="informaltable"><table class="table">
@@ -164,51 +160,39 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Library
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Sequence attribute propagation rule
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
+<td><p>
Qi
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</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">Unused</span> <span class="special">--></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">A</span></code>
- </p>
- </td>
+ <span class="special">>></span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">A</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
Karma
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</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">Unused</span> <span class="special">--></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">A</span></code>
- </p>
- </td>
+ <span class="special"><<</span> <span class="identifier">b</span><span class="special">):</span> <span class="identifier">A</span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
@@ -219,16 +203,16 @@
<p>
</p>
<p>
- Given <code class="computeroutput"><span class="identifier">a</span></code> and <code class="computeroutput"><span class="identifier">b</span></code> are parsers (generators), and
- <code class="computeroutput"><span class="identifier">A</span></code> is the attribute
- type of <code class="computeroutput"><span class="identifier">a</span></code>, and <code class="computeroutput"><span class="identifier">unused_type</span></code> is the attribute type
- of <code class="computeroutput"><span class="identifier">b</span></code>, then the attribute
- type of <code class="computeroutput"><span class="identifier">a</span> <span class="special">>></span>
- <span class="identifier">b</span></code> (<code class="computeroutput"><span class="identifier">a</span>
- <span class="special"><<</span> <span class="identifier">b</span></code>)
- will be <code class="computeroutput"><span class="identifier">A</span></code> as well.
+ Given <tt class="computeroutput"><span class="identifier">a</span></tt> and <tt class="computeroutput"><span class="identifier">b</span></tt> are parsers (generators), and
+ <tt class="computeroutput"><span class="identifier">A</span></tt> is the attribute
+ type of <tt class="computeroutput"><span class="identifier">a</span></tt>, and <tt class="computeroutput"><span class="identifier">unused_type</span></tt> is the attribute type
+ of <tt class="computeroutput"><span class="identifier">b</span></tt>, then the attribute
+ type of <tt class="computeroutput"><span class="identifier">a</span> <span class="special">>></span>
+ <span class="identifier">b</span></tt> (<tt class="computeroutput"><span class="identifier">a</span>
+ <span class="special"><<</span> <span class="identifier">b</span></tt>)
+ will be <tt class="computeroutput"><span class="identifier">A</span></tt> as well.
This rule applies regardless of the position the element exposing the
- <code class="computeroutput"><span class="identifier">unused_type</span></code> is at.
+ <tt class="computeroutput"><span class="identifier">unused_type</span></tt> is at.
</p>
<p>
</p>
@@ -236,7 +220,7 @@
<p>
This rule is the key to the understanding of the attribute handling in
sequences as soon as literals are involved. It is as if elements with
- <code class="computeroutput"><span class="identifier">unused_type</span></code> attributes
+ <tt class="computeroutput"><span class="identifier">unused_type</span></tt> attributes
'disappeared' during attribute propagation. Notably, this is not only true
for sequences but for any compound components. For instance, for alternative
componets the corresponding rule is:
Modified: trunk/libs/spirit/doc/html/spirit/abstracts/attributes/nonterminal_attributes.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/abstracts/attributes/nonterminal_attributes.html (original)
+++ trunk/libs/spirit/doc/html/spirit/abstracts/attributes/nonterminal_attributes.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Attributes of Rules and Grammars</title>
+<title>
+ Attributes of Rules and Grammars</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../attributes.html" title="Attributes">
-<link rel="prev" href="more_sompound_attributes.html" title="More About Attributes of Compound Components">
-<link rel="next" href="../indepth.html" title="In Depth">
+<link rel="up" href="../attributes.html" title=" Attributes">
+<link rel="previous" href="more_sompound_attributes.html" title="
+ More About Attributes of Compound Components">
+<link rel="next" href="../../qi.html" title=" Qi - Writing Parsers">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -20,13 +22,17 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="more_sompound_attributes.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../attributes.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../indepth.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="more_sompound_attributes.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../attributes.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../qi.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Attributes of Rules and Grammars">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.abstracts.attributes.nonterminal_attributes"></a><a class="link" href="nonterminal_attributes.html" title="Attributes of Rules and Grammars">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.abstracts.attributes.nonterminal_attributes"></a><a href="nonterminal_attributes.html" title="
+ Attributes of Rules and Grammars">
Attributes of Rules and Grammars</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<p>
Nonterminals are well known from parsers where they are used as the main
means of constructing more complex parsers out of simpler ones. The nonterminals
@@ -40,14 +46,14 @@
</p>
<p>
Both, the types of the inherited and the synthesized attributes have to
- be explicitely specified while defining the particular <code class="computeroutput"><span class="identifier">grammar</span></code>
- or the <code class="computeroutput"><span class="identifier">rule</span></code> (the Spirit
+ be explicitely specified while defining the particular <tt class="computeroutput"><span class="identifier">grammar</span></tt>
+ or the <tt class="computeroutput"><span class="identifier">rule</span></tt> (the Spirit
<a href="../../../../../repository/doc/html/index.html" target="_top">Repository</a> additionally
- has <code class="computeroutput"><span class="identifier">subrules</span></code> which conform
+ has <tt class="computeroutput"><span class="identifier">subrules</span></tt> which conform
to a similar interface). As an example, the following code declares a
- <span class="emphasis"><em>Spirit.Qi</em></span> <code class="computeroutput"><span class="identifier">rule</span></code>
- exposing an <code class="computeroutput"><span class="keyword">int</span></code> as its synthesized
- attribute, while expecting a single <code class="computeroutput"><span class="keyword">double</span></code>
+ <span class="emphasis"><em>Spirit.Qi</em></span> <tt class="computeroutput"><span class="identifier">rule</span></tt>
+ exposing an <tt class="computeroutput"><span class="keyword">int</span></tt> as its synthesized
+ attribute, while expecting a single <tt class="computeroutput"><span class="keyword">double</span></tt>
as its inherited attribute (see the section about the <span class="emphasis"><em>Spirit.Qi</em></span>
Rule for more information):
</p>
@@ -68,8 +74,8 @@
creates its output from. Even if the consumed attribute is not 'returned'
from the generator we chose to use the same function style declaration
syntax as used in <span class="emphasis"><em>Spirit.Qi</em></span>. The example below declares
- a <span class="emphasis"><em>Spirit.Karma</em></span> <code class="computeroutput"><span class="identifier">rule</span></code>
- consuming a <code class="computeroutput"><span class="keyword">double</span></code> while not
+ a <span class="emphasis"><em>Spirit.Karma</em></span> <tt class="computeroutput"><span class="identifier">rule</span></tt>
+ consuming a <tt class="computeroutput"><span class="keyword">double</span></tt> while not
expecting any additional inherited attributes.
</p>
<pre class="programlisting"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">rule</span><span class="special"><</span><span class="identifier">OutputIterator</span><span class="special">,</span> <span class="keyword">double</span><span class="special">()></span> <span class="identifier">r</span><span class="special">;</span>
@@ -92,7 +98,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="more_sompound_attributes.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../attributes.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../indepth.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="more_sompound_attributes.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../attributes.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../qi.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
</body>
</html>
Modified: trunk/libs/spirit/doc/html/spirit/abstracts/attributes/primitive_attributes.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/abstracts/attributes/primitive_attributes.html (original)
+++ trunk/libs/spirit/doc/html/spirit/abstracts/attributes/primitive_attributes.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Attributes of Primitive Components</title>
+<title>
+ Attributes of Primitive Components</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../attributes.html" title="Attributes">
-<link rel="prev" href="../attributes.html" title="Attributes">
-<link rel="next" href="compound_attributes.html" title="Attributes of Compound Components">
+<link rel="up" href="../attributes.html" title=" Attributes">
+<link rel="previous" href="../attributes.html" title=" Attributes">
+<link rel="next" href="compound_attributes.html" title=" Attributes
+ of Compound Components">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,26 +24,30 @@
<div class="spirit-nav">
<a accesskey="p" href="../attributes.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../attributes.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="compound_attributes.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Attributes of Primitive Components">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.abstracts.attributes.primitive_attributes"></a><a class="link" href="primitive_attributes.html" title="Attributes of Primitive Components">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.abstracts.attributes.primitive_attributes"></a><a href="primitive_attributes.html" title="
+ Attributes of Primitive Components">
Attributes of Primitive Components</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<p>
Parsers and generators in Spirit
are fully attributed. <span class="emphasis"><em>Spirit.Qi</em></span> parsers always <span class="emphasis"><em>expose</em></span>
an attribute specific to their type. This is called <span class="emphasis"><em>synthesized
attribute</em></span> as it is returned from a successful match representing
- the matched input sequence. For instance, numeric parsers, such as <code class="computeroutput"><span class="identifier">int_</span></code> or <code class="computeroutput"><span class="identifier">double_</span></code>,
- return the <code class="computeroutput"><span class="keyword">int</span></code> or <code class="computeroutput"><span class="keyword">double</span></code> value converted from the matched
+ the matched input sequence. For instance, numeric parsers, such as <tt class="computeroutput"><span class="identifier">int_</span></tt> or <tt class="computeroutput"><span class="identifier">double_</span></tt>,
+ return the <tt class="computeroutput"><span class="keyword">int</span></tt> or <tt class="computeroutput"><span class="keyword">double</span></tt> value converted from the matched
input sequence. Other primitive parser components have other intuitive
- attribute types, such as for instance <code class="computeroutput"><span class="identifier">int_</span></code>
- which has <code class="computeroutput"><span class="keyword">int</span></code>, or <code class="computeroutput"><span class="identifier">ascii</span><span class="special">::</span><span class="identifier">char_</span></code> which has <code class="computeroutput"><span class="keyword">char</span></code>.
+ attribute types, such as for instance <tt class="computeroutput"><span class="identifier">int_</span></tt>
+ which has <tt class="computeroutput"><span class="keyword">int</span></tt>, or <tt class="computeroutput"><span class="identifier">ascii</span><span class="special">::</span><span class="identifier">char_</span></tt> which has <tt class="computeroutput"><span class="keyword">char</span></tt>.
For primitive parsers apply the normal C++ convertibility rules: you can
use any C++ type to receive the parsed value as long as the attribute type
of the parser is convertible to the type provided. The following example
- shows how a synthesized parser attribute (the <code class="computeroutput"><span class="keyword">int</span></code>
- value) is extracted by calling the API function <code class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">parse</span></code>:
+ shows how a synthesized parser attribute (the <tt class="computeroutput"><span class="keyword">int</span></tt>
+ value) is extracted by calling the API function <tt class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">parse</span></tt>:
</p>
<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">value</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">str</span><span class="special">(</span><span class="string">"123"</span><span class="special">);</span>
@@ -57,8 +63,8 @@
primitive generators the normal C++ convertibility rules apply. Any data
type convertible to the attribute type of a primitive generator can be
used to provide the data to generate. We present a similar example as above,
- this time the consumed generator attribute (the <code class="computeroutput"><span class="keyword">int</span></code>
- value) is passed to the API function <code class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">generate</span></code>:
+ this time the consumed generator attribute (the <tt class="computeroutput"><span class="keyword">int</span></tt>
+ value) is passed to the API function <tt class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">generate</span></tt>:
</p>
<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">value</span> <span class="special">=</span> <span class="number">123</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">str</span><span class="special">;</span>
@@ -68,11 +74,12 @@
<p>
Other primitive generator components have other intuitive attribute types,
very similar to the corresponding parser components, such as for instance
- <code class="computeroutput"><span class="identifier">int_</span></code> which has <code class="computeroutput"><span class="keyword">int</span></code>, or <code class="computeroutput"><span class="identifier">ascii</span><span class="special">::</span><span class="identifier">char_</span></code>
- which has <code class="computeroutput"><span class="keyword">char</span></code>. For a full
+ <tt class="computeroutput"><span class="identifier">int_</span></tt> which has <tt class="computeroutput"><span class="keyword">int</span></tt>, or <tt class="computeroutput"><span class="identifier">ascii</span><span class="special">::</span><span class="identifier">char_</span></tt>
+ which has <tt class="computeroutput"><span class="keyword">char</span></tt>. For a full
list of available parser and generator primitives and their attribute types
- please see the sections <a class="link" href="../../qi/quick_reference/qi_parsers.html" title="Qi Parsers">Qi
- Parsers</a> and <a class="link" href="../../karma/quick_reference/primitive_generators.html" title="Karma Generators">Karma
+ please see the sections <a href="../../qi/quick_reference/qi_parsers.html" title=" Qi Parsers">Qi
+ Parsers</a> and <a href="../../karma/quick_reference/primitive_generators.html" title="
+ Karma Generators">Karma
Generators</a>.
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html (original)
+++ trunk/libs/spirit/doc/html/spirit/abstracts/parsing_expression_grammar.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Parsing Expression Grammar</title>
+<title>Parsing
+ Expression Grammar</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../index.html" title="Spirit 2.1">
<link rel="up" href="../abstracts.html" title="Abstracts">
-<link rel="prev" href="syntax_diagram.html" title="Syntax Diagram">
-<link rel="next" href="attributes.html" title="Attributes">
+<link rel="previous" href="syntax_diagram.html" title="Syntax Diagram">
+<link rel="next" href="attributes.html" title=" Attributes">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,16 +23,20 @@
<div class="spirit-nav">
<a accesskey="p" href="syntax_diagram.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="attributes.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Parsing Expression Grammar">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.abstracts.parsing_expression_grammar"></a><a class="link" href="parsing_expression_grammar.html" title="Parsing Expression Grammar">Parsing
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h3 class="title">
+<a name="spirit.abstracts.parsing_expression_grammar"></a><a href="parsing_expression_grammar.html" title="Parsing
+ Expression Grammar">Parsing
Expression Grammar</a>
-</h3></div></div></div>
+</h3></div></div>
+<div></div>
+</div>
<p>
Parsing Expression Grammars (PEG)
- <sup>[<a name="id583827" href="#ftn.id583827" class="footnote">5</a>]</sup>
+ <sup>[<a name="id415550" href="#ftn.id415550">5</a>]</sup>
are a derivative of Extended Backus-Naur Form (EBNF)
- <sup>[<a name="id583839" href="#ftn.id583839" class="footnote">6</a>]</sup>
+ <sup>[<a name="id415567" href="#ftn.id415567">6</a>]</sup>
with a different interpretation, designed to represent a recursive descent
parser. A PEG can be directly represented as a recursive-descent parser.
</p>
@@ -41,24 +46,24 @@
PEGs have an exact interpretation. There is only one valid parse tree (see
Abstract Syntax Tree) for each PEG grammar.
</p>
-<a name="spirit.abstracts.parsing_expression_grammar.sequences"></a><h5>
-<a name="id583859"></a>
- <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.sequences">Sequences</a>
- </h5>
+<a name="spirit.abstracts.parsing_expression_grammar.sequences"></a><h4>
+<a name="id415604"></a>
+ Sequences
+ </h4>
<p>
Sequences are represented by juxtaposition like in EBNF:
</p>
<pre class="programlisting"><span class="identifier">a</span> <span class="identifier">b</span>
</pre>
<p>
- The PEG expression above states that, in order for this to succeed, <code class="computeroutput"><span class="identifier">a</span></code> must follow <code class="computeroutput"><span class="identifier">b</span></code>.
+ The PEG expression above states that, in order for this to succeed, <tt class="computeroutput"><span class="identifier">a</span></tt> must follow <tt class="computeroutput"><span class="identifier">b</span></tt>.
Here's the syntax diagram:
</p>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <span class="inlinemediaobject"><img src="../.././images/sequence.png" alt="sequence"></span>
+ <span class="inlinemediaobject"><img src="./images/sequence.png" alt="sequence"></span>
</p>
<p>
</p>
@@ -69,68 +74,68 @@
<pre class="programlisting"><span class="char">'x'</span> <span class="identifier">digit</span>
</pre>
<p>
- which means the character <code class="computeroutput"><span class="identifier">x</span></code>
+ which means the character <tt class="computeroutput"><span class="identifier">x</span></tt>
must be followed by a digit.
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- In <span class="emphasis"><em>Spirit.Qi</em></span>, we use the <code class="computeroutput"><span class="special">>></span></code>
+<tr><td colspan="2" align="left" valign="top"><p>
+ In <span class="emphasis"><em>Spirit.Qi</em></span>, we use the <tt class="computeroutput"><span class="special">>></span></tt>
for sequences since C++ does not allow juxtaposition, while in <span class="emphasis"><em>Spirit.Karma</em></span>
- we use the <code class="computeroutput"><span class="special"><<</span></code> instead.
+ we use the <tt class="computeroutput"><span class="special"><<</span></tt> instead.
</p></td></tr>
</table></div>
-<a name="spirit.abstracts.parsing_expression_grammar.alternatives"></a><h5>
-<a name="id583991"></a>
- <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.alternatives">Alternatives</a>
- </h5>
+<a name="spirit.abstracts.parsing_expression_grammar.alternatives"></a><h4>
+<a name="id415770"></a>
+ Alternatives
+ </h4>
<p>
Alternatives are represented in PEG using the slash:
</p>
<pre class="programlisting"><span class="identifier">a</span> <span class="special">/</span> <span class="identifier">b</span>
</pre>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
In <span class="emphasis"><em>Spirit.Qi</em></span> and <span class="emphasis"><em>Spirit.Karma</em></span>,
- we use the <code class="computeroutput"><span class="special">|</span></code> for alternatives
+ we use the <tt class="computeroutput"><span class="special">|</span></tt> for alternatives
just as in EBNF.
</p></td></tr>
</table></div>
<p>
Alternatives allow for choices. The expression above reads: try to match
- <code class="computeroutput"><span class="identifier">a</span></code>. If <code class="computeroutput"><span class="identifier">a</span></code>
- succeeds, success, if not try to match <code class="computeroutput"><span class="identifier">b</span></code>.
+ <tt class="computeroutput"><span class="identifier">a</span></tt>. If <tt class="computeroutput"><span class="identifier">a</span></tt>
+ succeeds, success, if not try to match <tt class="computeroutput"><span class="identifier">b</span></tt>.
This is a bit of a deviation from the usual EBNF interpretation where you
- simply match <code class="computeroutput"><span class="identifier">a</span></code> <span class="bold"><strong>or</strong></span> <code class="computeroutput"><span class="identifier">b</span></code>.
+ simply match <tt class="computeroutput"><span class="identifier">a</span></tt> <span class="bold"><b>or</b></span> <tt class="computeroutput"><span class="identifier">b</span></tt>.
Here's the syntax diagram:
</p>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <span class="inlinemediaobject"><img src="../.././images/alternative.png" alt="alternative"></span>
+ <span class="inlinemediaobject"><img src="./images/alternative.png" alt="alternative"></span>
</p>
<p>
</p>
</blockquote></div>
<p>
PEGs allow for ambiguity in the alternatives. In the expression above, both
- <code class="computeroutput"><span class="identifier">a</span></code> or <code class="computeroutput"><span class="identifier">b</span></code>
+ <tt class="computeroutput"><span class="identifier">a</span></tt> or <tt class="computeroutput"><span class="identifier">b</span></tt>
can both match an input string. However, only the first matching alternative
is valid. As noted, there can only be one valid parse tree ($$$ explain more
about this $$$).
</p>
-<a name="spirit.abstracts.parsing_expression_grammar.loops"></a><h5>
-<a name="id584411"></a>
- <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.loops">Loops</a>
- </h5>
+<a name="spirit.abstracts.parsing_expression_grammar.loops"></a><h4>
+<a name="id415962"></a>
+ Loops
+ </h4>
<p>
Again, like EBNF, PEG uses the regular-expression Kleene star and the plus
loops:
@@ -138,12 +143,12 @@
<pre class="programlisting"><span class="identifier">a</span><span class="special">*</span>
<span class="identifier">a</span><span class="special">+</span>
</pre>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
<span class="emphasis"><em>Spirit.Qi</em></span> and <span class="emphasis"><em>Spirit.Karma</em></span> use
the prefix star and plus since there is no postfix star or plus in C++.
</p></td></tr>
@@ -155,7 +160,7 @@
<p>
</p>
<p>
- <span class="inlinemediaobject"><img src="../.././images/kleene.png" alt="kleene"></span>
+ <span class="inlinemediaobject"><img src="./images/kleene.png" alt="kleene"></span>
</p>
<p>
</p>
@@ -164,14 +169,14 @@
<p>
</p>
<p>
- <span class="inlinemediaobject"><img src="../.././images/plus.png" alt="plus"></span>
+ <span class="inlinemediaobject"><img src="./images/plus.png" alt="plus"></span>
</p>
<p>
</p>
</blockquote></div>
<p>
- The first, called the Kleene star, matches zero or more of its subject <code class="computeroutput"><span class="identifier">a</span></code>. The second, plus, matches one ore more
- of its subject <code class="computeroutput"><span class="identifier">a</span></code>.
+ The first, called the Kleene star, matches zero or more of its subject <tt class="computeroutput"><span class="identifier">a</span></tt>. The second, plus, matches one ore more
+ of its subject <tt class="computeroutput"><span class="identifier">a</span></tt>.
</p>
<p>
Unlike EBNF, PEGs have greedy loops. It will match as much as it can until
@@ -190,10 +195,10 @@
a major gotcha. PEG provides a couple of other mechanisms to circumvent this.
We will see more of these other mechanisms shortly.
</p>
-<a name="spirit.abstracts.parsing_expression_grammar.difference"></a><h5>
-<a name="id584559"></a>
- <a class="link" href="parsing_expression_grammar.html#spirit.abstracts.parsing_expression_grammar.difference">Difference</a>
- </h5>
+<a name="spirit.abstracts.parsing_expression_grammar.difference"></a><h4>
+<a name="id416140"></a>
+ Difference
+ </h4>
<p>
In certain cases, you may want to restrict a certain expression. You can
think of a PEG expression as a match for a potentially infinite set of strings.
@@ -202,26 +207,26 @@
<pre class="programlisting"><span class="identifier">a</span> <span class="special">-</span> <span class="identifier">b</span>
</pre>
<p>
- The expression reads: match <code class="computeroutput"><span class="identifier">a</span></code>
- but not <code class="computeroutput"><span class="identifier">b</span></code>.
+ The expression reads: match <tt class="computeroutput"><span class="identifier">a</span></tt>
+ but not <tt class="computeroutput"><span class="identifier">b</span></tt>.
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
There is no difference operator in <span class="emphasis"><em>Spirit.Karma</em></span>, as
the concept does not make sense in the context of output generation.
</p></td></tr>
</table></div>
<div class="footnotes">
<br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id583827" href="#id583827" class="para">5</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id415550" href="#id415550">5</a>] </sup>
Bryan Ford: Parsing Expression Grammars: A Recognition-Based Syntactic
Foundation, http://pdos.csail.mit.edu/~baford/packrat/popl04/
</p></div>
-<div class="footnote"><p><sup>[<a name="ftn.id583839" href="#id583839" class="para">6</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id415567" href="#id415567">6</a>] </sup>
Richard E. Pattis: EBNF: A Notation to Describe Syntax, http://www.cs.cmu.edu/~pattis/misc/ebnf.pdf
</p></div>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html (original)
+++ trunk/libs/spirit/doc/html/spirit/abstracts/syntax_diagram.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,12 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Syntax Diagram</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../index.html" title="Spirit 2.1">
<link rel="up" href="../abstracts.html" title="Abstracts">
-<link rel="prev" href="../abstracts.html" title="Abstracts">
-<link rel="next" href="parsing_expression_grammar.html" title="Parsing Expression Grammar">
+<link rel="previous" href="../abstracts.html" title="Abstracts">
+<link rel="next" href="parsing_expression_grammar.html" title="Parsing
+ Expression Grammar">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,19 +23,22 @@
<div class="spirit-nav">
<a accesskey="p" href="../abstracts.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="parsing_expression_grammar.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Syntax Diagram">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.abstracts.syntax_diagram"></a><a class="link" href="syntax_diagram.html" title="Syntax Diagram">Syntax Diagram</a>
-</h3></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h3 class="title">
+<a name="spirit.abstracts.syntax_diagram"></a>Syntax Diagram
+</h3></div></div>
+<div></div>
+</div>
<p>
In the next section, we will deal with Parsing Expression Grammars (PEG)
- <sup>[<a name="id583384" href="#ftn.id583384" class="footnote">2</a>]</sup>
+ <sup>[<a name="id415010" href="#ftn.id415010">2</a>]</sup>
, a variant of Extended Backus-Naur Form (EBNF)
- <sup>[<a name="id583396" href="#ftn.id583396" class="footnote">3</a>]</sup>
+ <sup>[<a name="id415028" href="#ftn.id415028">3</a>]</sup>
with a different interpretation. It is easier to understand PEG using Syntax
Diagrams. Syntax diagrams represent a grammar graphically. It was used extensibly
by Niklaus Wirth
- <sup>[<a name="id583408" href="#ftn.id583408" class="footnote">4</a>]</sup>
+ <sup>[<a name="id415048" href="#ftn.id415048">4</a>]</sup>
in the "Pascal User Manual". Syntax Diagrams are easily understandable
with programmers due to its similarity to flow charts. The isomorphism of
the diagrams and functions make it ideal for representing Recursive Descent
@@ -47,10 +51,10 @@
the concepts described here are equally applicable to <span class="emphasis"><em>Spirit.Qi</em></span>
parsers as they are for <span class="emphasis"><em>Spirit.Karma</em></span> generators.
</p>
-<a name="spirit.abstracts.syntax_diagram.elements"></a><h5>
-<a name="id583436"></a>
- <a class="link" href="syntax_diagram.html#spirit.abstracts.syntax_diagram.elements">Elements</a>
- </h5>
+<a name="spirit.abstracts.syntax_diagram.elements"></a><h4>
+<a name="id415088"></a>
+ Elements
+ </h4>
<p>
All diagrams have one entry and exit point. Arrows connect all possible paths
through the grammar from the entry point to the exit point.
@@ -59,7 +63,7 @@
<p>
</p>
<p>
- <span class="inlinemediaobject"><img src="../.././images/start_stop.png" alt="start_stop"></span>
+ <span class="inlinemediaobject"><img src="./images/start_stop.png" alt="start_stop"></span>
</p>
<p>
</p>
@@ -72,7 +76,7 @@
<p>
</p>
<p>
- <span class="inlinemediaobject"><img src="../.././images/terminal.png" alt="terminal"></span>
+ <span class="inlinemediaobject"><img src="./images/terminal.png" alt="terminal"></span>
</p>
<p>
</p>
@@ -86,15 +90,15 @@
<p>
</p>
<p>
- <span class="inlinemediaobject"><img src="../.././images/non-terminal.png" alt="non-terminal"></span>
+ <span class="inlinemediaobject"><img src="./images/non-terminal.png" alt="non-terminal"></span>
</p>
<p>
</p>
</blockquote></div>
-<a name="spirit.abstracts.syntax_diagram.constructs"></a><h5>
-<a name="id583535"></a>
- <a class="link" href="syntax_diagram.html#spirit.abstracts.syntax_diagram.constructs">Constructs</a>
- </h5>
+<a name="spirit.abstracts.syntax_diagram.constructs"></a><h4>
+<a name="id415207"></a>
+ Constructs
+ </h4>
<p>
The most basic composition is the Sequence. B follows A:
</p>
@@ -102,7 +106,7 @@
<p>
</p>
<p>
- <span class="inlinemediaobject"><img src="../.././images/sequence.png" alt="sequence"></span>
+ <span class="inlinemediaobject"><img src="./images/sequence.png" alt="sequence"></span>
</p>
<p>
</p>
@@ -117,7 +121,7 @@
<p>
</p>
<p>
- <span class="inlinemediaobject"><img src="../.././images/alternative.png" alt="alternative"></span>
+ <span class="inlinemediaobject"><img src="./images/alternative.png" alt="alternative"></span>
</p>
<p>
</p>
@@ -129,7 +133,7 @@
<p>
</p>
<p>
- <span class="inlinemediaobject"><img src="../.././images/optional.png" alt="optional"></span>
+ <span class="inlinemediaobject"><img src="./images/optional.png" alt="optional"></span>
</p>
<p>
</p>
@@ -141,7 +145,7 @@
<p>
</p>
<p>
- <span class="inlinemediaobject"><img src="../.././images/kleene.png" alt="kleene"></span>
+ <span class="inlinemediaobject"><img src="./images/kleene.png" alt="kleene"></span>
</p>
<p>
</p>
@@ -150,7 +154,7 @@
<p>
</p>
<p>
- <span class="inlinemediaobject"><img src="../.././images/plus.png" alt="plus"></span>
+ <span class="inlinemediaobject"><img src="./images/plus.png" alt="plus"></span>
</p>
<p>
</p>
@@ -162,10 +166,10 @@
is a crucial difference between PEG and general Context Free Grammars (CFGs).
This behavior is quite obvious with syntax diagrams as they resemble flow-charts.
</p>
-<a name="spirit.abstracts.syntax_diagram.predicates"></a><h5>
-<a name="id583696"></a>
- <a class="link" href="syntax_diagram.html#spirit.abstracts.syntax_diagram.predicates">Predicates</a>
- </h5>
+<a name="spirit.abstracts.syntax_diagram.predicates"></a><h4>
+<a name="id415389"></a>
+ Predicates
+ </h4>
<p>
Now, the following are Syntax Diagram versions of PEG predicates. These are
not traditionally found in Syntax Diagrams. These are special extensions
@@ -178,7 +182,7 @@
<p>
</p>
<p>
- <span class="inlinemediaobject"><img src="../.././images/predicate.png" alt="predicate"></span>
+ <span class="inlinemediaobject"><img src="./images/predicate.png" alt="predicate"></span>
</p>
<p>
</p>
@@ -195,7 +199,7 @@
<p>
</p>
<p>
- <span class="inlinemediaobject"><img src="../.././images/and_predicate.png" alt="and_predicate"></span>
+ <span class="inlinemediaobject"><img src="./images/and_predicate.png" alt="and_predicate"></span>
</p>
<p>
</p>
@@ -204,7 +208,7 @@
<p>
</p>
<p>
- <span class="inlinemediaobject"><img src="../.././images/not_predicate.png" alt="not_predicate"></span>
+ <span class="inlinemediaobject"><img src="./images/not_predicate.png" alt="not_predicate"></span>
</p>
<p>
</p>
@@ -218,14 +222,14 @@
</p>
<div class="footnotes">
<br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id583384" href="#id583384" class="para">2</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id415010" href="#id415010">2</a>] </sup>
Bryan Ford: Parsing Expression Grammars: A Recognition-Based Syntactic
Foundation, http://pdos.csail.mit.edu/~baford/packrat/popl04/
</p></div>
-<div class="footnote"><p><sup>[<a name="ftn.id583396" href="#id583396" class="para">3</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id415028" href="#id415028">3</a>] </sup>
Richard E. Pattis: EBNF: A Notation to Describe Syntax, http://www.cs.cmu.edu/~pattis/misc/ebnf.pdf
</p></div>
-<div class="footnote"><p><sup>[<a name="ftn.id583408" href="#id583408" class="para">4</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id415048" href="#id415048">4</a>] </sup>
Niklaus Wirth: The Programming Language Pascal. (July 1973)
</p></div>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/acknowledgments.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/acknowledgments.html (original)
+++ trunk/libs/spirit/doc/html/spirit/acknowledgments.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Acknowledgments</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../index.html" title="Spirit 2.1">
<link rel="up" href="../index.html" title="Spirit 2.1">
-<link rel="prev" href="repository.html" title="Spirit Repository">
+<link rel="previous" href="repository.html" title=" Spirit Repository">
<link rel="next" href="references.html" title="References">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,10 +22,13 @@
<div class="spirit-nav">
<a accesskey="p" href="repository.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="references.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Acknowledgments">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.acknowledgments"></a><a class="link" href="acknowledgments.html" title="Acknowledgments">Acknowledgments</a>
-</h2></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h2 class="title" style="clear: both">
+<a name="spirit.acknowledgments"></a>Acknowledgments
+</h2></div></div>
+<div></div>
+</div>
<p>
This version of Spirit is a complete rewrite of the <span class="emphasis"><em>classic</em></span>
Spirit many people have been contributing to (see below). But there are a couple
@@ -33,63 +36,63 @@
would like to express our special acknowledgement to:
</p>
<p>
- <span class="bold"><strong>Eric Niebler</strong></span> for writing Boost.Proto, without
+ <span class="bold"><b>Eric Niebler</b></span> for writing Boost.Proto, without
which this rewrite wouldn't have been possible, and helping with examples,
advices, and suggestions on how to use Boost.Proto in the best possible way.
</p>
<p>
- <span class="bold"><strong>Ben Hanson</strong></span> for providing us with an early
+ <span class="bold"><b>Ben Hanson</b></span> for providing us with an early
version of his Lexertl library, which is proposed to be included into Boost
(as Boost.Lexer). At the time of this writing the Boost review for this library
is still pending.
</p>
<p>
- <span class="bold"><strong>Francois Barel</strong></span> for his silent but steady work
+ <span class="bold"><b>Francois Barel</b></span> for his silent but steady work
on making and keeping Spirit compatible with all versions of gcc, older and
newest ones. He not only contributed subrules to Spirit V2.1, but always keeps
an eye on the small details which are so important to make a difference.
</p>
<p>
- <span class="bold"><strong>Andreas Haberstroh</strong></span> for proof reading the documentation
+ <span class="bold"><b>Andreas Haberstroh</b></span> for proof reading the documentation
and fixing those non-native-speaker-quirks we managed to introduce into the
first versions of the documentation.
</p>
<p>
- <span class="bold"><strong>FIXME</strong></span>: Add more people
+ <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><h4>
-<a name="id927506"></a>
- <a class="link" href="acknowledgments.html#spirit.acknowledgments.acknowledgements_from_the_spirit_v1__emphasis_classic__emphasis__documentation">Acknowledgements
+<a name="spirit.acknowledgments.acknowledgements_from_the_spirit_v1__emphasis_classic__emphasis__documentation"></a><h3>
+<a name="id758179"></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>
- </h4>
+ </h3>
<p>
Special thanks for working on Spirit <span class="emphasis"><em>classic</em></span> to:
</p>
<p>
- <span class="bold"><strong>Dan Nuffer</strong></span> for his work on lexers, parse trees,
+ <span class="bold"><b>Dan Nuffer</b></span> for his work on lexers, parse trees,
ASTs, XML parsers, the multi-pass iterator as well as administering Spirit's
site, editing, maintaining the CVS and doing the releases plus a zillion of
other chores that were almost taken for granted.
</p>
<p>
- <span class="bold"><strong>Hartmut Kaiser</strong></span> for his work on the C parser,
+ <span class="bold"><b>Hartmut Kaiser</b></span> for his work on the C parser,
the work on the C/C++ preprocessor, utility parsers, the original port to Intel
5.0, various work on Phoenix, porting to v1.5, the meta-parsers, the grouping-parsers,
extensive testing and painstaking attention to details.
</p>
<p>
- <span class="bold"><strong>Martin Wille</strong></span> who improved grammar multi thread
+ <span class="bold"><b>Martin Wille</b></span> who improved grammar multi thread
safety, contributed the eol_p parser, the dynamic parsers, documentation and
for taking an active role in almost every aspect from brainstorming and design
to coding. And, as always, helps keep the regression tests for g++ on Linux
as green as ever :-).
</p>
<p>
- <span class="bold"><strong>Martijn W. Van Der Lee</strong></span> our Web site administrator
+ <span class="bold"><b>Martijn W. Van Der Lee</b></span> our Web site administrator
and for contributing the RFC821 parser.
</p>
<p>
- <span class="bold"><strong>Giovanni Bajo</strong></span> for last minute tweaks of Spirit
+ <span class="bold"><b>Giovanni Bajo</b></span> for last minute tweaks of Spirit
1.8.0 for CodeWarrior 8.3. Actually, I'm ashamed Giovanni was not in this list
already. He's done a lot since Spirit 1.5, the first Boost.Spirit release.
He's instrumental in the porting of the Spirit iterators stuff to the new Boost
@@ -97,107 +100,107 @@
tests here and there.
</p>
<p>
- <span class="bold"><strong>Juan Carlos Arevalo-Baeza (JCAB)*</strong></span> for his
+ <span class="bold"><b>Juan Carlos Arevalo-Baeza (JCAB)*</b></span> for his
work on the C++ parser, the position iterator, ports to v1.5 and keeping the
mailing list discussions alive and kicking.
</p>
<p>
- <span class="bold"><strong>Vaclav Vesely</strong></span>, lots of stuff, the no_actions
+ <span class="bold"><b>Vaclav Vesely</b></span>, lots of stuff, the no_actions
directive, various patches fixes, the distinct parsers, the lazy parser, some
phoenix tweaks and add-ons (e.g. new_). Also, *Stefan Slapeta] and wife for
editing Vaclav's distinct parser doc.
</p>
<p>
- <span class="bold"><strong>Raghavendra Satish</strong></span> for doing the original
+ <span class="bold"><b>Raghavendra Satish</b></span> for doing the original
v1.3 port to VC++ and his work on Phoenix.
</p>
<p>
- <span class="bold"><strong>Noah Stein</strong></span> for following up and helping Ragav
+ <span class="bold"><b>Noah Stein</b></span> for following up and helping Ragav
on the VC++ ports.
</p>
<p>
- <span class="bold"><strong>Hakki Dogusan</strong></span>, for his original v1.0 Pascal
+ <span class="bold"><b>Hakki Dogusan</b></span>, for his original v1.0 Pascal
parser.
</p>
<p>
- <span class="bold"><strong>John (EBo) David</strong></span> for his work on the VM and
+ <span class="bold"><b>John (EBo) David</b></span> for his work on the VM and
watching over my shoulder as I code giving the impression of distance eXtreme
programming.
</p>
<p>
- <span class="bold"><strong>Chris Uzdavinis</strong></span> for feeding in comments and
+ <span class="bold"><b>Chris Uzdavinis</b></span> for feeding in comments and
valuable suggestions as well as editing the documentation.
</p>
<p>
- <span class="bold"><strong>Carsten Stoll</strong></span>, for his work on dynamic parsers.
+ <span class="bold"><b>Carsten Stoll</b></span>, for his work on dynamic parsers.
</p>
<p>
- <span class="bold"><strong>Andy Elvey</strong></span> and his conifer parser.
+ <span class="bold"><b>Andy Elvey</b></span> and his conifer parser.
</p>
<p>
- <span class="bold"><strong>Bruce Florman</strong></span>, who did the original v1.0 port
+ <span class="bold"><b>Bruce Florman</b></span>, who did the original v1.0 port
to VC++.
</p>
<p>
- <span class="bold"><strong>Jeff Westfahl</strong></span> for porting the loop parsers
+ <span class="bold"><b>Jeff Westfahl</b></span> for porting the loop parsers
to v1.5 and contributing the file iterator.
</p>
<p>
- <span class="bold"><strong>Peter Simons</strong></span> for the RFC date parser example
+ <span class="bold"><b>Peter Simons</b></span> for the RFC date parser example
and tutorial plus helping out with some nitty gritty details.
</p>
<p>
- <span class="bold"><strong>Markus Schöpflin</strong></span> for suggesting the end_p parser
+ <span class="bold"><b>Markus Schöpflin</b></span> for suggesting the end_p parser
and lots of other nifty things and his active presence in the mailing list.
</p>
<p>
- <span class="bold"><strong>Doug Gregor</strong></span> for mentoring and his ability
+ <span class="bold"><b>Doug Gregor</b></span> for mentoring and his ability
to see things that others don't.
</p>
<p>
- <span class="bold"><strong>David Abrahams</strong></span> for giving Joel a job that
+ <span class="bold"><b>David Abrahams</b></span> for giving Joel a job that
allows him to still work on Spirit, plus countless advice and help on C++ and
specifically template metaprogramming.
</p>
<p>
- <span class="bold"><strong>Aleksey Gurtovoy</strong></span> for his MPL library from
+ <span class="bold"><b>Aleksey Gurtovoy</b></span> for his MPL library from
which we stole many metaprogramming tricks especially for less conforming compilers
such as Borland and VC6/7.
</p>
<p>
- <span class="bold"><strong>Gustavo Guerra</strong></span> for his last minute review
+ <span class="bold"><b>Gustavo Guerra</b></span> for his last minute review
of Spirit and constant feedback, plus patches here and there (e.g. proposing
the new dot behavior of the real numerics parsers).
</p>
<p>
- <span class="bold"><strong>Nicola Musatti</strong></span>, <span class="bold"><strong>Paul
- Snively</strong></span>, <span class="bold"><strong>Alisdair Meredith</strong></span> and
- <span class="bold"><strong>Hugo Duncan</strong></span> for testing and sending in various
+ <span class="bold"><b>Nicola Musatti</b></span>, <span class="bold"><b>Paul
+ Snively</b></span>, <span class="bold"><b>Alisdair Meredith</b></span> and
+ <span class="bold"><b>Hugo Duncan</b></span> for testing and sending in various
patches.
</p>
<p>
- <span class="bold"><strong>Steve Rowe</strong></span> for his splendid work on the TSTs
+ <span class="bold"><b>Steve Rowe</b></span> for his splendid work on the TSTs
that will soon be taken into Spirit.
</p>
<p>
- <span class="bold"><strong>Jonathan de Halleux</strong></span> for his work on actors.
+ <span class="bold"><b>Jonathan de Halleux</b></span> for his work on actors.
</p>
<p>
- <span class="bold"><strong>Angus Leeming</strong></span> for last minute editing work
+ <span class="bold"><b>Angus Leeming</b></span> for last minute editing work
on the 1.8.0 release documentation, his work on Phoenix and his active presence
in the Spirit mailing list.
</p>
<p>
- <span class="bold"><strong>Joao Abecasis</strong></span> for his active presence in the
+ <span class="bold"><b>Joao Abecasis</b></span> for his active presence in the
Spirit mailing list, providing user support, participating in the discussions
and so on.
</p>
<p>
- <span class="bold"><strong>Guillaume Melquiond</strong></span> for a last minute patch
+ <span class="bold"><b>Guillaume Melquiond</b></span> for a last minute patch
to multi_pass for 1.8.1.
</p>
<p>
- <span class="bold"><strong>Peder Holt</strong></span> for his porting work on Phoenix,
+ <span class="bold"><b>Peder Holt</b></span> for his porting work on Phoenix,
Fusion and Spirit to VC6.
</p>
<p>
@@ -214,19 +217,19 @@
in the review:
</p>
<p>
- <span class="bold"><strong>John Maddock</strong></span>, our review manager, <span class="bold"><strong>Aleksey Gurtovoy</strong></span>, <span class="bold"><strong>Andre Hentz</strong></span>,
- <span class="bold"><strong>Beman Dawes</strong></span>, <span class="bold"><strong>Carl Daniel</strong></span>,
- <span class="bold"><strong>Christopher Currie</strong></span>, <span class="bold"><strong>Dan
- Gohman</strong></span>, <span class="bold"><strong>Dan Nuffer</strong></span>, <span class="bold"><strong>Daryle
- Walker</strong></span>, <span class="bold"><strong>David Abrahams</strong></span>, <span class="bold"><strong>David B. Held</strong></span>, <span class="bold"><strong>Dirk Gerrits</strong></span>,
- <span class="bold"><strong>Douglas Gregor</strong></span>, <span class="bold"><strong>Hartmut
- Kaiser</strong></span>, <span class="bold"><strong>Iain K.Hanson</strong></span>, <span class="bold"><strong>Juan Carlos Arevalo-Baeza</strong></span>, <span class="bold"><strong>Larry
- Evans</strong></span>, <span class="bold"><strong>Martin Wille</strong></span>, <span class="bold"><strong>Mattias Flodin</strong></span>, <span class="bold"><strong>Noah Stein</strong></span>,
- <span class="bold"><strong>Nuno Lucas</strong></span>, <span class="bold"><strong>Peter Dimov</strong></span>,
- <span class="bold"><strong>Peter Simons</strong></span>, <span class="bold"><strong>Petr Kocmid</strong></span>,
- <span class="bold"><strong>Ross Smith</strong></span>, <span class="bold"><strong>Scott Kirkwood</strong></span>,
- <span class="bold"><strong>Steve Cleary</strong></span>, <span class="bold"><strong>Thorsten
- Ottosen</strong></span>, <span class="bold"><strong>Tom Wenisch</strong></span>, <span class="bold"><strong>Vladimir Prus</strong></span>
+ <span class="bold"><b>John Maddock</b></span>, our review manager, <span class="bold"><b>Aleksey Gurtovoy</b></span>, <span class="bold"><b>Andre Hentz</b></span>,
+ <span class="bold"><b>Beman Dawes</b></span>, <span class="bold"><b>Carl Daniel</b></span>,
+ <span class="bold"><b>Christopher Currie</b></span>, <span class="bold"><b>Dan
+ Gohman</b></span>, <span class="bold"><b>Dan Nuffer</b></span>, <span class="bold"><b>Daryle
+ Walker</b></span>, <span class="bold"><b>David Abrahams</b></span>, <span class="bold"><b>David B. Held</b></span>, <span class="bold"><b>Dirk Gerrits</b></span>,
+ <span class="bold"><b>Douglas Gregor</b></span>, <span class="bold"><b>Hartmut
+ Kaiser</b></span>, <span class="bold"><b>Iain K.Hanson</b></span>, <span class="bold"><b>Juan Carlos Arevalo-Baeza</b></span>, <span class="bold"><b>Larry
+ Evans</b></span>, <span class="bold"><b>Martin Wille</b></span>, <span class="bold"><b>Mattias Flodin</b></span>, <span class="bold"><b>Noah Stein</b></span>,
+ <span class="bold"><b>Nuno Lucas</b></span>, <span class="bold"><b>Peter Dimov</b></span>,
+ <span class="bold"><b>Peter Simons</b></span>, <span class="bold"><b>Petr Kocmid</b></span>,
+ <span class="bold"><b>Ross Smith</b></span>, <span class="bold"><b>Scott Kirkwood</b></span>,
+ <span class="bold"><b>Steve Cleary</b></span>, <span class="bold"><b>Thorsten
+ Ottosen</b></span>, <span class="bold"><b>Tom Wenisch</b></span>, <span class="bold"><b>Vladimir Prus</b></span>
</p>
<p>
Finally thanks to SourceForge for hosting the Spirit project and Boost: a C++
Added: trunk/libs/spirit/doc/html/spirit/advanced.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/html/spirit/advanced.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -0,0 +1,68 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Advanced</title>
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<link rel="home" href="../index.html" title="Spirit 2.1">
+<link rel="up" href="../index.html" title="Spirit 2.1">
+<link rel="previous" href="lex/reference/tokendef.html" title=" TokenDef Class">
+<link rel="next" href="advanced/indepth.html" title=" In Depth">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="lex/reference/tokendef.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="advanced/indepth.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h2 class="title" style="clear: both">
+<a name="spirit.advanced"></a>Advanced
+</h2></div></div>
+<div></div>
+</div>
+<div class="toc"><dl>
+<dt><span class="section"> In Depth</span></dt>
+<dd><dl><dt><span class="section"><a href="advanced/indepth/parsers_indepth.html"> Parsers in
+ Depth</a></span></dt></dl></dd>
+<dt><span class="section"><a href="advanced/customize.html"> Customization of Spirit's
+ Attribute Handling</a></span></dt>
+<dd><dl>
+<dt><span class="section"><a href="advanced/customize/is_container.html"> Determine
+ if a Type Should be Treated as a Container (Qi and Karma)</a></span></dt>
+<dt><span class="section"><a href="advanced/customize/transform.html"> Transform an
+ Attribute to a Different Type (Qi and Karma)</a></span></dt>
+<dt><span class="section"><a href="advanced/customize/assign_to.html"> Store a Parsed
+ Attribute Value (Qi)</a></span></dt>
+<dt><span class="section"><a href="advanced/customize/store_value.html"> Store Parsed
+ Attribute Values into a Container (Qi)</a></span></dt>
+<dt><span class="section"><a href="advanced/customize/clear_value.html"> Re-Initialize
+ an Attribute Value before Parsing (Qi)</a></span></dt>
+<dt><span class="section"><a href="advanced/customize/extract_from.html"> Extract an
+ Attribute Value to Generate Output (Karma)</a></span></dt>
+</dl></dd>
+</dl></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="lex/reference/tokendef.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="advanced/indepth.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: trunk/libs/spirit/doc/html/spirit/advanced/customize.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/html/spirit/advanced/customize.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -0,0 +1,176 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Customization of Spirit's
+ Attribute Handling</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<link rel="home" href="../../index.html" title="Spirit 2.1">
+<link rel="up" href="../advanced.html" title="Advanced">
+<link rel="previous" href="indepth/parsers_indepth.html" title=" Parsers in
+ Depth">
+<link rel="next" href="customize/is_container.html" title=" Determine
+ if a Type Should be Treated as a Container (Qi and Karma)">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="indepth/parsers_indepth.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../advanced.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="customize/is_container.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h3 class="title">
+<a name="spirit.advanced.customize"></a><a href="customize.html" title=" Customization of Spirit's
+ Attribute Handling"> Customization of Spirit's
+ Attribute Handling</a>
+</h3></div></div>
+<div></div>
+</div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="customize/is_container.html"> Determine
+ if a Type Should be Treated as a Container (Qi and Karma)</a></span></dt>
+<dt><span class="section"><a href="customize/transform.html"> Transform an
+ Attribute to a Different Type (Qi and Karma)</a></span></dt>
+<dt><span class="section"><a href="customize/assign_to.html"> Store a Parsed
+ Attribute Value (Qi)</a></span></dt>
+<dt><span class="section"><a href="customize/store_value.html"> Store Parsed
+ Attribute Values into a Container (Qi)</a></span></dt>
+<dt><span class="section"><a href="customize/clear_value.html"> Re-Initialize
+ an Attribute Value before Parsing (Qi)</a></span></dt>
+<dt><span class="section"><a href="customize/extract_from.html"> Extract an
+ Attribute Value to Generate Output (Karma)</a></span></dt>
+</dl></div>
+<a name="spirit.advanced.customize.why_do_we_need_attribute_customization_points"></a><h4>
+<a name="id724737"></a>
+ <a href="customize.html#spirit.advanced.customize.why_do_we_need_attribute_customization_points">Why
+ do we need Attribute Customization Points</a>
+ </h4>
+<div class="important"><table border="0" summary="Important">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../images/important.png"></td>
+<th align="left">Important</th>
+</tr>
+<tr><td colspan="2" align="left" valign="top"><p>
+ Before you read on please be aware that the interfaces described in this
+ section are not finalized and may change in the future without attempting
+ to be backwards compatible. We document the customization point interfaces
+ anyways as we think they are important. Understanding customization points
+ helps understanding Spirit. Additionally they prove to be powerful tools
+ enabling full integration of the user's data structures with <span class="emphasis"><em>Qi's</em></span>
+ parsers and <span class="emphasis"><em>Karma's</em></span> generators.
+ </p></td></tr>
+</table></div>
+<p>
+ Spirit has been written
+ with extensibility in mind. It provides many different attribute customization
+ points allowing to integrate custom data types with the process of parsing
+ in <span class="emphasis"><em>Spirit.Qi</em></span> or output generation with <span class="emphasis"><em>Spirit.Karma</em></span>.
+ All attribute customization points are exposed using a similar technique:
+ full or partial template specialization. Spirit
+ generally implements the main template, providing a default implementation.
+ You as the user have to provide a partial or full specialization of this
+ template for the data types you want to integrate with the library. In fact,
+ the library uses these customization points itself for instance to handle
+ the magic of the <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
+ attribute type.
+ </p>
+<p>
+ Here is an example showing the <a href="customize/store_value/container_value.html" title="
+ Determine the Type to be Stored in a Container (Qi)"><tt class="computeroutput"><span class="identifier">container_value</span></tt></a> customization point
+ used by different parsers (such as Kleene,
+ Plus, etc.) to find
+ the attribute type to be stored in a supplied STL container:
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="comment">/* = void*/</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">container_value</span>
+ <span class="special">:</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">remove_value_const</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">></span>
+<span class="special">{};</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ This template is instantiated by the library at the appropriate places while
+ using the supplied container type as the template argument. The embedded
+ <tt class="computeroutput"><span class="identifier">type</span></tt> is used as the attribute
+ type while parsing the elements to be store in that container.
+ </p>
+<p>
+ The following example shows the predefined specialization for <tt class="computeroutput"><span class="identifier">unused_type</span></tt>:
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><></span>
+<span class="keyword">struct</span> <span class="identifier">container_value</span><span class="special"><</span><span class="identifier">unused_type</span><span class="special">></span>
+<span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">unused_type</span> <span class="identifier">type</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ which defines its embedded <tt class="computeroutput"><span class="identifier">type</span></tt>
+ to be <tt class="computeroutput"><span class="identifier">unused_type</span></tt> as well,
+ this way propagating the 'don't care' attribute status to the embedded parser.
+ </p>
+<p>
+ All attribute customization points follow the same scheme. The last template
+ parameter is always <tt class="computeroutput"><span class="keyword">typename</span> <span class="identifier">Enable</span> <span class="special">=</span> <span class="keyword">void</span></tt> allowing to apply SFINAE for fine grained
+ control over the template specialization process. But most of the time you
+ can safely forget about its existence.
+ </p>
+<p>
+ The following sections will describe all customization points, together with
+ a description which needs to be specialized for what purpose.
+ </p>
+<a name="spirit.advanced.customize.the_usage_of_customization_points"></a><h4>
+<a name="id725224"></a>
+ <a href="customize.html#spirit.advanced.customize.the_usage_of_customization_points">The
+ Usage of Customization Points</a>
+ </h4>
+<p>
+ The different customizations points are used by different parts of the library.
+ Part of the customizations points are used by both, <span class="emphasis"><em>Spirit.Qi</em></span>
+ and <span class="emphasis"><em>Spirit.Karma</em></span>, whereas others are specialized to
+ be applied for one of the sub-libraries only. We will explain when a specific
+ customization point needs to be implemented and, equally important, which
+ customization points need to be implemented at the same time. Often it is
+ not sufficient to provide a specialization for one single customization point
+ only, in this case you as the user have to provide all necessary customizations
+ for your data type you want to integrate with the library.
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="indepth/parsers_indepth.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../advanced.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="customize/is_container.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: trunk/libs/spirit/doc/html/spirit/advanced/customize/assign_to.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/html/spirit/advanced/customize/assign_to.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -0,0 +1,67 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Store a Parsed
+ Attribute Value (Qi)</title>
+<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
+<link rel="up" href="../customize.html" title=" Customization of Spirit's
+ Attribute Handling">
+<link rel="previous" href="transform.html" title=" Transform an
+ Attribute to a Different Type (Qi and Karma)">
+<link rel="next" href="assign_to/assign_to_attribute_from_iterators.html" title="
+ Store an Attribute after a Parser Produced a Pair of Iterators (Qi)">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="transform.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="assign_to/assign_to_attribute_from_iterators.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.advanced.customize.assign_to"></a><a href="assign_to.html" title=" Store a Parsed
+ Attribute Value (Qi)"> Store a Parsed
+ Attribute Value (Qi)</a>
+</h4></div></div>
+<div></div>
+</div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="assign_to/assign_to_attribute_from_iterators.html">
+ Store an Attribute after a Parser Produced a Pair of Iterators (Qi)</a></span></dt>
+<dt><span class="section"><a href="assign_to/assign_to_attribute_from_value.html">
+ Store an Attribute Value after a Parser Produced a Value (Qi)</a></span></dt>
+</dl></div>
+<p>
+ After parsing input and generting an attribute value this value needs to
+ assigned to the attribute instance provided by the user. The customization
+ points <tt class="computeroutput"><span class="identifier">assign_to_attribute_from_iterators</span></tt>
+ and <tt class="computeroutput"><span class="identifier">assign_to_attribute_from_value</span></tt>
+ are utilized to adapt this assignment to the concrete type to be assigned.
+ This section describes both.
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="transform.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="assign_to/assign_to_attribute_from_iterators.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: trunk/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_attribute_from_iterators.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_attribute_from_iterators.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -0,0 +1,290 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ Store an Attribute after a Parser Produced a Pair of Iterators (Qi)</title>
+<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<link rel="home" href="../../../../index.html" title="Spirit 2.1">
+<link rel="up" href="../assign_to.html" title=" Store a Parsed
+ Attribute Value (Qi)">
+<link rel="previous" href="../assign_to.html" title=" Store a Parsed
+ Attribute Value (Qi)">
+<link rel="next" href="assign_to_attribute_from_value.html" title="
+ Store an Attribute Value after a Parser Produced a Value (Qi)">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../assign_to.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../assign_to.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="assign_to_attribute_from_value.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators"></a><a href="assign_to_attribute_from_iterators.html" title="
+ Store an Attribute after a Parser Produced a Pair of Iterators (Qi)">
+ Store an Attribute after a Parser Produced a Pair of Iterators (Qi)</a>
+</h5></div></div>
+<div></div>
+</div>
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.assign_to_attribute_from_iterators"></a><h6>
+<a name="id728724"></a>
+ assign_to_attribute_from_iterators
+ </h6>
+<p>
+ The template <tt class="computeroutput"><span class="identifier">assign_to_attribute_from_iterators</span></tt>
+ is a type used as an attribute customization point. It is invoked by
+ the those <span class="emphasis"><em>Qi</em></span> parsers not producing any attribute
+ value but returning a pair of iterators pointing to the matched input
+ sequence. It is used to either store the iterator pair into the attribute
+ instance provided by the user or to convert the iterator pair into an
+ attribute as provided by the user.
+ </p>
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.module_headers"></a><h6>
+<a name="id728780"></a>
+ <a href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.module_headers">Module
+ Headers</a>
+ </h6>
+<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">home</span><span class="special">/</span><span class="identifier">qi</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">assign_to</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ Also, see Include Structure.
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td colspan="2" align="left" valign="top"><p>
+ This header file does not need to be included directly by any user
+ program as it is normally included by other Spirit header files relying
+ on its content.
+ </p></td></tr>
+</table></div>
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.namespace"></a><h6>
+<a name="id728920"></a>
+ Namespace
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<thead><tr><th><p>
+ Name
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></tt>
+ </p></td></tr></tbody>
+</table></div>
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.synopsis"></a><h6>
+<a name="id729020"></a>
+ Synopsis
+ </h6>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Attrib</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">assign_to_attribute_from_iterators</span><span class="special">;</span>
+</pre>
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.template_parameters"></a><h6>
+<a name="id729138"></a>
+ <a href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.template_parameters">Template
+ parameters</a>
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Parameter
+ </p></th>
+<th><p>
+ Description
+ </p></th>
+<th><p>
+ Default
+ </p></th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ </p></td>
+<td><p>
+ The type, <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ is the type of the attribute as passed in by the user.
+ </p></td>
+<td><p>
+ none
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Iterator</span></tt>
+ </p></td>
+<td><p>
+ The type, <tt class="computeroutput"><span class="identifier">Iterator</span></tt>
+ is the type of the iterators as produced by the parser.
+ </p></td>
+<td><p>
+ none
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Enable</span></tt>
+ </p></td>
+<td><p>
+ Helper template parameter usable to selectively enable or disable
+ certain specializations of <tt class="computeroutput"><span class="identifier">assign_to_attribute_from_value</span></tt>
+ utilizing SFINAE (i.e. <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></tt>
+ or <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></tt>).
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">void</span></tt>
+ </p></td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.notation"></a><h6>
+<a name="id729412"></a>
+ Notation
+ </h6>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Attrib</span></tt></span></dt>
+<dd><p>
+ A type to be used as the target to store the attribute value in.
+ </p></dd>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">attr</span></tt></span></dt>
+<dd><p>
+ A attribute instance of type <tt class="computeroutput"><span class="identifier">Attrib</span></tt>.
+ </p></dd>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Iterator</span></tt></span></dt>
+<dd><p>
+ The iterator type used by the parser. This type usually corresponds
+ to the iterators as passed in by the user.
+ </p></dd>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">begin</span></tt>,
+ <tt class="computeroutput"><span class="identifier">end</span></tt></span></dt>
+<dd><p>
+ Iterator instances of type <tt class="computeroutput"><span class="identifier">Iterator</span></tt>
+ pointing to the begin and the end of the matched input sequence.
+ </p></dd>
+</dl>
+</div>
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.expression_semantics"></a><h6>
+<a name="id729580"></a>
+ <a href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.expression_semantics">Expression
+ Semantics</a>
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Expression
+ </p></th>
+<th><p>
+ Semantics
+ </p></th>
+</tr></thead>
+<tbody><tr>
+<td>
+<p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">assign_to_attribute_from_iterators</span><span class="special"><</span><span class="identifier">Attrib</span><span class="special">,</span> <span class="identifier">Iterator</span><span class="special">>::</span><span class="identifier">call</span><span class="special">(</span><span class="identifier">b</span><span class="special">,</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">attr</span><span class="special">)</span></pre>
+<p>
+ </p>
+</td>
+<td><p>
+ Use the iterators <tt class="computeroutput"><span class="identifier">begin</span></tt>
+ and <tt class="computeroutput"><span class="identifier">end</span></tt> to initialize
+ the attribute <tt class="computeroutput"><span class="identifier">attr</span></tt>.
+ </p></td>
+</tr></tbody>
+</table></div>
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.predefined_specializations"></a><h6>
+<a name="id729783"></a>
+ <a href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.predefined_specializations">Predefined
+ Specializations</a>
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Type
+ </p></th>
+<th><p>
+ Semantics
+ </p></th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Attrib</span></tt>, <tt class="computeroutput"><span class="identifier">Iterator</span></tt>
+ </p></td>
+<td><p>
+ Execute an assignment <tt class="computeroutput"><span class="identifier">attr</span>
+ <span class="special">=</span> <span class="identifier">Attrib</span><span class="special">(</span><span class="identifier">begin</span><span class="special">,</span> <span class="identifier">end</span><span class="special">)</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused_type</span></tt>,
+ <tt class="computeroutput"><span class="identifier">T</span></tt>
+ </p></td>
+<td><p>
+ Do nothing.
+ </p></td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.when_to_implement"></a><h6>
+<a name="id729980"></a>
+ <a href="assign_to_attribute_from_iterators.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.when_to_implement">When
+ to implement</a>
+ </h6>
+<p>
+ The customization point <tt class="computeroutput"><span class="identifier">assign_to_attribute_from_iterators</span></tt>
+ needs to be implemented for a specific type whenever the default implementation
+ as shown above is not applicable. Examples for this could be that the
+ type <tt class="computeroutput"><span class="identifier">Attrib</span></tt> is not constructible
+ from the pair of iterators.
+ </p>
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_iterators.example"></a><h6>
+<a name="id730039"></a>
+ Example
+ </h6>
+<p>
+ TBD
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../assign_to.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../assign_to.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="assign_to_attribute_from_value.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: trunk/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_attribute_from_value.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_to_attribute_from_value.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -0,0 +1,284 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ Store an Attribute Value after a Parser Produced a Value (Qi)</title>
+<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<link rel="home" href="../../../../index.html" title="Spirit 2.1">
+<link rel="up" href="../assign_to.html" title=" Store a Parsed
+ Attribute Value (Qi)">
+<link rel="previous" href="assign_to_attribute_from_iterators.html" title="
+ Store an Attribute after a Parser Produced a Pair of Iterators (Qi)">
+<link rel="next" href="../store_value.html" title=" Store Parsed
+ Attribute Values into a Container (Qi)">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="assign_to_attribute_from_iterators.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../assign_to.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../store_value.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value"></a><a href="assign_to_attribute_from_value.html" title="
+ Store an Attribute Value after a Parser Produced a Value (Qi)">
+ Store an Attribute Value after a Parser Produced a Value (Qi)</a>
+</h5></div></div>
+<div></div>
+</div>
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.assign_to_attribute_from_value"></a><h6>
+<a name="id730091"></a>
+ assign_to_attribute_from_value
+ </h6>
+<p>
+ The template <tt class="computeroutput"><span class="identifier">assign_to_attribute_from_value</span></tt>
+ is a type used as an attribute customization point. It is invoked by
+ the all primitive <span class="emphasis"><em>Qi</em></span> parsers in order to store a
+ parsed attribute value into the attribute instance provided by the user.
+ </p>
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.module_headers"></a><h6>
+<a name="id730143"></a>
+ <a href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.module_headers">Module
+ Headers</a>
+ </h6>
+<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">home</span><span class="special">/</span><span class="identifier">qi</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">assign_to</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ Also, see Include Structure.
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td colspan="2" align="left" valign="top"><p>
+ This header file does not need to be included directly by any user
+ program as it is normally included by other Spirit header files relying
+ on its content.
+ </p></td></tr>
+</table></div>
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.namespace"></a><h6>
+<a name="id730284"></a>
+ Namespace
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<thead><tr><th><p>
+ Name
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></tt>
+ </p></td></tr></tbody>
+</table></div>
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.synopsis"></a><h6>
+<a name="id730383"></a>
+ Synopsis
+ </h6>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Attrib</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">assign_to_attribute_from_value</span><span class="special">;</span>
+</pre>
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.template_parameters"></a><h6>
+<a name="id730498"></a>
+ <a href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.template_parameters">Template
+ parameters</a>
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Parameter
+ </p></th>
+<th><p>
+ Description
+ </p></th>
+<th><p>
+ Default
+ </p></th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ </p></td>
+<td><p>
+ The type, <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ is the type of the attribute as passed in by the user.
+ </p></td>
+<td><p>
+ none
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">T</span></tt>
+ </p></td>
+<td><p>
+ The type, <tt class="computeroutput"><span class="identifier">T</span></tt> is
+ the type of the attribute instance as produced by the parser.
+ </p></td>
+<td><p>
+ none
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Enable</span></tt>
+ </p></td>
+<td><p>
+ Helper template parameter usable to selectively enable or disable
+ certain specializations of <tt class="computeroutput"><span class="identifier">assign_to_attribute_from_value</span></tt>
+ utilizing SFINAE (i.e. <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></tt>
+ or <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></tt>).
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">void</span></tt>
+ </p></td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.notation"></a><h6>
+<a name="id730771"></a>
+ Notation
+ </h6>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Attrib</span></tt></span></dt>
+<dd><p>
+ A type to be used as the target to store the attribute value in.
+ </p></dd>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">attr</span></tt></span></dt>
+<dd><p>
+ A attribute instance of type <tt class="computeroutput"><span class="identifier">Attrib</span></tt>.
+ </p></dd>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">T</span></tt></span></dt>
+<dd><p>
+ A type as produced by the parser. The parser temporarily stores its
+ parsed values using this type.
+ </p></dd>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">t</span></tt></span></dt>
+<dd><p>
+ A attribute instance of type <tt class="computeroutput"><span class="identifier">T</span></tt>.
+ </p></dd>
+</dl>
+</div>
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.expression_semantics"></a><h6>
+<a name="id730922"></a>
+ <a href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.expression_semantics">Expression
+ Semantics</a>
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Expression
+ </p></th>
+<th><p>
+ Semantics
+ </p></th>
+</tr></thead>
+<tbody><tr>
+<td>
+<p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">assign_to_attribute_from_value</span><span class="special"><</span><span class="identifier">Attrib</span><span class="special">,</span> <span class="identifier">T</span><span class="special">>::</span><span class="identifier">call</span><span class="special">(</span><span class="identifier">t</span><span class="special">,</span> <span class="identifier">attr</span><span class="special">)</span></pre>
+<p>
+ </p>
+</td>
+<td><p>
+ Copy (assign) the value, <tt class="computeroutput"><span class="identifier">t</span></tt>
+ to the attribute <tt class="computeroutput"><span class="identifier">attr</span></tt>.
+ </p></td>
+</tr></tbody>
+</table></div>
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.predefined_specializations"></a><h6>
+<a name="id731100"></a>
+ <a href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.predefined_specializations">Predefined
+ Specializations</a>
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Type
+ </p></th>
+<th><p>
+ Semantics
+ </p></th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Attrib</span></tt>, <tt class="computeroutput"><span class="identifier">T</span></tt>
+ </p></td>
+<td><p>
+ Assign the argument <tt class="computeroutput"><span class="identifier">t</span></tt>
+ to <tt class="computeroutput"><span class="identifier">attr</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused_type</span></tt>,
+ <tt class="computeroutput"><span class="identifier">T</span></tt>
+ </p></td>
+<td><p>
+ Do nothing.
+ </p></td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.when_to_implement"></a><h6>
+<a name="id731270"></a>
+ <a href="assign_to_attribute_from_value.html#spirit.advanced.customize.assign_to.assign_to_attribute_from_value.when_to_implement">When
+ to implement</a>
+ </h6>
+<p>
+ The customization point <tt class="computeroutput"><span class="identifier">assign_to_attribute_from_value</span></tt>
+ needs to be implemented for a specific type whenever the default implementation
+ as shown above is not applicable. Examples for this could be that the
+ type <tt class="computeroutput"><span class="identifier">Attrib</span></tt> is not copy
+ constructible.
+ </p>
+<a name="spirit.advanced.customize.assign_to.assign_to_attribute_from_value.example"></a><h6>
+<a name="id731330"></a>
+ Example
+ </h6>
+<p>
+ TBD
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="assign_to_attribute_from_iterators.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../assign_to.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../store_value.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: trunk/libs/spirit/doc/html/spirit/advanced/customize/clear_value.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/html/spirit/advanced/customize/clear_value.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -0,0 +1,319 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Re-Initialize
+ an Attribute Value before Parsing (Qi)</title>
+<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
+<link rel="up" href="../customize.html" title=" Customization of Spirit's
+ Attribute Handling">
+<link rel="previous" href="store_value/push_back.html" title="
+ Store a Parsed Attribute Value into a Container (Qi)">
+<link rel="next" href="extract_from.html" title=" Extract an
+ Attribute Value to Generate Output (Karma)">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="store_value/push_back.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="extract_from.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.advanced.customize.clear_value"></a><a href="clear_value.html" title=" Re-Initialize
+ an Attribute Value before Parsing (Qi)"> Re-Initialize
+ an Attribute Value before Parsing (Qi)</a>
+</h4></div></div>
+<div></div>
+</div>
+<a name="spirit.advanced.customize.clear_value.clear_value"></a><h5>
+<a name="id735411"></a>
+ clear_value
+ </h5>
+<p>
+ The template <tt class="computeroutput"><span class="identifier">clear_value</span></tt>
+ is a type used as an attribute customization point. It is invoked by the
+ <span class="emphasis"><em>Qi</em></span> repetitive parsers (Kleene,
+ Plus, List,
+ and <a href="../../qi/reference/directive/repeat.html" title=" Repetition
+ (repeat[])">Repeat</a>)
+ in order to re-initialize the attribute instance passed to the embedded
+ parser after it has been stored in the provided container. This re-initialized
+ attribute instance is reused during the next iteration of the repetitive
+ parser.
+ </p>
+<a name="spirit.advanced.customize.clear_value.module_headers"></a><h5>
+<a name="id735497"></a>
+ <a href="clear_value.html#spirit.advanced.customize.clear_value.module_headers">Module
+ Headers</a>
+ </h5>
+<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">home</span><span class="special">/</span><span class="identifier">support</span><span class="special">/</span><span class="identifier">attributes</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ Also, see Include Structure.
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td colspan="2" align="left" valign="top"><p>
+ This header file does not need to be included directly by any user program
+ as it is normally included by other Spirit header files relying on its
+ content.
+ </p></td></tr>
+</table></div>
+<a name="spirit.advanced.customize.clear_value.namespace"></a><h5>
+<a name="id735627"></a>
+ Namespace
+ </h5>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<thead><tr><th><p>
+ Name
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></tt>
+ </p></td></tr></tbody>
+</table></div>
+<a name="spirit.advanced.customize.clear_value.synopsis"></a><h5>
+<a name="id735723"></a>
+ Synopsis
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Attrib</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">clear_value</span><span class="special">;</span>
+</pre>
+<a name="spirit.advanced.customize.clear_value.template_parameters"></a><h5>
+<a name="id735818"></a>
+ <a href="clear_value.html#spirit.advanced.customize.clear_value.template_parameters">Template
+ parameters</a>
+ </h5>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Parameter
+ </p></th>
+<th><p>
+ Description
+ </p></th>
+<th><p>
+ Default
+ </p></th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ </p></td>
+<td><p>
+ The type, <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ of the attribute to be re-initialized.
+ </p></td>
+<td><p>
+ none
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Enable</span></tt>
+ </p></td>
+<td><p>
+ Helper template parameter usable to selectively enable or disable
+ certain specializations of <tt class="computeroutput"><span class="identifier">clear_value</span></tt>
+ utilizing SFINAE (i.e. <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></tt>
+ or <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></tt>).
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">void</span></tt>
+ </p></td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.clear_value.notation"></a><h5>
+<a name="id736043"></a>
+ Notation
+ </h5>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Attrib</span></tt></span></dt>
+<dd><p>
+ A type to be used as a container to store attribute values in.
+ </p></dd>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">attr</span></tt></span></dt>
+<dd><p>
+ A attribute instance of type <tt class="computeroutput"><span class="identifier">Attrib</span></tt>.
+ </p></dd>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">T1</span></tt>,
+ <tt class="computeroutput"><span class="identifier">T2</span></tt>, ...</span></dt>
+<dd><p>
+ Arbitrary types
+ </p></dd>
+</dl>
+</div>
+<a name="spirit.advanced.customize.clear_value.expression_semantics"></a><h5>
+<a name="id736169"></a>
+ <a href="clear_value.html#spirit.advanced.customize.clear_value.expression_semantics">Expression
+ Semantics</a>
+ </h5>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Expression
+ </p></th>
+<th><p>
+ Semantics
+ </p></th>
+</tr></thead>
+<tbody><tr>
+<td>
+<p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">clear_value</span><span class="special"><</span><span class="identifier">Attrib</span><span class="special">>::</span><span class="identifier">call</span><span class="special">(</span><span class="identifier">Attrib</span><span class="special">&</span> <span class="identifier">attr</span><span class="special">)</span></pre>
+<p>
+ </p>
+</td>
+<td><p>
+ Re-initialize the instance referred to by <tt class="computeroutput"><span class="identifier">attr</span></tt>
+ in the most efficient way.
+ </p></td>
+</tr></tbody>
+</table></div>
+<a name="spirit.advanced.customize.clear_value.predefined_specializations"></a><h5>
+<a name="id736322"></a>
+ <a href="clear_value.html#spirit.advanced.customize.clear_value.predefined_specializations">Predefined
+ Specializations</a>
+ </h5>
+<p>
+ Spirit predefines specializations
+ of this customization point for several types. The following table lists
+ those types together with the types exposed and the corresponding semantics:
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Template Parameters
+ </p></th>
+<th><p>
+ Value
+ </p></th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ </p></td>
+<td><p>
+ Re-initialize using assignment of default constructed value.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ Any type <tt class="computeroutput"><span class="identifier">T</span></tt> for
+ which <tt class="computeroutput"><span class="identifier">is_container</span><span class="special"><>::</span><span class="identifier">type</span></tt>
+ is <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
+ </p></td>
+<td><p>
+ Call the member function <tt class="computeroutput"><span class="identifier">attr</span><span class="special">.</span><span class="identifier">clear</span><span class="special">()</span></tt> for the passed attribute instance.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Attrib</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Clear the <tt class="computeroutput"><span class="identifier">optional</span></tt>
+ instance and leave it uninitialized.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant</span><span class="special"><</span><span class="identifier">T1</span><span class="special">,</span>
+ <span class="identifier">T2</span><span class="special">,</span>
+ <span class="special">...></span></tt>
+ </p></td>
+<td><p>
+ Invoke the <tt class="computeroutput"><span class="identifier">clear_value</span></tt>
+ customization point for the currently held value.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">T1</span><span class="special">,</span>
+ <span class="identifier">T2</span><span class="special">,</span>
+ <span class="special">...></span></tt>
+ </p></td>
+<td><p>
+ Invoke the <tt class="computeroutput"><span class="identifier">clear_value</span></tt>
+ customization point for all elements of the tuple.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
+ </p></td>
+<td><p>
+ Do nothing.
+ </p></td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.clear_value.when_to_implement"></a><h5>
+<a name="id736793"></a>
+ <a href="clear_value.html#spirit.advanced.customize.clear_value.when_to_implement">When
+ to Implement</a>
+ </h5>
+<p>
+ The customization point <tt class="computeroutput"><span class="identifier">clear_value</span></tt>
+ needs to be implemented for a specific type whenever this type is to be
+ used as an attribute to be stored into a STL container and if the type
+ cannot be re-initialized using one of the specializations listed above.
+ Examples for this might be types not being default constructible or container
+ types not exposing a member function <tt class="computeroutput"><span class="identifier">clear</span><span class="special">()</span></tt>.
+ </p>
+<a name="spirit.advanced.customize.clear_value.example"></a><h5>
+<a name="id736858"></a>
+ Example
+ </h5>
+<p>
+ TBD
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="store_value/push_back.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="extract_from.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: trunk/libs/spirit/doc/html/spirit/advanced/customize/extract_from.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/html/spirit/advanced/customize/extract_from.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -0,0 +1,303 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Extract an
+ Attribute Value to Generate Output (Karma)</title>
+<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
+<link rel="up" href="../customize.html" title=" Customization of Spirit's
+ Attribute Handling">
+<link rel="previous" href="clear_value.html" title=" Re-Initialize
+ an Attribute Value before Parsing (Qi)">
+<link rel="next" href="../../support.html" title=" Supporting libraries">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="clear_value.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../support.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.advanced.customize.extract_from"></a><a href="extract_from.html" title=" Extract an
+ Attribute Value to Generate Output (Karma)"> Extract an
+ Attribute Value to Generate Output (Karma)</a>
+</h4></div></div>
+<div></div>
+</div>
+<a name="spirit.advanced.customize.extract_from.extract_from"></a><h5>
+<a name="id736907"></a>
+ extract_from
+ </h5>
+<p>
+ Before generating output for an value this value needs to extracted from
+ the attribute instance provided by the user. The customization point <tt class="computeroutput"><span class="identifier">extract_from</span></tt> is utilized to adapt this
+ extraction for any data type possibly used to store the values to output.
+ </p>
+<p>
+ Short description here...
+ </p>
+<a name="spirit.advanced.customize.extract_from.module_headers"></a><h5>
+<a name="id736957"></a>
+ <a href="extract_from.html#spirit.advanced.customize.extract_from.module_headers">Module
+ Headers</a>
+ </h5>
+<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">home</span><span class="special">/</span><span class="identifier">karma</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">extract_from</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ Also, see Include Structure.
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td colspan="2" align="left" valign="top"><p>
+ This header file does not need to be included directly by any user program
+ as it is normally included by other Spirit header files relying on its
+ content.
+ </p></td></tr>
+</table></div>
+<a name="spirit.advanced.customize.extract_from.namespace"></a><h5>
+<a name="id737096"></a>
+ Namespace
+ </h5>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<thead><tr><th><p>
+ Name
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></tt>
+ </p></td></tr></tbody>
+</table></div>
+<a name="spirit.advanced.customize.extract_from.synopsis"></a><h5>
+<a name="id737193"></a>
+ Synopsis
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Attrib</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">extract_from_attribute</span><span class="special">;</span>
+</pre>
+<a name="spirit.advanced.customize.extract_from.template_parameters"></a><h5>
+<a name="id737287"></a>
+ <a href="extract_from.html#spirit.advanced.customize.extract_from.template_parameters">Template
+ parameters</a>
+ </h5>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Parameter
+ </p></th>
+<th><p>
+ Description
+ </p></th>
+<th><p>
+ Default
+ </p></th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ </p></td>
+<td><p>
+ The type, <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ of the attribute to be used to generate output from.
+ </p></td>
+<td><p>
+ none
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Enable</span></tt>
+ </p></td>
+<td><p>
+ Helper template parameter usable to selectively enable or disable
+ certain specializations of <tt class="computeroutput"><span class="identifier">clear_value</span></tt>
+ utilizing SFINAE (i.e. <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></tt>
+ or <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></tt>).
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">void</span></tt>
+ </p></td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.extract_from.notation"></a><h5>
+<a name="id737512"></a>
+ Notation
+ </h5>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Attrib</span></tt></span></dt>
+<dd><p>
+ A type to be used to generate output from.
+ </p></dd>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">attr</span></tt></span></dt>
+<dd><p>
+ A attribute instance of type <tt class="computeroutput"><span class="identifier">Attrib</span></tt>.
+ </p></dd>
+</dl>
+</div>
+<a name="spirit.advanced.customize.extract_from.expression_semantics"></a><h5>
+<a name="id737599"></a>
+ <a href="extract_from.html#spirit.advanced.customize.extract_from.expression_semantics">Expression
+ Semantics</a>
+ </h5>
+<p>
+ Semantics of an expression is defined only where it differs from, or is
+ not defined in _concept-of<span class="underline">XXX</span>.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Expression
+ </p></th>
+<th><p>
+ Semantics
+ </p></th>
+</tr></thead>
+<tbody><tr>
+<td>
+<p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">extract_from_attribute</span><span class="special"><</span><span class="identifier">Attrib</span><span class="special">>::</span><span class="identifier">call</span><span class="special">(</span><span class="identifier">attr</span><span class="special">)</span></pre>
+<p>
+ </p>
+</td>
+<td><p>
+ Extract the value to generate output from and return it to the
+ caller.
+ </p></td>
+</tr></tbody>
+</table></div>
+<a name="spirit.advanced.customize.extract_from.predefined_specializations"></a><h5>
+<a name="id737742"></a>
+ <a href="extract_from.html#spirit.advanced.customize.extract_from.predefined_specializations">Predefined
+ Specializations</a>
+ </h5>
+<p>
+ Spirit predefines specializations
+ of this customization point for several types. The following table lists
+ those types together with the types exposed and the corresponding semantics:
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Template Parameters
+ </p></th>
+<th><p>
+ Value
+ </p></th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ </p></td>
+<td><p>
+ The exposed typedef <tt class="computeroutput"><span class="identifier">type</span></tt>
+ is defined to <tt class="computeroutput"><span class="identifier">Attrib</span>
+ <span class="keyword">const</span><span class="special">&</span></tt>.
+ The function <tt class="computeroutput"><span class="identifier">call</span><span class="special">()</span></tt> returns the argument by reference
+ without change.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Attrib</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ The exposed typedef <tt class="computeroutput"><span class="identifier">type</span></tt>
+ is defined to <tt class="computeroutput"><span class="identifier">Attrib</span>
+ <span class="keyword">const</span><span class="special">&</span></tt>.
+ The function <tt class="computeroutput"><span class="identifier">call</span><span class="special">()</span></tt> returns the value held by the
+ <tt class="computeroutput"><span class="identifier">optional</span><span class="special"><></span></tt>
+ argument by reference without change.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">reference_wrapper</span><span class="special"><</span><span class="identifier">Attrib</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ The exposed typedef <tt class="computeroutput"><span class="identifier">type</span></tt>
+ is defined to <tt class="computeroutput"><span class="identifier">Attrib</span>
+ <span class="keyword">const</span><span class="special">&</span></tt>.
+ The function <tt class="computeroutput"><span class="identifier">call</span><span class="special">()</span></tt> returns the value held by the
+ <tt class="computeroutput"><span class="identifier">reference_wrapper</span><span class="special"><></span></tt> argument by reference without
+ change.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
+ </p></td>
+<td><p>
+ The exposed typedef <tt class="computeroutput"><span class="identifier">type</span></tt>
+ is defined to <tt class="computeroutput"><span class="identifier">unused_type</span></tt>.
+ The function <tt class="computeroutput"><span class="identifier">call</span><span class="special">()</span></tt> returns an instance of <tt class="computeroutput"><span class="identifier">unused_type</span></tt>.
+ </p></td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.extract_from.when_to_implement"></a><h5>
+<a name="id738237"></a>
+ <a href="extract_from.html#spirit.advanced.customize.extract_from.when_to_implement">When
+ to implement</a>
+ </h5>
+<p>
+ The customization point <tt class="computeroutput"><span class="identifier">extract_from_attribute</span></tt>
+ needs to be implemented for a specific type whenever the default implementation
+ as shown above is not applicable. Examples for this could be that the type
+ to be extracted is different from <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ and is not copy constructible.
+ </p>
+<a name="spirit.advanced.customize.extract_from.example"></a><h5>
+<a name="id738294"></a>
+ Example
+ </h5>
+<p>
+ TBD
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="clear_value.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../support.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: trunk/libs/spirit/doc/html/spirit/advanced/customize/is_container.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/html/spirit/advanced/customize/is_container.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -0,0 +1,439 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Determine
+ if a Type Should be Treated as a Container (Qi and Karma)</title>
+<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
+<link rel="up" href="../customize.html" title=" Customization of Spirit's
+ Attribute Handling">
+<link rel="previous" href="../customize.html" title=" Customization of Spirit's
+ Attribute Handling">
+<link rel="next" href="transform.html" title=" Transform an
+ Attribute to a Different Type (Qi and Karma)">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../customize.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="transform.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.advanced.customize.is_container"></a><a href="is_container.html" title=" Determine
+ if a Type Should be Treated as a Container (Qi and Karma)"> Determine
+ if a Type Should be Treated as a Container (Qi and Karma)</a>
+</h4></div></div>
+<div></div>
+</div>
+<a name="spirit.advanced.customize.is_container.is_container"></a><h5>
+<a name="id725294"></a>
+ is_container
+ </h5>
+<p>
+ The template <tt class="computeroutput"><span class="identifier">is_container</span></tt>
+ is a template meta-function used as an attribute customization point. It
+ is invoked by the <span class="emphasis"><em>Qi</em></span> <a href="../../qi/reference/operator/sequence.html" title=" Sequence
+ (a >>
+ b)">Sequence</a>
+ (<tt class="computeroutput"><span class="special">>></span></tt>) and <span class="emphasis"><em>Karma</em></span>
+ <a href="../../karma/reference/operator/sequence.html" title=" Sequences
+ (a <<
+ b)">Sequence (<tt class="computeroutput"><span class="special"><<</span></tt>)</a> operators in order to determine
+ whether a supplied attribute can potentially be treated as a container.
+ </p>
+<a name="spirit.advanced.customize.is_container.header"></a><h5>
+<a name="id725389"></a>
+ Header
+ </h5>
+<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">home</span><span class="special">/</span><span class="identifier">support</span><span class="special">/</span><span class="identifier">container</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ Also, see Include Structure.
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td colspan="2" align="left" valign="top"><p>
+ This header file does not need to be included directly by any user program
+ as it is normally included by other Spirit header files relying on its
+ content.
+ </p></td></tr>
+</table></div>
+<a name="spirit.advanced.customize.is_container.namespace"></a><h5>
+<a name="id725515"></a>
+ Namespace
+ </h5>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<thead><tr><th><p>
+ Name
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></tt>
+ </p></td></tr></tbody>
+</table></div>
+<a name="spirit.advanced.customize.is_container.synopsis"></a><h5>
+<a name="id725612"></a>
+ Synopsis
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">is_container</span><span class="special">;</span>
+</pre>
+<a name="spirit.advanced.customize.is_container.template_parameters"></a><h5>
+<a name="id725707"></a>
+ <a href="is_container.html#spirit.advanced.customize.is_container.template_parameters">Template
+ parameters</a>
+ </h5>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Parameter
+ </p></th>
+<th><p>
+ Description
+ </p></th>
+<th><p>
+ Default
+ </p></th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Container</span></tt>
+ </p></td>
+<td><p>
+ The type, <tt class="computeroutput"><span class="identifier">Container</span></tt>
+ needs to be tested whether it has to be treated as a container
+ </p></td>
+<td><p>
+ none
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Enable</span></tt>
+ </p></td>
+<td><p>
+ Helper template parameter usable to selectively enable or disable
+ certain specializations of <tt class="computeroutput"><span class="identifier">is_container</span></tt>
+ utilizing SFINAE (i.e. <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></tt>
+ or <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></tt>).
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">void</span></tt>
+ </p></td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.is_container.notation"></a><h5>
+<a name="id725932"></a>
+ Notation
+ </h5>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">C</span></tt></span></dt>
+<dd><p>
+ A type to be tested whether it needs to be treated as a container.
+ </p></dd>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">T1</span></tt>,
+ <tt class="computeroutput"><span class="identifier">T2</span></tt>, ...</span></dt>
+<dd><p>
+ Arbitrary types
+ </p></dd>
+</dl>
+</div>
+<a name="spirit.advanced.customize.is_container.expression_semantics"></a><h5>
+<a name="id726022"></a>
+ <a href="is_container.html#spirit.advanced.customize.is_container.expression_semantics">Expression
+ Semantics</a>
+ </h5>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Expression
+ </p></th>
+<th><p>
+ Semantics
+ </p></th>
+</tr></thead>
+<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">is_container</span><span class="special"><</span><span class="identifier">C</span><span class="special">>::</span><span class="identifier">type</span></tt>
+ </p></td>
+<td><p>
+ Metafunction that evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
+ if a given type, <tt class="computeroutput"><span class="identifier">C</span></tt>,
+ is to be treated as a container, <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>
+ otherwise (See <a href="../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
+ Boolean Constant</a>).
+ </p></td>
+</tr></tbody>
+</table></div>
+<a name="spirit.advanced.customize.is_container.predefined_specializations"></a><h5>
+<a name="id726198"></a>
+ <a href="is_container.html#spirit.advanced.customize.is_container.predefined_specializations">Predefined
+ Specializations</a>
+ </h5>
+<p>
+ Spirit predefines specializations
+ of this customization point for several types. The following table lists
+ those types together with the conditions for which the corresponding specializations
+ will evaluate to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt> (see <a href="../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
+ Boolean Constant</a>):
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Template Parameters
+ </p></th>
+<th><p>
+ Value
+ </p></th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">T</span></tt>
+ </p></td>
+<td><p>
+ Returns <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt> if <tt class="computeroutput"><span class="identifier">T</span></tt>
+ has the following embedded types defined: <tt class="computeroutput"><span class="identifier">value_type</span></tt>,
+ <tt class="computeroutput"><span class="identifier">iterator</span></tt>, <tt class="computeroutput"><span class="identifier">size_type</span></tt>, and<tt class="computeroutput"><span class="identifier">reference</span></tt>.
+ Otherwise it will return <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Returns <tt class="computeroutput"><span class="identifier">is_container</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant</span><span class="special"><</span><span class="identifier">T1</span><span class="special">,</span>
+ <span class="identifier">T2</span><span class="special">,</span>
+ <span class="special">...></span></tt>
+ </p></td>
+<td><p>
+ Returns <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt> if at least one of the
+ <tt class="computeroutput"><span class="identifier">is_container</span><span class="special"><</span><span class="identifier">TN</span><span class="special">>::</span><span class="identifier">type</span></tt> returns <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
+ (where <tt class="computeroutput"><span class="identifier">TN</span></tt> is <tt class="computeroutput"><span class="identifier">T1</span></tt>, <tt class="computeroutput"><span class="identifier">T2</span></tt>,
+ ...). Otherwise it will return <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
+ </p></td>
+<td><p>
+ Returns <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>.
+ </p></td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.is_container.when_to_implement"></a><h5>
+<a name="id726779"></a>
+ <a href="is_container.html#spirit.advanced.customize.is_container.when_to_implement">When
+ to implement</a>
+ </h5>
+<p>
+ The customization point <tt class="computeroutput"><span class="identifier">is_container</span></tt>
+ needs to be implemented for a specific type whenever this type is to be
+ used as an attribute in place of a STL container. It is applicable for
+ parsers (<span class="emphasis"><em>Spirit.Qi</em></span>) and generators (<span class="emphasis"><em>Spirit.Karma</em></span>).
+ As a rule of thumb: it has to be implemented whenever a certain type is
+ to be passed as an attribute to a parser or a generator normally exposing
+ a STL container and if the type does not expose the interface of a STL
+ container (i.e. <tt class="computeroutput"><span class="identifier">is_container</span><span class="special"><</span><span class="identifier">C</span><span class="special">>::</span><span class="identifier">type</span></tt>
+ would normally return <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>).
+ These components have an attribute propagation rule in the form:
+ </p>
+<pre class="programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">Op</span><span class="special">(</span><span class="identifier">a</span><span class="special">):</span> <span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span>
+</pre>
+<p>
+ where <tt class="computeroutput"><span class="identifier">Op</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></tt> stands
+ for any meaningful operation on the component <tt class="computeroutput"><span class="identifier">a</span></tt>.
+ </p>
+<a name="spirit.advanced.customize.is_container.related_attribute_customization_points"></a><h5>
+<a name="id727008"></a>
+ <a href="is_container.html#spirit.advanced.customize.is_container.related_attribute_customization_points">Related
+ Attribute Customization Points</a>
+ </h5>
+<p>
+ If this customization point is implemented, the following other customization
+ points need to be implemented as well.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Name
+ </p></th>
+<th><p>
+ When to implement
+ </p></th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>
+ <a href="store_value/container_value.html" title="
+ Determine the Type to be Stored in a Container (Qi)"><tt class="computeroutput"><span class="identifier">container_value</span></tt></a>
+ </p></td>
+<td><p>
+ Needs to be implemented whenever <tt class="computeroutput"><span class="identifier">is_container</span></tt>
+ is implemented.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="store_value/push_back.html" title="
+ Store a Parsed Attribute Value into a Container (Qi)"><tt class="computeroutput"><span class="identifier">push_back_container</span></tt></a>
+ </p></td>
+<td><p>
+ Qi: List,
+ Kleene,
+ Plus,
+ <a href="../../qi/reference/directive/repeat.html" title=" Repetition
+ (repeat[])">Repeat</a>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">container_iterator</span></tt>
+ </p></td>
+<td><p>
+ Karma: <a href="../../karma/reference/operator/list.html" title=" Lists (a % b)">List
+ (<tt class="computeroutput"><span class="special">%</span></tt>)</a>, <a href="../../karma/reference/operator/kleene.html" title=" Kleene Star
+ (*a)">Kleene (unary
+ <tt class="computeroutput"><span class="special">*</span></tt>)</a>, <a href="../../karma/reference/operator/plus.html" title=" Plus (+a)">Plus
+ (unary <tt class="computeroutput"><span class="special">+</span></tt>)</a>,
+ <a href="../../karma/reference/directive/repeat.html" title=" Repetition
+ Directive (repeat[])">Repeat</a>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">begin_container</span></tt>
+ </p></td>
+<td><p>
+ Karma: <a href="../../karma/reference/operator/list.html" title=" Lists (a % b)">List
+ (<tt class="computeroutput"><span class="special">%</span></tt>)</a>, <a href="../../karma/reference/operator/kleene.html" title=" Kleene Star
+ (*a)">Kleene (unary
+ <tt class="computeroutput"><span class="special">*</span></tt>)</a>, <a href="../../karma/reference/operator/plus.html" title=" Plus (+a)">Plus
+ (unary <tt class="computeroutput"><span class="special">+</span></tt>)</a>,
+ <a href="../../karma/reference/directive/repeat.html" title=" Repetition
+ Directive (repeat[])">Repeat</a>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">end_container</span></tt>
+ </p></td>
+<td><p>
+ Karma: <a href="../../karma/reference/operator/list.html" title=" Lists (a % b)">List
+ (<tt class="computeroutput"><span class="special">%</span></tt>)</a>, <a href="../../karma/reference/operator/kleene.html" title=" Kleene Star
+ (*a)">Kleene (unary
+ <tt class="computeroutput"><span class="special">*</span></tt>)</a>, <a href="../../karma/reference/operator/plus.html" title=" Plus (+a)">Plus
+ (unary <tt class="computeroutput"><span class="special">+</span></tt>)</a>,
+ <a href="../../karma/reference/directive/repeat.html" title=" Repetition
+ Directive (repeat[])">Repeat</a>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">deref_iterator</span></tt>
+ </p></td>
+<td><p>
+ Karma: <a href="../../karma/reference/operator/list.html" title=" Lists (a % b)">List
+ (<tt class="computeroutput"><span class="special">%</span></tt>)</a>, <a href="../../karma/reference/operator/kleene.html" title=" Kleene Star
+ (*a)">Kleene (unary
+ <tt class="computeroutput"><span class="special">*</span></tt>)</a>, <a href="../../karma/reference/operator/plus.html" title=" Plus (+a)">Plus
+ (unary <tt class="computeroutput"><span class="special">+</span></tt>)</a>,
+ <a href="../../karma/reference/directive/repeat.html" title=" Repetition
+ Directive (repeat[])">Repeat</a>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">next_iterator</span></tt>
+ </p></td>
+<td><p>
+ Karma: <a href="../../karma/reference/operator/list.html" title=" Lists (a % b)">List
+ (<tt class="computeroutput"><span class="special">%</span></tt>)</a>, <a href="../../karma/reference/operator/kleene.html" title=" Kleene Star
+ (*a)">Kleene (unary
+ <tt class="computeroutput"><span class="special">*</span></tt>)</a>, <a href="../../karma/reference/operator/plus.html" title=" Plus (+a)">Plus
+ (unary <tt class="computeroutput"><span class="special">+</span></tt>)</a>,
+ <a href="../../karma/reference/directive/repeat.html" title=" Repetition
+ Directive (repeat[])">Repeat</a>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">compare_iterators</span></tt>
+ </p></td>
+<td><p>
+ Karma: <a href="../../karma/reference/operator/list.html" title=" Lists (a % b)">List
+ (<tt class="computeroutput"><span class="special">%</span></tt>)</a>, <a href="../../karma/reference/operator/kleene.html" title=" Kleene Star
+ (*a)">Kleene (unary
+ <tt class="computeroutput"><span class="special">*</span></tt>)</a>, <a href="../../karma/reference/operator/plus.html" title=" Plus (+a)">Plus
+ (unary <tt class="computeroutput"><span class="special">+</span></tt>)</a>,
+ <a href="../../karma/reference/directive/repeat.html" title=" Repetition
+ Directive (repeat[])">Repeat</a>.
+ </p></td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.is_container.example"></a><h5>
+<a name="id727794"></a>
+ Example
+ </h5>
+<p>
+ TBD
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../customize.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="transform.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: trunk/libs/spirit/doc/html/spirit/advanced/customize/store_value.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/html/spirit/advanced/customize/store_value.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -0,0 +1,70 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Store Parsed
+ Attribute Values into a Container (Qi)</title>
+<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
+<link rel="up" href="../customize.html" title=" Customization of Spirit's
+ Attribute Handling">
+<link rel="previous" href="assign_to/assign_to_attribute_from_value.html" title="
+ Store an Attribute Value after a Parser Produced a Value (Qi)">
+<link rel="next" href="store_value/container_value.html" title="
+ Determine the Type to be Stored in a Container (Qi)">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="assign_to/assign_to_attribute_from_value.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="store_value/container_value.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.advanced.customize.store_value"></a><a href="store_value.html" title=" Store Parsed
+ Attribute Values into a Container (Qi)"> Store Parsed
+ Attribute Values into a Container (Qi)</a>
+</h4></div></div>
+<div></div>
+</div>
+<div class="toc"><dl>
+<dt><span class="section"><a href="store_value/container_value.html">
+ Determine the Type to be Stored in a Container (Qi)</a></span></dt>
+<dt><span class="section"><a href="store_value/push_back.html">
+ Store a Parsed Attribute Value into a Container (Qi)</a></span></dt>
+</dl></div>
+<p>
+ In order to customize Spirit to accept a given data type as a container
+ for elements parsed by any of the repetitive parsers (Kleene,
+ Plus, List,
+ and <a href="../../qi/reference/directive/repeat.html" title=" Repetition
+ (repeat[])">Repeat</a>)
+ two attribute customization points have to be specialized: <a href="store_value/container_value.html" title="
+ Determine the Type to be Stored in a Container (Qi)"><tt class="computeroutput"><span class="identifier">container_value</span></tt></a> and <a href="store_value/push_back.html" title="
+ Store a Parsed Attribute Value into a Container (Qi)"><tt class="computeroutput"><span class="identifier">push_back_container</span></tt></a>. This section
+ describes both.
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="assign_to/assign_to_attribute_from_value.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="store_value/container_value.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: trunk/libs/spirit/doc/html/spirit/advanced/customize/store_value/container_value.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/html/spirit/advanced/customize/store_value/container_value.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -0,0 +1,351 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ Determine the Type to be Stored in a Container (Qi)</title>
+<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<link rel="home" href="../../../../index.html" title="Spirit 2.1">
+<link rel="up" href="../store_value.html" title=" Store Parsed
+ Attribute Values into a Container (Qi)">
+<link rel="previous" href="../store_value.html" title=" Store Parsed
+ Attribute Values into a Container (Qi)">
+<link rel="next" href="push_back.html" title="
+ Store a Parsed Attribute Value into a Container (Qi)">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../store_value.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../store_value.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="push_back.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.advanced.customize.store_value.container_value"></a><a href="container_value.html" title="
+ Determine the Type to be Stored in a Container (Qi)">
+ Determine the Type to be Stored in a Container (Qi)</a>
+</h5></div></div>
+<div></div>
+</div>
+<a name="spirit.advanced.customize.store_value.container_value.container_value"></a><h6>
+<a name="id731482"></a>
+ container_value
+ </h6>
+<p>
+ The template <tt class="computeroutput"><span class="identifier">container_value</span></tt>
+ is a template meta function used as an attribute customization point.
+ It is invoked by the <span class="emphasis"><em>Qi</em></span> repetitive parsers (Kleene, Plus,
+ List, and <a href="../../../qi/reference/directive/repeat.html" title=" Repetition
+ (repeat[])">Repeat</a>) to determine
+ the type to store in a container.
+ </p>
+<a name="spirit.advanced.customize.store_value.container_value.module_headers"></a><h6>
+<a name="id731566"></a>
+ <a href="container_value.html#spirit.advanced.customize.store_value.container_value.module_headers">Module
+ Headers</a>
+ </h6>
+<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">home</span><span class="special">/</span><span class="identifier">support</span><span class="special">/</span><span class="identifier">container</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ Also, see Include Structure.
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td colspan="2" align="left" valign="top"><p>
+ This header file does not need to be included directly by any user
+ program as it is normally included by other Spirit header files relying
+ on its content.
+ </p></td></tr>
+</table></div>
+<a name="spirit.advanced.customize.store_value.container_value.namespace"></a><h6>
+<a name="id731696"></a>
+ Namespace
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<thead><tr><th><p>
+ Name
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></tt>
+ </p></td></tr></tbody>
+</table></div>
+<a name="spirit.advanced.customize.store_value.container_value.synopsis"></a><h6>
+<a name="id731792"></a>
+ Synopsis
+ </h6>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">container_value</span><span class="special">;</span>
+</pre>
+<a name="spirit.advanced.customize.store_value.container_value.template_parameters"></a><h6>
+<a name="id731890"></a>
+ <a href="container_value.html#spirit.advanced.customize.store_value.container_value.template_parameters">Template
+ parameters</a>
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Parameter
+ </p></th>
+<th><p>
+ Description
+ </p></th>
+<th><p>
+ Default
+ </p></th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Container</span></tt>
+ </p></td>
+<td><p>
+ The type, <tt class="computeroutput"><span class="identifier">Container</span></tt>
+ needs to be tested whether it has to be treated as a container
+ </p></td>
+<td><p>
+ none
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Enable</span></tt>
+ </p></td>
+<td><p>
+ Helper template parameter usable to selectively enable or disable
+ certain specializations of <tt class="computeroutput"><span class="identifier">container_value</span></tt>
+ utilizing SFINAE (i.e. <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></tt>
+ or <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></tt>).
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">void</span></tt>
+ </p></td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.store_value.container_value.notation"></a><h6>
+<a name="id732114"></a>
+ Notation
+ </h6>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">C</span></tt></span></dt>
+<dd><p>
+ A type to be tested whether it needs to be treated as a container.
+ </p></dd>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">T1</span></tt>,
+ <tt class="computeroutput"><span class="identifier">T2</span></tt>, ...</span></dt>
+<dd><p>
+ Arbitrary types
+ </p></dd>
+</dl>
+</div>
+<a name="spirit.advanced.customize.store_value.container_value.expression_semantics"></a><h6>
+<a name="id732206"></a>
+ <a href="container_value.html#spirit.advanced.customize.store_value.container_value.expression_semantics">Expression
+ Semantics</a>
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Expression
+ </p></th>
+<th><p>
+ Semantics
+ </p></th>
+</tr></thead>
+<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">container_value</span><span class="special"><</span><span class="identifier">C</span><span class="special">>::</span><span class="identifier">type</span></tt>
+ </p></td>
+<td><p>
+ Metafunction that evaluates to the type to be stored in a given
+ container type, <tt class="computeroutput"><span class="identifier">C</span></tt>.
+ </p></td>
+</tr></tbody>
+</table></div>
+<a name="spirit.advanced.customize.store_value.container_value.predefined_specializations"></a><h6>
+<a name="id732332"></a>
+ <a href="container_value.html#spirit.advanced.customize.store_value.container_value.predefined_specializations">Predefined
+ Specializations</a>
+ </h6>
+<p>
+ Spirit predefines
+ specializations of this customization point for several types. The following
+ table lists those types together with the types exposed and the corresponding
+ semantics:
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Template Parameters
+ </p></th>
+<th><p>
+ Value
+ </p></th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">C</span></tt>
+ </p></td>
+<td><p>
+ The non-const <tt class="computeroutput"><span class="identifier">value_type</span></tt>
+ of the given container type, <tt class="computeroutput"><span class="identifier">C</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">C</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Returns <tt class="computeroutput"><span class="identifier">container_value</span><span class="special"><</span><span class="identifier">C</span><span class="special">>::</span><span class="identifier">type</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant</span><span class="special"><</span><span class="identifier">T1</span><span class="special">,</span>
+ <span class="identifier">T2</span><span class="special">,</span>
+ <span class="special">...></span></tt>
+ </p></td>
+<td><p>
+ Returns <tt class="computeroutput"><span class="identifier">container_value</span><span class="special"><</span><span class="identifier">TN</span><span class="special">>::</span><span class="identifier">value</span></tt>
+ for the first <tt class="computeroutput"><span class="identifier">TN</span></tt>
+ (out of <tt class="computeroutput"><span class="identifier">T1</span></tt>,
+ <tt class="computeroutput"><span class="identifier">T2</span></tt>, ...) for
+ which <tt class="computeroutput"><span class="identifier">is_container</span><span class="special"><</span><span class="identifier">TN</span><span class="special">>::</span><span class="identifier">type</span></tt>
+ evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>.
+ Otherwise it will return <tt class="computeroutput"><span class="identifier">unused_type</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
+ </p></td>
+<td><p>
+ Returns <tt class="computeroutput"><span class="identifier">unused_type</span></tt>.
+ </p></td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.store_value.container_value.when_to_implement"></a><h6>
+<a name="id732797"></a>
+ <a href="container_value.html#spirit.advanced.customize.store_value.container_value.when_to_implement">When
+ to implement</a>
+ </h6>
+<p>
+ The customization point <tt class="computeroutput"><span class="identifier">is_container</span></tt>
+ needs to be implemented for a specific type whenever this type is to
+ be used as an attribute in place of a STL container. It is applicable
+ for parsers (<span class="emphasis"><em>Spirit.Qi</em></span>) only. As a rule of thumb:
+ it has to be implemented whenever a certain type is to be passed as an
+ attribute to a parser normally exposing a STL container and if the type
+ does not expose the interface of a STL container (i.e. no embedded typedef
+ for <tt class="computeroutput"><span class="identifier">value_type</span></tt>). These
+ components have an attribute propagation rule in the form:
+ </p>
+<pre class="programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">Op</span><span class="special">(</span><span class="identifier">a</span><span class="special">):</span> <span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span>
+</pre>
+<p>
+ where <tt class="computeroutput"><span class="identifier">Op</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></tt>
+ stands for any meaningful operation on the component <tt class="computeroutput"><span class="identifier">a</span></tt>.
+ </p>
+<a name="spirit.advanced.customize.store_value.container_value.related_attribute_customization_points"></a><h6>
+<a name="id732979"></a>
+ <a href="container_value.html#spirit.advanced.customize.store_value.container_value.related_attribute_customization_points">Related
+ Attribute Customization Points</a>
+ </h6>
+<p>
+ If this customization point is implemented, the following other customization
+ points need to be implemented as well.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Name
+ </p></th>
+<th><p>
+ When to implement
+ </p></th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>
+ <a href="push_back.html" title="
+ Store a Parsed Attribute Value into a Container (Qi)"><tt class="computeroutput"><span class="identifier">push_back_container</span></tt></a>
+ </p></td>
+<td><p>
+ Qi: List,
+ Kleene,
+ Plus,
+ <a href="../../../qi/reference/directive/repeat.html" title=" Repetition
+ (repeat[])">Repeat</a>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../clear_value.html" title=" Re-Initialize
+ an Attribute Value before Parsing (Qi)"><tt class="computeroutput"><span class="identifier">clear_value</span></tt></a>
+ </p></td>
+<td><p>
+ Qi: List,
+ Kleene,
+ Plus,
+ <a href="../../../qi/reference/directive/repeat.html" title=" Repetition
+ (repeat[])">Repeat</a>.
+ </p></td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.store_value.container_value.example"></a><h6>
+<a name="id733194"></a>
+ Example
+ </h6>
+<p>
+ TBD
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../store_value.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../store_value.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="push_back.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: trunk/libs/spirit/doc/html/spirit/advanced/customize/store_value/push_back.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/html/spirit/advanced/customize/store_value/push_back.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -0,0 +1,395 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+ Store a Parsed Attribute Value into a Container (Qi)</title>
+<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<link rel="home" href="../../../../index.html" title="Spirit 2.1">
+<link rel="up" href="../store_value.html" title=" Store Parsed
+ Attribute Values into a Container (Qi)">
+<link rel="previous" href="container_value.html" title="
+ Determine the Type to be Stored in a Container (Qi)">
+<link rel="next" href="../clear_value.html" title=" Re-Initialize
+ an Attribute Value before Parsing (Qi)">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="container_value.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../store_value.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../clear_value.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.advanced.customize.store_value.push_back"></a><a href="push_back.html" title="
+ Store a Parsed Attribute Value into a Container (Qi)">
+ Store a Parsed Attribute Value into a Container (Qi)</a>
+</h5></div></div>
+<div></div>
+</div>
+<a name="spirit.advanced.customize.store_value.push_back.push_back_container"></a><h6>
+<a name="id733245"></a>
+ push_back_container
+ </h6>
+<p>
+ The template <tt class="computeroutput"><span class="identifier">push_back_container</span></tt>
+ is a type used as an attribute customization point. It is invoked by
+ the <span class="emphasis"><em>Qi</em></span> repetitive parsers (Kleene,
+ Plus, List, and <a href="../../../qi/reference/directive/repeat.html" title=" Repetition
+ (repeat[])">Repeat</a>)
+ to store a parsed attribute value into a container.
+ </p>
+<a name="spirit.advanced.customize.store_value.push_back.module_headers"></a><h6>
+<a name="id733328"></a>
+ <a href="push_back.html#spirit.advanced.customize.store_value.push_back.module_headers">Module
+ Headers</a>
+ </h6>
+<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">home</span><span class="special">/</span><span class="identifier">support</span><span class="special">/</span><span class="identifier">container</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ Also, see Include Structure.
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td colspan="2" align="left" valign="top"><p>
+ This header file does not need to be included directly by any user
+ program as it is normally included by other Spirit header files relying
+ on its content.
+ </p></td></tr>
+</table></div>
+<a name="spirit.advanced.customize.store_value.push_back.namespace"></a><h6>
+<a name="id733457"></a>
+ Namespace
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<thead><tr><th><p>
+ Name
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></tt>
+ </p></td></tr></tbody>
+</table></div>
+<a name="spirit.advanced.customize.store_value.push_back.synopsis"></a><h6>
+<a name="id733554"></a>
+ Synopsis
+ </h6>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Attrib</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Enable</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">push_back_container</span><span class="special">;</span>
+</pre>
+<a name="spirit.advanced.customize.store_value.push_back.template_parameters"></a><h6>
+<a name="id733668"></a>
+ <a href="push_back.html#spirit.advanced.customize.store_value.push_back.template_parameters">Template
+ parameters</a>
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Parameter
+ </p></th>
+<th><p>
+ Description
+ </p></th>
+<th><p>
+ Default
+ </p></th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Container</span></tt>
+ </p></td>
+<td><p>
+ The type, <tt class="computeroutput"><span class="identifier">Container</span></tt>
+ needs to be tested whether it has to be treated as a container
+ </p></td>
+<td><p>
+ none
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ </p></td>
+<td><p>
+ The type, <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ is the one returned from the customization point <a href="container_value.html" title="
+ Determine the Type to be Stored in a Container (Qi)"><tt class="computeroutput"><span class="identifier">container_value</span></tt></a> and
+ represents the attribute value to be stored in the container
+ of type <tt class="computeroutput"><span class="identifier">Container</span></tt>.
+ </p></td>
+<td><p>
+ none
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Enable</span></tt>
+ </p></td>
+<td><p>
+ Helper template parameter usable to selectively enable or disable
+ certain specializations of <tt class="computeroutput"><span class="identifier">push_back_container</span></tt>
+ utilizing SFINAE (i.e. <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</span></tt>
+ or <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">disable_if</span></tt>).
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">void</span></tt>
+ </p></td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.store_value.push_back.notation"></a><h6>
+<a name="id733974"></a>
+ Notation
+ </h6>
+<div class="variablelist">
+<p class="title"><b></b></p>
+<dl>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">C</span></tt></span></dt>
+<dd><p>
+ A type to be used as a container to store attribute values in.
+ </p></dd>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">c</span></tt></span></dt>
+<dd>
+<p>
+ A container instance of type <tt class="computeroutput"><span class="identifier">C</span></tt>.
+ </p>
+<p>
+ [<tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ </p>
+<p>
+ A type to be used as a container to store attribute values in.
+ </p>
+</dd>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">attr</span></tt></span></dt>
+<dd><p>
+ A attribute instance of type <tt class="computeroutput"><span class="identifier">Attrib</span></tt>.
+ </p></dd>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">T1</span></tt>,
+ <tt class="computeroutput"><span class="identifier">T2</span></tt>, ...</span></dt>
+<dd><p>
+ Arbitrary types
+ </p></dd>
+</dl>
+</div>
+<a name="spirit.advanced.customize.store_value.push_back.expression_semantics"></a><h6>
+<a name="id734163"></a>
+ <a href="push_back.html#spirit.advanced.customize.store_value.push_back.expression_semantics">Expression
+ Semantics</a>
+ </h6>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Expression
+ </p></th>
+<th><p>
+ Semantics
+ </p></th>
+</tr></thead>
+<tbody><tr>
+<td>
+<p>
+
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">push_back_container</span><span class="special"><</span><span class="identifier">C</span><span class="special">,</span> <span class="identifier">Attrib</span><span class="special">>::</span><span class="identifier">call</span><span class="special">(</span><span class="identifier">c</span><span class="special">,</span> <span class="identifier">attr</span><span class="special">)</span></pre>
+<p>
+ </p>
+</td>
+<td><p>
+ Static function that is invoked whenever an attribute value,
+ <tt class="computeroutput"><span class="identifier">attr</span></tt> needs to
+ be stored into the container instance <tt class="computeroutput"><span class="identifier">c</span></tt>.
+ </p></td>
+</tr></tbody>
+</table></div>
+<a name="spirit.advanced.customize.store_value.push_back.predefined_specializations"></a><h6>
+<a name="id734338"></a>
+ <a href="push_back.html#spirit.advanced.customize.store_value.push_back.predefined_specializations">Predefined
+ Specializations</a>
+ </h6>
+<p>
+ Spirit predefines
+ specializations of this customization point for several types. The following
+ table lists those types together with the types exposed and the corresponding
+ semantics:
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Template Parameters
+ </p></th>
+<th><p>
+ Value
+ </p></th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">C</span></tt>, <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ </p></td>
+<td><p>
+ Store the provided attribute instance <tt class="computeroutput"><span class="identifier">attr</span></tt>
+ into the given container <tt class="computeroutput"><span class="identifier">c</span></tt>
+ using the function call <tt class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">attr</span><span class="special">)</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">C</span><span class="special">></span></tt>,
+ <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ </p></td>
+<td><p>
+ If the provided instance of <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></tt> is not initialized, invoke
+ the appropriate initialization and afterwards apply the customization
+ point <tt class="computeroutput"><span class="identifier">push_back_container</span><span class="special"><</span><span class="identifier">C</span><span class="special">,</span> <span class="identifier">Attrib</span><span class="special">></span></tt>, treating the instance held
+ by the optional (of type <tt class="computeroutput"><span class="identifier">C</span></tt>)
+ as the container to store the attribute in.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant</span><span class="special"><</span><span class="identifier">T1</span><span class="special">,</span>
+ <span class="identifier">T2</span><span class="special">,</span>
+ <span class="special">...></span></tt>, <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ </p></td>
+<td><p>
+ If the instance of the variant currently holds a value with a
+ type, <tt class="computeroutput"><span class="identifier">TN</span></tt>, for
+ which <tt class="computeroutput"><span class="identifier">is_container</span><span class="special"><</span><span class="identifier">TN</span><span class="special">>::</span><span class="identifier">type</span></tt>
+ evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>,
+ this customization point specialization will apply <tt class="computeroutput"><span class="identifier">push_back_container</span><span class="special"><</span><span class="identifier">TN</span><span class="special">,</span>
+ <span class="identifier">Attrib</span><span class="special">></span></tt>,
+ treating the instance held by the variant (of type <tt class="computeroutput"><span class="identifier">TN</span></tt>) as the container to store
+ the attribute in. Otherwise it will raise an assertion.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
+ </p></td>
+<td><p>
+ Do nothing.
+ </p></td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.store_value.push_back.when_to_implement"></a><h6>
+<a name="id734918"></a>
+ <a href="push_back.html#spirit.advanced.customize.store_value.push_back.when_to_implement">When
+ to Implement</a>
+ </h6>
+<p>
+ The customization point <tt class="computeroutput"><span class="identifier">push_back_container</span></tt>
+ needs to be implemented for a specific type whenever this type is to
+ be used as an attribute in place of a STL container. It is applicable
+ for parsers (<span class="emphasis"><em>Spirit.Qi</em></span>) only. As a rule of thumb:
+ it has to be implemented whenever a certain type is to be passed as an
+ attribute to a parser normally exposing a STL container and if the type
+ does not expose the interface of a STL container (i.e. no function being
+ equivalent to <tt class="computeroutput"><span class="identifier">c</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">c</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">attr</span><span class="special">)</span></tt>.
+ These components have an attribute propagation rule in the form:
+ </p>
+<pre class="programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">Op</span><span class="special">(</span><span class="identifier">a</span><span class="special">):</span> <span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span>
+</pre>
+<p>
+ where <tt class="computeroutput"><span class="identifier">Op</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></tt>
+ stands for any meaningful operation on the component <tt class="computeroutput"><span class="identifier">a</span></tt>.
+ </p>
+<a name="spirit.advanced.customize.store_value.push_back.related_attribute_customization_points"></a><h6>
+<a name="id735146"></a>
+ <a href="push_back.html#spirit.advanced.customize.store_value.push_back.related_attribute_customization_points">Related
+ Attribute Customization Points</a>
+ </h6>
+<p>
+ If this customization point is implemented, the following other customization
+ points need to be implemented as well.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Name
+ </p></th>
+<th><p>
+ When to implement
+ </p></th>
+</tr></thead>
+<tbody>
+<tr>
+<td><p>
+ <a href="container_value.html" title="
+ Determine the Type to be Stored in a Container (Qi)"><tt class="computeroutput"><span class="identifier">container_value</span></tt></a>
+ </p></td>
+<td><p>
+ Qi: List,
+ Kleene,
+ Plus,
+ <a href="../../../qi/reference/directive/repeat.html" title=" Repetition
+ (repeat[])">Repeat</a>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../clear_value.html" title=" Re-Initialize
+ an Attribute Value before Parsing (Qi)"><tt class="computeroutput"><span class="identifier">clear_value</span></tt></a>
+ </p></td>
+<td><p>
+ Qi: List,
+ Kleene,
+ Plus,
+ <a href="../../../qi/reference/directive/repeat.html" title=" Repetition
+ (repeat[])">Repeat</a>.
+ </p></td>
+</tr>
+</tbody>
+</table></div>
+<a name="spirit.advanced.customize.store_value.push_back.example"></a><h6>
+<a name="id735362"></a>
+ Example
+ </h6>
+<p>
+ TBD
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="container_value.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../store_value.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../clear_value.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: trunk/libs/spirit/doc/html/spirit/advanced/customize/transform.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/html/spirit/advanced/customize/transform.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -0,0 +1,243 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Transform an
+ Attribute to a Different Type (Qi and Karma)</title>
+<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
+<link rel="up" href="../customize.html" title=" Customization of Spirit's
+ Attribute Handling">
+<link rel="previous" href="is_container.html" title=" Determine
+ if a Type Should be Treated as a Container (Qi and Karma)">
+<link rel="next" href="assign_to.html" title=" Store a Parsed
+ Attribute Value (Qi)">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_container.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="assign_to.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.advanced.customize.transform"></a><a href="transform.html" title=" Transform an
+ Attribute to a Different Type (Qi and Karma)"> Transform an
+ Attribute to a Different Type (Qi and Karma)</a>
+</h4></div></div>
+<div></div>
+</div>
+<a name="spirit.advanced.customize.transform.transform_attribute"></a><h5>
+<a name="id727844"></a>
+ transform_attribute
+ </h5>
+<p>
+ Short description here...
+ </p>
+<a name="spirit.advanced.customize.transform.module_headers"></a><h5>
+<a name="id727873"></a>
+ <a href="transform.html#spirit.advanced.customize.transform.module_headers">Module
+ Headers</a>
+ </h5>
+<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">xxx</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
+</pre>
+<p>
+ Also, see Include Structure.
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td colspan="2" align="left" valign="top"><p>
+ This header file does not need to be included directly by any user program
+ as it is normally included by other Spirit header files relying on its
+ content.
+ </p></td></tr>
+</table></div>
+<a name="spirit.advanced.customize.transform.namespace"></a><h5>
+<a name="id727982"></a>
+ Namespace
+ </h5>
+<div class="informaltable"><table class="table">
+<colgroup><col></colgroup>
+<thead><tr><th><p>
+ Name
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">xxx</span></tt>
+ </p></td></tr></tbody>
+</table></div>
+<a name="spirit.advanced.customize.transform.synopsis"></a><h5>
+<a name="id728078"></a>
+ Synopsis
+ </h5>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">XXX</span><span class="special">;</span>
+</pre>
+<a name="spirit.advanced.customize.transform.template_parameters"></a><h5>
+<a name="id728154"></a>
+ <a href="transform.html#spirit.advanced.customize.transform.template_parameters">Template
+ parameters</a>
+ </h5>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Parameter
+ </p></th>
+<th><p>
+ Description
+ </p></th>
+<th><p>
+ Default
+ </p></th>
+</tr></thead>
+<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">T</span></tt>
+ </p></td>
+<td><p>
+ What is T
+ </p></td>
+<td><p>
+ </p></td>
+</tr></tbody>
+</table></div>
+<a name="spirit.advanced.customize.transform.notation"></a><h5>
+<a name="id728259"></a>
+ Notation
+ </h5>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">xxx</span></tt></span></dt>
+<dd><p>
+ An XXX
+ </p></dd>
+</dl>
+</div>
+<a name="spirit.advanced.customize.transform.expression_semantics"></a><h5>
+<a name="id728314"></a>
+ <a href="transform.html#spirit.advanced.customize.transform.expression_semantics">Expression
+ Semantics</a>
+ </h5>
+<p>
+ Semantics of an expression is defined only where it differs from, or is
+ not defined in _concept-of<span class="underline">XXX</span>.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Expression
+ </p></th>
+<th><p>
+ Semantics
+ </p></th>
+</tr></thead>
+<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">xxx</span></tt>
+ </p></td>
+<td><p>
+ Semantics of <tt class="computeroutput"><span class="identifier">xxx</span></tt>
+ </p></td>
+</tr></tbody>
+</table></div>
+<a name="spirit.advanced.customize.transform.predefined_specializations"></a><h5>
+<a name="id728429"></a>
+ <a href="transform.html#spirit.advanced.customize.transform.predefined_specializations">Predefined
+ Specializations</a>
+ </h5>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th><p>
+ Type
+ </p></th>
+<th><p>
+ Condition
+ </p></th>
+</tr></thead>
+<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">xxx</span></tt>
+ </p></td>
+<td><p>
+ when does it evaluate to mpl::true_
+ </p></td>
+</tr></tbody>
+</table></div>
+<a name="spirit.advanced.customize.transform.when_to_implement"></a><h5>
+<a name="id728520"></a>
+ <a href="transform.html#spirit.advanced.customize.transform.when_to_implement">When
+ to implement</a>
+ </h5>
+<p>
+ Describe when this customization point needs to be implemented by the user.
+ </p>
+<a name="spirit.advanced.customize.transform.related_attribute_customization_points"></a><h5>
+<a name="id728550"></a>
+ <a href="transform.html#spirit.advanced.customize.transform.related_attribute_customization_points">Related
+ Attribute Customization Points</a>
+ </h5>
+<p>
+ If this customization point is implemented, the following other customization
+ points need to be implemented as well.
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<tbody><tr>
+<td><p>
+ Name
+ </p></td>
+<td><p>
+ When to implement
+ </p></td>
+</tr></tbody>
+</table></div>
+<a name="spirit.advanced.customize.transform.example"></a><h5>
+<a name="id728616"></a>
+ Example
+ </h5>
+<p>
+ TBD
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_container.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../customize.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="assign_to.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: trunk/libs/spirit/doc/html/spirit/advanced/indepth.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/html/spirit/advanced/indepth.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -0,0 +1,50 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> In Depth</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<link rel="home" href="../../index.html" title="Spirit 2.1">
+<link rel="up" href="../advanced.html" title="Advanced">
+<link rel="previous" href="../advanced.html" title="Advanced">
+<link rel="next" href="indepth/parsers_indepth.html" title=" Parsers in
+ Depth">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../advanced.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../advanced.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="indepth/parsers_indepth.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h3 class="title">
+<a name="spirit.advanced.indepth"></a> In Depth
+</h3></div></div>
+<div></div>
+</div>
+<div class="toc"><dl><dt><span class="section"><a href="indepth/parsers_indepth.html"> Parsers in
+ Depth</a></span></dt></dl></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../advanced.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../advanced.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="indepth/parsers_indepth.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: trunk/libs/spirit/doc/html/spirit/advanced/indepth/parsers_indepth.html
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/html/spirit/advanced/indepth/parsers_indepth.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -0,0 +1,718 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Parsers in
+ Depth</title>
+<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
+<link rel="home" href="../../../index.html" title="Spirit 2.1">
+<link rel="up" href="../indepth.html" title=" In Depth">
+<link rel="previous" href="../indepth.html" title=" In Depth">
+<link rel="next" href="../customize.html" title=" Customization of Spirit's
+ Attribute Handling">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../indepth.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../indepth.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../customize.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.advanced.indepth.parsers_indepth"></a><a href="parsers_indepth.html" title=" Parsers in
+ Depth"> Parsers in
+ Depth</a>
+</h4></div></div>
+<div></div>
+</div>
+<p>
+ This section is not for the faint of heart. In here, are distilled the
+ inner workings of <span class="emphasis"><em>Spirit.Qi</em></span> parsers, using real code
+ from the Spirit library
+ as examples. On the other hand, here is no reason to fear reading on, though.
+ We tried to explain things step by step while highlighting the important
+ insights.
+ </p>
+<p>
+ The <tt class="computeroutput">Parser</tt> class is the base
+ class for all parsers.
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Derived</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">parser</span>
+<span class="special">{</span>
+ <span class="keyword">struct</span> <span class="identifier">parser_id</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">Derived</span> <span class="identifier">derived_type</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">domain</span> <span class="identifier">domain</span><span class="special">;</span>
+
+ <span class="comment">// Requirement: p.parse(f, l, context, skip, attr) -> bool
+</span> <span class="comment">//
+</span> <span class="comment">// p: a parser
+</span> <span class="comment">// f, l: first/last iterator pair
+</span> <span class="comment">// context: enclosing rule context (can be unused_type)
+</span> <span class="comment">// skip: skipper (can be unused_type)
+</span> <span class="comment">// attr: attribute (can be unused_type)
+</span>
+ <span class="comment">// Requirement: p.what(context) -> info
+</span> <span class="comment">//
+</span> <span class="comment">// p: a parser
+</span> <span class="comment">// context: enclosing rule context (can be unused_type)
+</span>
+ <span class="comment">// Requirement: P::template attribute<Ctx, Iter>::type
+</span> <span class="comment">//
+</span> <span class="comment">// P: a parser type
+</span> <span class="comment">// Ctx: A context type (can be unused_type)
+</span> <span class="comment">// Iter: An iterator type (can be unused_type)
+</span>
+ <span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">derived</span><span class="special">()</span> <span class="keyword">const</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="special">*</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">*>(</span><span class="keyword">this</span><span class="special">);</span>
+ <span class="special">}</span>
+<span class="special">};</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ The <tt class="computeroutput">Parser</tt> class does not really
+ know how to parse anything but instead relies on the template parameter
+ <tt class="computeroutput"><span class="identifier">Derived</span></tt> to do the actual
+ parsing. This technique is known as the "Curiously Recurring Template
+ Pattern" in template meta-programming circles. This inheritance strategy
+ gives us the power of polymorphism without the virtual function overhead.
+ In essence this is a way to implement compile time polymorphism.
+ </p>
+<p>
+ The Derived parsers, <tt class="computeroutput">PrimitiveParser</tt>, <tt class="computeroutput">UnaryParser</tt>, <tt class="computeroutput">BinaryParser</tt> and <tt class="computeroutput">NaryParser</tt> provide the
+ necessary facilities for parser detection, introspection, transformation
+ and visitation.
+ </p>
+<p>
+ Derived parsers must support the following:
+ </p>
+<div class="variablelist">
+<p class="title"><b>bool parse(f, l, context, skip, attr)</b></p>
+<dl>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">f</span></tt>, <tt class="computeroutput"><span class="identifier">l</span></tt></span></dt>
+<dd><p>
+ first/last iterator pair
+ </p></dd>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">context</span></tt></span></dt>
+<dd><p>
+ enclosing rule context (can be unused_type)
+ </p></dd>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">skip</span></tt></span></dt>
+<dd><p>
+ skipper (can be unused_type)
+ </p></dd>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">attr</span></tt></span></dt>
+<dd><p>
+ attribute (can be unused_type)
+ </p></dd>
+</dl>
+</div>
+<p>
+ The <span class="emphasis"><em>parse</em></span> is the main parser entry point. <span class="emphasis"><em>skipper</em></span>
+ can be an <tt class="computeroutput"><span class="identifier">unused_type</span></tt>.
+ It's a type used every where in Spirit
+ to signify "don't-care". There is an overload for <span class="emphasis"><em>skip</em></span>
+ for <tt class="computeroutput"><span class="identifier">unused_type</span></tt> that is
+ simply a no-op. That way, we do not have to write multiple parse functions
+ for phrase and character level parsing.
+ </p>
+<p>
+ Here are the basic rules for parsing:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ The parser returns <tt class="computeroutput"><span class="keyword">true</span></tt>
+ if successful, <tt class="computeroutput"><span class="keyword">false</span></tt> otherwise.
+ </li>
+<li>
+ If successful, <tt class="computeroutput"><span class="identifier">first</span></tt>
+ is incremented N number of times, where N is the number of characters
+ parsed. N can be zero --an empty (epsilon) match.
+ </li>
+<li>
+ If successful, the parsed attribute is assigned to <span class="emphasis"><em>attr</em></span>
+</li>
+<li>
+ If unsuccessful, <tt class="computeroutput"><span class="identifier">first</span></tt>
+ is reset to its position before entering the parser function. <span class="emphasis"><em>attr</em></span>
+ is untouched.
+ </li>
+</ul></div>
+<div class="variablelist">
+<p class="title"><b>void what(context)</b></p>
+<dl>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">context</span></tt></span></dt>
+<dd><p>
+ enclosing rule context (can be <tt class="computeroutput"><span class="identifier">unused_type</span></tt>)
+ </p></dd>
+</dl>
+</div>
+<p>
+ The <span class="emphasis"><em>what</em></span> function should be obvious. It provides some
+ information about “<span class="quote">what</span>” the parser is. It is used as a debugging
+ aid, for example.
+ </p>
+<div class="variablelist">
+<p class="title"><b>P::template attribute<context>::type</b></p>
+<dl>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">P</span></tt></span></dt>
+<dd><p>
+ a parser type
+ </p></dd>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">context</span></tt></span></dt>
+<dd><p>
+ A context type (can be unused_type)
+ </p></dd>
+</dl>
+</div>
+<p>
+ The <span class="emphasis"><em>attribute</em></span> metafunction returns the expected attribute
+ type of the parser. In some cases, this is context dependent.
+ </p>
+<p>
+ In this section, we will dissect two parser types:
+ </p>
+<div class="variablelist">
+<p class="title"><b>Parsers</b></p>
+<dl>
+<dt><span class="term"><tt class="computeroutput">PrimitiveParser</tt></span></dt>
+<dd><p>
+ A parser for primitive data (e.g. integer parsing).
+ </p></dd>
+<dt><span class="term"><tt class="computeroutput">UnaryParser</tt></span></dt>
+<dd><p>
+ A parser that has single subject (e.g. kleene star).
+ </p></dd>
+</dl>
+</div>
+<a name="spirit.advanced.indepth.parsers_indepth.primitive_parsers"></a><h5>
+<a name="id719287"></a>
+ <a href="parsers_indepth.html#spirit.advanced.indepth.parsers_indepth.primitive_parsers">Primitive
+ Parsers</a>
+ </h5>
+<p>
+ For our disection study, we will use a Spirit
+ primitive, the <tt class="computeroutput"><span class="identifier">int_parser</span></tt>
+ in the boost::spirit::qi namespace.
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span>
+ <span class="keyword">typename</span> <span class="identifier">T</span>
+ <span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">Radix</span> <span class="special">=</span> <span class="number">10</span>
+ <span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">MinDigits</span> <span class="special">=</span> <span class="number">1</span>
+ <span class="special">,</span> <span class="keyword">int</span> <span class="identifier">MaxDigits</span> <span class="special">=</span> <span class="special">-</span><span class="number">1</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">int_parser_impl</span>
+ <span class="special">:</span> <span class="identifier">primitive_parser</span><span class="special"><</span><span class="identifier">int_parser_impl</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">MinDigits</span><span class="special">,</span> <span class="identifier">MaxDigits</span><span class="special">></span> <span class="special">></span>
+<span class="special">{</span>
+ <span class="comment">// check template parameter 'Radix' for validity
+</span> <span class="identifier">BOOST_SPIRIT_ASSERT_MSG</span><span class="special">(</span>
+ <span class="identifier">Radix</span> <span class="special">==</span> <span class="number">2</span> <span class="special">||</span> <span class="identifier">Radix</span> <span class="special">==</span> <span class="number">8</span> <span class="special">||</span> <span class="identifier">Radix</span> <span class="special">==</span> <span class="number">10</span> <span class="special">||</span> <span class="identifier">Radix</span> <span class="special">==</span> <span class="number">16</span><span class="special">,</span>
+ <span class="identifier">not_supported_radix</span><span class="special">,</span> <span class="special">());</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Context</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
+ <span class="keyword">struct</span> <span class="identifier">attribute</span>
+ <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">T</span> <span class="identifier">type</span><span class="special">;</span>
+ <span class="special">};</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Context</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Skipper</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Attribute</span><span class="special">></span>
+ <span class="keyword">bool</span> <span class="identifier">parse</span><span class="special">(</span><span class="identifier">Iterator</span><span class="special">&</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">Iterator</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">last</span>
+ <span class="special">,</span> <span class="identifier">Context</span><span class="special">&</span> <span class="comment">/*context*/</span><span class="special">,</span> <span class="identifier">Skipper</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">skipper</span>
+ <span class="special">,</span> <span class="identifier">Attribute</span><span class="special">&</span> <span class="identifier">attr</span><span class="special">)</span> <span class="keyword">const</span>
+ <span class="special">{</span>
+ <span class="identifier">qi</span><span class="special">::</span><span class="identifier">skip_over</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">skipper</span><span class="special">);</span>
+ <span class="keyword">return</span> <span class="identifier">extract_int</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">MinDigits</span><span class="special">,</span> <span class="identifier">MaxDigits</span><span class="special">></span>
+ <span class="special">::</span><span class="identifier">call</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">attr</span><span class="special">);</span>
+ <span class="special">}</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Context</span><span class="special">></span>
+ <span class="identifier">info</span> <span class="identifier">what</span><span class="special">(</span><span class="identifier">Context</span><span class="special">&</span> <span class="comment">/*context*/</span><span class="special">)</span> <span class="keyword">const</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">info</span><span class="special">(</span><span class="string">"integer"</span><span class="special">);</span>
+ <span class="special">}</span>
+<span class="special">};</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ The <tt class="computeroutput"><span class="identifier">int_parser</span></tt> is derived
+ from a <tt class="computeroutput">PrimitiveParser<span class="special"><</span><span class="identifier">Derived</span><span class="special">></span></tt>,
+ which in turn derives from <tt class="computeroutput"><span class="identifier">parser</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">></span></tt>. Therefore, it supports the following
+ requirements:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ The <tt class="computeroutput"><span class="identifier">parse</span></tt> member function
+ </li>
+<li>
+ The <tt class="computeroutput"><span class="identifier">what</span></tt> member function
+ </li>
+<li>
+ The nested <tt class="computeroutput"><span class="identifier">attribute</span></tt>
+ metafunction
+ </li>
+</ul></div>
+<p>
+ <span class="emphasis"><em>parse</em></span> is the main entry point. For primitive parsers,
+ our first thing to do is call:
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">skip</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">skipper</span><span class="special">);</span>
+</pre>
+<p>
+ </p>
+<p>
+ to do a pre-skip. After pre-skipping, the parser proceeds to do its thing.
+ The actual parsing code is placed in <tt class="computeroutput"><span class="identifier">extract_int</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">MinDigits</span><span class="special">,</span> <span class="identifier">MaxDigits</span><span class="special">>::</span><span class="identifier">call</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">attr</span><span class="special">);</span></tt>
+ </p>
+<p>
+ This simple no-frills protocol is one of the reasons why Spirit
+ is fast. If you know the internals of Spirit.Classic
+ and perhaps even wrote some parsers with it, this simple Spirit
+ mechanism is a joy to work with. There are no scanners and all that crap.
+ </p>
+<p>
+ The <span class="emphasis"><em>what</em></span> function just tells us that it is an integer
+ parser. Simple.
+ </p>
+<p>
+ The <span class="emphasis"><em>attribute</em></span> metafunction returns the T template
+ parameter. We associate the <tt class="computeroutput"><span class="identifier">int_parser</span></tt>
+ to some placeholders for <tt class="computeroutput"><span class="identifier">short_</span></tt>,
+ <tt class="computeroutput"><span class="identifier">int_</span></tt>, <tt class="computeroutput"><span class="identifier">long_</span></tt>
+ and <tt class="computeroutput"><span class="identifier">long_long</span></tt> types. But,
+ first, we enable these placeholders in namespace boost::spirit:
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><></span>
+<span class="keyword">struct</span> <span class="identifier">use_terminal</span><span class="special"><</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">domain</span><span class="special">,</span> <span class="identifier">tag</span><span class="special">::</span><span class="identifier">short_</span><span class="special">></span> <span class="comment">// enables short_
+</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span> <span class="special">{};</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><></span>
+<span class="keyword">struct</span> <span class="identifier">use_terminal</span><span class="special"><</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">domain</span><span class="special">,</span> <span class="identifier">tag</span><span class="special">::</span><span class="identifier">int_</span><span class="special">></span> <span class="comment">// enables int_
+</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span> <span class="special">{};</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><></span>
+<span class="keyword">struct</span> <span class="identifier">use_terminal</span><span class="special"><</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">domain</span><span class="special">,</span> <span class="identifier">tag</span><span class="special">::</span><span class="identifier">long_</span><span class="special">></span> <span class="comment">// enables long_
+</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span> <span class="special">{};</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><></span>
+<span class="keyword">struct</span> <span class="identifier">use_terminal</span><span class="special"><</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">domain</span><span class="special">,</span> <span class="identifier">tag</span><span class="special">::</span><span class="identifier">long_long</span><span class="special">></span> <span class="comment">// enables long_long
+</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span> <span class="special">{};</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ Notice that <tt class="computeroutput"><span class="identifier">int_parser</span></tt>
+ is placed in the namespace boost::spirit::qi while these <span class="emphasis"><em>enablers</em></span>
+ are in namespace boost::spirit. The reason is that these placeholders are
+ shared by other Spirit
+ <span class="emphasis"><em>domains</em></span>. <span class="emphasis"><em>Spirit.Qi</em></span>, the parser
+ is one domain. <span class="emphasis"><em>Spirit.Karma</em></span>, the generator is another
+ domain. Other parser technologies may be developed and placed in yet another
+ domain. Yet, all these can potentially share the same placeholders for
+ interoperability. The interpretation of these placeholders is domain-specific.
+ </p>
+<p>
+ Now that we enabled the placeholders, we have to write generators for them.
+ The make_xxx stuff (in boost::spirit::qi namespace):
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">make_int</span>
+<span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">int_parser_impl</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="identifier">result_type</span><span class="special">;</span>
+ <span class="identifier">result_type</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">unused_type</span><span class="special">,</span> <span class="identifier">unused_type</span><span class="special">)</span> <span class="keyword">const</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">result_type</span><span class="special">();</span>
+ <span class="special">}</span>
+<span class="special">};</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ This one above is our main generator. It's a simple function object with
+ 2 (unused) arguments. These arguments are
+ </p>
+<div class="orderedlist"><ol type="1">
+<li>
+ The actual terminal value obtained by proto. In this case, either a short<span class="underline">, int</span>, long_ or long_long. We don't care
+ about this.
+ </li>
+<li>
+ Modifiers. We also don't care about this. This allows directives such
+ as <tt class="computeroutput"><span class="identifier">no_case</span><span class="special">[</span><span class="identifier">p</span><span class="special">]</span></tt>
+ to pass information to inner parser nodes. We'll see how that works later.
+ </li>
+</ol></div>
+<p>
+ Now:
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Modifiers</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">make_primitive</span><span class="special"><</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">short_</span><span class="special">,</span> <span class="identifier">Modifiers</span><span class="special">></span> <span class="special">:</span> <span class="identifier">make_int</span><span class="special"><</span><span class="keyword">short</span><span class="special">></span> <span class="special">{};</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Modifiers</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">make_primitive</span><span class="special"><</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">int_</span><span class="special">,</span> <span class="identifier">Modifiers</span><span class="special">></span> <span class="special">:</span> <span class="identifier">make_int</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="special">{};</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Modifiers</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">make_primitive</span><span class="special"><</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">long_</span><span class="special">,</span> <span class="identifier">Modifiers</span><span class="special">></span> <span class="special">:</span> <span class="identifier">make_int</span><span class="special"><</span><span class="keyword">long</span><span class="special">></span> <span class="special">{};</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Modifiers</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">make_primitive</span><span class="special"><</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">long_long</span><span class="special">,</span> <span class="identifier">Modifiers</span><span class="special">></span> <span class="special">:</span> <span class="identifier">make_int</span><span class="special"><</span><span class="keyword">long</span> <span class="keyword">long</span><span class="special">></span> <span class="special">{};</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ These, specialize <tt class="computeroutput"><span class="identifier">qi</span><span class="special">:</span><span class="identifier">make_primitive</span></tt> for specific tags. They
+ all inherit from <tt class="computeroutput"><span class="identifier">make_int</span></tt>
+ which does the actual work.
+ </p>
+<a name="spirit.advanced.indepth.parsers_indepth.composite_parsers"></a><h5>
+<a name="id722066"></a>
+ <a href="parsers_indepth.html#spirit.advanced.indepth.parsers_indepth.composite_parsers">Composite
+ Parsers</a>
+ </h5>
+<p>
+ Let me present the kleene star (also in namespace spirit::qi):
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Subject</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">kleene</span> <span class="special">:</span> <span class="identifier">unary_parser</span><span class="special"><</span><span class="identifier">kleene</span><span class="special"><</span><span class="identifier">Subject</span><span class="special">></span> <span class="special">></span>
+<span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">Subject</span> <span class="identifier">subject_type</span><span class="special">;</span>
+
+ <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Context</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
+ <span class="keyword">struct</span> <span class="identifier">attribute</span>
+ <span class="special">{</span>
+ <span class="comment">// Build a std::vector from the subject's attribute. Note
+</span> <span class="comment">// that build_std_vector may return unused_type if the
+</span> <span class="comment">// subject's attribute is an unused_type.
+</span> <span class="keyword">typedef</span> <span class="keyword">typename</span>
+ <span class="identifier">traits</span><span class="special">::</span><span class="identifier">build_std_vector</span><span class="special"><</span>
+ <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span>
+ <span class="identifier">attribute_of</span><span class="special"><</span><span class="identifier">Subject</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">,</span> <span class="identifier">Iterator</span><span class="special">>::</span><span class="identifier">type</span>
+ <span class="special">>::</span><span class="identifier">type</span>
+ <span class="identifier">type</span><span class="special">;</span>
+ <span class="special">};</span>
+
+ <span class="identifier">kleene</span><span class="special">(</span><span class="identifier">Subject</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">subject</span><span class="special">)</span>
+ <span class="special">:</span> <span class="identifier">subject</span><span class="special">(</span><span class="identifier">subject</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">Iterator</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Context</span>
+ <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Skipper</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Attribute</span><span class="special">></span>
+ <span class="keyword">bool</span> <span class="identifier">parse</span><span class="special">(</span><span class="identifier">Iterator</span><span class="special">&</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">Iterator</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">last</span>
+ <span class="special">,</span> <span class="identifier">Context</span><span class="special">&</span> <span class="identifier">context</span><span class="special">,</span> <span class="identifier">Skipper</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">skipper</span>
+ <span class="special">,</span> <span class="identifier">Attribute</span><span class="special">&</span> <span class="identifier">attr</span><span class="special">)</span> <span class="keyword">const</span>
+ <span class="special">{</span>
+ <span class="comment">// create a local value if Attribute is not unused_type
+</span> <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">container_value</span><span class="special"><</span><span class="identifier">Attribute</span><span class="special">>::</span><span class="identifier">type</span>
+ <span class="identifier">value_type</span><span class="special">;</span>
+ <span class="identifier">value_type</span> <span class="identifier">val</span> <span class="special">=</span> <span class="identifier">value_type</span><span class="special">();</span>
+
+ <span class="comment">// Repeat while subject parses ok
+</span> <span class="keyword">while</span> <span class="special">(</span><span class="identifier">subject</span><span class="special">.</span><span class="identifier">parse</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">context</span><span class="special">,</span> <span class="identifier">skipper</span><span class="special">,</span> <span class="identifier">val</span><span class="special">))</span>
+ <span class="special">{</span>
+ <span class="comment">// push the parsed value into our attribute
+</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">attr</span><span class="special">,</span> <span class="identifier">val</span><span class="special">);</span>
+ <span class="identifier">traits</span><span class="special">::</span><span class="identifier">clear</span><span class="special">(</span><span class="identifier">val</span><span class="special">);</span>
+ <span class="special">}</span>
+ <span class="keyword">return</span> <span class="keyword">true</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">Context</span><span class="special">></span>
+ <span class="identifier">info</span> <span class="identifier">what</span><span class="special">(</span><span class="identifier">Context</span><span class="special">&</span> <span class="identifier">context</span><span class="special">)</span> <span class="keyword">const</span>
+ <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">info</span><span class="special">(</span><span class="string">"kleene"</span><span class="special">,</span> <span class="identifier">subject</span><span class="special">.</span><span class="identifier">what</span><span class="special">(</span><span class="identifier">context</span><span class="special">));</span>
+ <span class="special">}</span>
+
+ <span class="identifier">Subject</span> <span class="identifier">subject</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ Looks similar in form to its primitive cousin, the <tt class="computeroutput"><span class="identifier">int_parser</span></tt>.
+ And, again, it has the same basic ingredients required by <tt class="computeroutput"><span class="identifier">Derived</span></tt>.
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ The nested attribute metafunction
+ </li>
+<li>
+ The parse member function
+ </li>
+<li>
+ The what member function
+ </li>
+</ul></div>
+<p>
+ kleene is a composite parser. It is a parser that composes another parser,
+ its “<span class="quote">subject</span>”. It is a <tt class="computeroutput">UnaryParser</tt> and subclasses
+ from it. Like <tt class="computeroutput">PrimitiveParser</tt>, <tt class="computeroutput">UnaryParser<span class="special"><</span><span class="identifier">Derived</span><span class="special">></span></tt>
+ derives from <tt class="computeroutput"><span class="identifier">parser</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">></span></tt>.
+ </p>
+<p>
+ unary_parser<Derived>, has these expression requirements on Derived:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ p.subject -> subject parser ( <span class="emphasis"><em>p</em></span> is a UnaryParser parser.)
+ </li>
+<li>
+ P::subject_type -> subject parser type ( <span class="emphasis"><em>P</em></span> is
+ a UnaryParser type.)
+ </li>
+</ul></div>
+<p>
+ <span class="emphasis"><em>parse</em></span> is the main parser entry point. Since this is
+ not a primitive parser, we do not need to call <tt class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">skip</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">skipper</span><span class="special">)</span></tt>. The <span class="emphasis"><em>subject</em></span>, if
+ it is a primitive, will do the pre-skip. If if it is another composite
+ parser, it will eventually call a primitive parser somewhere down the line
+ which will do the pre-skip. This makes it a lot more efficient than Spirit.Classic.
+ Spirit.Classic
+ puts the skipping business into the so-called "scanner" which
+ blindly attempts a pre-skip everytime we increment the iterator.
+ </p>
+<p>
+ What is the <span class="emphasis"><em>attribute</em></span> of the kleene? In general, it
+ is a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></tt>
+ where <tt class="computeroutput"><span class="identifier">T</span></tt> is the attribute
+ of the subject. There is a special case though. If <tt class="computeroutput"><span class="identifier">T</span></tt>
+ is an <tt class="computeroutput"><span class="identifier">unused_type</span></tt>, then
+ the attribute of kleene is also <tt class="computeroutput"><span class="identifier">unused_type</span></tt>.
+ <tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">build_std_vector</span></tt> takes care of that minor
+ detail.
+ </p>
+<p>
+ So, let's parse. First, we need to provide a local attribute of for the
+ subject:
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">attribute_of</span><span class="special"><</span><span class="identifier">Subject</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">val</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ <tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">attribute_of</span><span class="special"><</span><span class="identifier">Subject</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">></span></tt>
+ simply calls the subject's <tt class="computeroutput"><span class="keyword">struct</span>
+ <span class="identifier">attribute</span><span class="special"><</span><span class="identifier">Context</span><span class="special">></span></tt>
+ nested metafunction.
+ </p>
+<p>
+ <span class="emphasis"><em>val</em></span> starts out default initialized. This val is the
+ one we'll pass to the subject's parse function.
+ </p>
+<p>
+ The kleene repeats indefinitely while the subject parser is successful.
+ On each successful parse, we <tt class="computeroutput"><span class="identifier">push_back</span></tt>
+ the parsed attribute to the kleen's attribute, which is expected to be,
+ at the very least, compatible with a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></tt>.
+ In other words, although we say that we want our attribute to be a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></tt>, we try to be more lenient than
+ that. The caller of kleene's parse may pass a different attribute type.
+ For as long as it is also a conforming STL container with <tt class="computeroutput"><span class="identifier">push_back</span></tt>, we are ok. Here is the kleene
+ loop:
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">while</span> <span class="special">(</span><span class="identifier">subject</span><span class="special">.</span><span class="identifier">parse</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">context</span><span class="special">,</span> <span class="identifier">skipper</span><span class="special">,</span> <span class="identifier">val</span><span class="special">))</span>
+<span class="special">{</span>
+ <span class="comment">// push the parsed value into our attribute
+</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">attr</span><span class="special">,</span> <span class="identifier">val</span><span class="special">);</span>
+ <span class="identifier">traits</span><span class="special">::</span><span class="identifier">clear</span><span class="special">(</span><span class="identifier">val</span><span class="special">);</span>
+<span class="special">}</span>
+<span class="keyword">return</span> <span class="keyword">true</span><span class="special">;</span>
+</pre>
+<p>
+ Take note that we didn't call attr.push_back(val). Instead, we called a
+ Spirit provided function:
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">attr</span><span class="special">,</span> <span class="identifier">val</span><span class="special">);</span>
+</pre>
+<p>
+ </p>
+<p>
+ This is a recurring pattern. The reason why we do it this way is because
+ attr <span class="bold"><b>can</b></span> be <tt class="computeroutput"><span class="identifier">unused_type</span></tt>.
+ <tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">push_back</span></tt> takes care of that detail.
+ The overload for unused_type is a no-op. Now, you can imagine why Spirit is fast! The parsers
+ are so simple and the generated code is as efficient as a hand rolled loop.
+ All these parser compositions and recursive parse invocations are extensively
+ inlined by a modern C++ compiler. In the end, you get a tight loop when
+ you use the kleene. No more excess baggage. If the attribute is unused,
+ then there is no code generated for that. That's how Spirit
+ is designed.
+ </p>
+<p>
+ The <span class="emphasis"><em>what</em></span> function simply wraps the output of the subject
+ in a "kleene“<span class="quote">... "</span>”".
+ </p>
+<p>
+ Ok, now, like the <tt class="computeroutput"><span class="identifier">int_parser</span></tt>,
+ we have to hook our parser to the <span class="underline">qi</span>
+ engine. Here's how we do it:
+ </p>
+<p>
+ First, we enable the prefix star operator. In proto, it's called the "dereference":
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><></span>
+<span class="keyword">struct</span> <span class="identifier">use_operator</span><span class="special"><</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">domain</span><span class="special">,</span> <span class="identifier">proto</span><span class="special">::</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">dereference</span><span class="special">></span> <span class="comment">// enables *p
+</span> <span class="special">:</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span> <span class="special">{};</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ This is done in namespace <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span></tt>
+ like its friend, the <tt class="computeroutput"><span class="identifier">use_terminal</span></tt>
+ specialization for our <tt class="computeroutput"><span class="identifier">int_parser</span></tt>.
+ Obviously, we use <span class="emphasis"><em>use_operator</em></span> to enable the dereference
+ for the qi::domain.
+ </p>
+<p>
+ Then, we need to write our generator (in namespace qi):
+ </p>
+<p>
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Elements</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Modifiers</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">make_composite</span><span class="special"><</span><span class="identifier">proto</span><span class="special">::</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">dereference</span><span class="special">,</span> <span class="identifier">Elements</span><span class="special">,</span> <span class="identifier">Modifiers</span><span class="special">></span>
+ <span class="special">:</span> <span class="identifier">make_unary_composite</span><span class="special"><</span><span class="identifier">Elements</span><span class="special">,</span> <span class="identifier">kleene</span><span class="special">></span>
+<span class="special">{};</span>
+</pre>
+<p>
+ </p>
+<p>
+ </p>
+<p>
+ This essentially says; for all expressions of the form: <tt class="computeroutput"><span class="special">*</span><span class="identifier">p</span></tt>, to build a kleene parser. Elements
+ is a Boost.Fusion
+ sequence. For the kleene, which is a unary operator, expect only one element
+ in the sequence. That element is the subject of the kleene.
+ </p>
+<p>
+ We still don't care about the Modifiers. We'll see how the modifiers is
+ all about when we get to deep directives.
+ </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
+ de Guzman, Hartmut Kaiser<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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../indepth.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../indepth.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../customize.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Modified: trunk/libs/spirit/doc/html/spirit/faq.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/faq.html (original)
+++ trunk/libs/spirit/doc/html/spirit/faq.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,12 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Spirit FAQ</title>
+<title> Spirit FAQ</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../index.html" title="Spirit 2.1">
<link rel="up" href="../index.html" title="Spirit 2.1">
-<link rel="prev" href="support/multi_pass.html" title="The multi pass iterator">
+<link rel="previous" href="support/multi_pass.html" title=" The multi pass iterator">
<link rel="next" href="notes.html" title="Notes">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,30 +22,33 @@
<div class="spirit-nav">
<a accesskey="p" href="support/multi_pass.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="notes.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Spirit FAQ">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.faq"></a><a class="link" href="faq.html" title="Spirit FAQ"> Spirit FAQ</a>
-</h2></div></div></div>
-<a name="spirit.faq.i_m_getting_multiple_symbol_definition_errors_while_using_visual_c____anything_i_could_do_about_that_"></a><h4>
-<a name="id917447"></a>
- <a class="link" href="faq.html#spirit.faq.i_m_getting_multiple_symbol_definition_errors_while_using_visual_c____anything_i_could_do_about_that_">I'm
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h2 class="title" style="clear: both">
+<a name="spirit.faq"></a> Spirit FAQ
+</h2></div></div>
+<div></div>
+</div>
+<a name="spirit.faq.i_m_getting_multiple_symbol_definition_errors_while_using_visual_c____anything_i_could_do_about_that_"></a><h3>
+<a name="id747563"></a>
+ <a href="faq.html#spirit.faq.i_m_getting_multiple_symbol_definition_errors_while_using_visual_c____anything_i_could_do_about_that_">I'm
getting multiple symbol definition errors while using Visual C++. Anything
I could do about that?</a>
- </h4>
+ </h3>
<p>
- Do you see strange multiple symbol definition linker errors mentioning <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">failed</span></code>
- and <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">rule</span></code>?
+ Do you see strange multiple symbol definition linker errors mentioning <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">failed</span></tt>
+ and <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">rule</span></tt>?
Then this FAQ entry might be for you.
</p>
<p>
<a href="http://www.boost.org/libs/mpl/index.html" target="_top">Boost.Mpl</a> implements
- a macro <code class="computeroutput"><span class="identifier">BOOST_MPL_ASSERT_MSG</span><span class="special">()</span></code> which essentially is a more powerfull version
+ a macro <tt class="computeroutput"><span class="identifier">BOOST_MPL_ASSERT_MSG</span><span class="special">()</span></tt> which essentially is a more powerfull version
of static_assert. Unfortunately under certain circumstances using this macro
may lead to the aformentioned linker errors.
</p>
<p>
<a href="http://spirit.sourceforge.net" target="_top">Spirit</a> allows you to define
- a preprocessor constant disabling the usage of <code class="computeroutput"><span class="identifier">BOOST_MPL_ASSERT_MSG</span><span class="special">()</span></code>, while switching to <code class="computeroutput"><span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">()</span></code> instead. For that you need define BOOST_SPIRIT_DONT_USE_MPL_ASSERT_MSG=1.
+ a preprocessor constant disabling the usage of <tt class="computeroutput"><span class="identifier">BOOST_MPL_ASSERT_MSG</span><span class="special">()</span></tt>, while switching to <tt class="computeroutput"><span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">()</span></tt> instead. For that you need define BOOST_SPIRIT_DONT_USE_MPL_ASSERT_MSG=1.
Do this by adding
</p>
<pre class="programlisting"><span class="special">-</span><span class="identifier">DBOOST_SPIRIT_DONT_USE_MPL_ASSERT_MSG</span><span class="special">=</span><span class="number">1</span>
@@ -63,12 +66,12 @@
see while using this workaround is less verbose error messages generated from
static_assert.
</p>
-<a name="spirit.faq.i_m_very_confused_about_the_header_hell_in_my_boost_spirit_directory__what_s_all_this_about_"></a><h4>
-<a name="id917618"></a>
- <a class="link" href="faq.html#spirit.faq.i_m_very_confused_about_the_header_hell_in_my_boost_spirit_directory__what_s_all_this_about_">I'm
+<a name="spirit.faq.i_m_very_confused_about_the_header_hell_in_my_boost_spirit_directory__what_s_all_this_about_"></a><h3>
+<a name="id747828"></a>
+ <a href="faq.html#spirit.faq.i_m_very_confused_about_the_header_hell_in_my_boost_spirit_directory__what_s_all_this_about_">I'm
very confused about the header hell in my boost/spirit directory. What's all
this about?</a>
- </h4>
+ </h3>
<p>
The boost/spirit directory currently holds two versions of the Spirit library:
<a href="../../../../../libs/spirit/classic/index.html" target="_top"><span class="emphasis"><em>Spirit.Classic</em></span></a>
@@ -171,26 +174,27 @@
as we will probably redirect to the Boost.Phoenix headers as soon as these
are available.
</p>
-<a name="spirit.faq.why_doesn_t_my_symbol_table_work_in_a__code__phrase_role__identifier__no_case__phrase___code__directive_"></a><h4>
-<a name="id918142"></a>
- <a class="link" href="faq.html#spirit.faq.why_doesn_t_my_symbol_table_work_in_a__code__phrase_role__identifier__no_case__phrase___code__directive_">Why
- doesn't my symbol table work in a <code class="computeroutput"><span class="identifier">no_case</span></code>
+<a name="spirit.faq.why_doesn_t_my_symbol_table_work_in_a__code__phrase_role__identifier__no_case__phrase___code__directive_"></a><h3>
+<a name="id748604"></a>
+ <a href="faq.html#spirit.faq.why_doesn_t_my_symbol_table_work_in_a__code__phrase_role__identifier__no_case__phrase___code__directive_">Why
+ doesn't my symbol table work in a <tt class="computeroutput"><span class="identifier">no_case</span></tt>
directive?</a>
- </h4>
+ </h3>
<p>
- In order to perform case-insensitive parsing (using <a class="link" href="qi/reference/directive/no_case.html" title="Inhibiting Case Sensitivity (no_case[])"><code class="computeroutput"><span class="identifier">no_case</span></code></a>) with a symbol table (i.e.
- use a <a class="link" href="qi/reference/string/symbols.html" title="Symbols (symbols)"><code class="computeroutput"><span class="identifier">symbols</span><span class="special"><</span><span class="identifier">Ch</span><span class="special">,</span>
- <span class="identifier">T</span><span class="special">></span></code></a>
- parser in a <code class="computeroutput"><span class="identifier">no_case</span></code> directive),
+ In order to perform case-insensitive parsing (using <a href="qi/reference/directive/no_case.html" title=" Inhibiting
+ Case Sensitivity (no_case[])"><tt class="computeroutput"><span class="identifier">no_case</span></tt></a>) with a symbol table (i.e.
+ use a <a href="qi/reference/string/symbols.html" title=" Symbols (symbols)"><tt class="computeroutput"><span class="identifier">symbols</span><span class="special"><</span><span class="identifier">Ch</span><span class="special">,</span>
+ <span class="identifier">T</span><span class="special">></span></tt></a>
+ parser in a <tt class="computeroutput"><span class="identifier">no_case</span></tt> directive),
that symbol table needs to be filled with all-lowercase contents. Entries containing
one or more uppercase characters will not match any input.
</p>
-<a name="spirit.faq.i_m_getting_a_compilation_error_mentioning__code__phrase_role__identifier__boost__phrase__phrase_role__special______phrase__phrase_role__identifier__function__phrase___code__and_or___________code__phrase_role__identifier__boost__phrase__phrase_role__special______phrase__phrase_role__identifier__function4__phrase___code___what_does_this_mean_"></a><h4>
-<a name="id918213"></a>
- <a class="link" href="faq.html#spirit.faq.i_m_getting_a_compilation_error_mentioning__code__phrase_role__identifier__boost__phrase__phrase_role__special______phrase__phrase_role__identifier__function__phrase___code__and_or___________code__phrase_role__identifier__boost__phrase__phrase_role__special______phrase__phrase_role__identifier__function4__phrase___code___what_does_this_mean_">I'm
- getting a compilation error mentioning <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span></code>
- and/or <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">function4</span></code>. What does this mean?</a>
- </h4>
+<a name="spirit.faq.i_m_getting_a_compilation_error_mentioning__code__phrase_role__identifier__boost__phrase__phrase_role__special______phrase__phrase_role__identifier__function__phrase___code__and_or___________code__phrase_role__identifier__boost__phrase__phrase_role__special______phrase__phrase_role__identifier__function4__phrase___code___what_does_this_mean_"></a><h3>
+<a name="id748741"></a>
+ <a href="faq.html#spirit.faq.i_m_getting_a_compilation_error_mentioning__code__phrase_role__identifier__boost__phrase__phrase_role__special______phrase__phrase_role__identifier__function__phrase___code__and_or___________code__phrase_role__identifier__boost__phrase__phrase_role__special______phrase__phrase_role__identifier__function4__phrase___code___what_does_this_mean_">I'm
+ getting a compilation error mentioning <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">function</span></tt>
+ and/or <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">function4</span></tt>. What does this mean?</a>
+ </h3>
<p>
If you are using Visual C++ and have an error like:
</p>
@@ -211,30 +215,30 @@
it means that non-terminal can only be used with a skip parser of a compatible
type. The error above arises when this is not the case, i.e.:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
a non-terminal defined with a skip parser type is used without a skip parser;
- for example, a rule with a skip parser type is used inside a <code class="computeroutput"><span class="identifier">lexeme</span></code> directive, or a grammar with a skip
- parser type is used in <code class="computeroutput"><span class="identifier">parse</span></code>
- instead of <code class="computeroutput"><span class="identifier">phrase_parse</span></code>,
+ for example, a rule with a skip parser type is used inside a <tt class="computeroutput"><span class="identifier">lexeme</span></tt> directive, or a grammar with a skip
+ parser type is used in <tt class="computeroutput"><span class="identifier">parse</span></tt>
+ instead of <tt class="computeroutput"><span class="identifier">phrase_parse</span></tt>,
</li>
-<li class="listitem">
+<li>
or a non-terminal is used with a skip parser of an incompatible type; for
example, a rule defined with one skip parser type calls a second rule defined
with another, incompatible skip parser type.
</li>
</ul></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
The same applies to <span class="emphasis"><em>Spirit.Karma</em></span>, replacing 'skip parser'
- and <code class="computeroutput"><span class="identifier">lexeme</span></code> by 'delimit generator'
- and <code class="computeroutput"><span class="identifier">verbatim</span></code>. Similarily,
+ and <tt class="computeroutput"><span class="identifier">lexeme</span></tt> by 'delimit generator'
+ and <tt class="computeroutput"><span class="identifier">verbatim</span></tt>. Similarily,
corresponding error messages in <span class="emphasis"><em>Spirit.Karma</em></span> reference
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">function3</span></code> and the 3rd parameter (instead
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">function3</span></tt> and the 3rd parameter (instead
of the 4th).
</p></td></tr>
</table></div>
Modified: trunk/libs/spirit/doc/html/spirit/introduction.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/introduction.html (original)
+++ trunk/libs/spirit/doc/html/spirit/introduction.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Introduction</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../index.html" title="Spirit 2.1">
<link rel="up" href="../index.html" title="Spirit 2.1">
-<link rel="prev" href="what_s_new.html" title="What's New">
+<link rel="previous" href="what_s_new.html" title="What's New">
<link rel="next" href="structure.html" title="Structure">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,15 +22,18 @@
<div class="spirit-nav">
<a accesskey="p" href="what_s_new.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="structure.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Introduction">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.introduction"></a><a class="link" href="introduction.html" title="Introduction">Introduction</a>
-</h2></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h2 class="title" style="clear: both">
+<a name="spirit.introduction"></a>Introduction
+</h2></div></div>
+<div></div>
+</div>
<p>
Boost Spirit is an object-oriented, recursive-descent parser and output generation
library for C++. It allows you to write grammars and format descriptions using
a format similar to Extended Backus Naur Form (EBNF)
- <sup>[<a name="id579556" href="#ftn.id579556" class="footnote">1</a>]</sup>
+ <sup>[<a name="id411540" href="#ftn.id411540">1</a>]</sup>
directly in C++. These inline grammar specifications can mix freely with other
C++ code and, thanks to the generative power of C++ templates, are immediately
executable. In retrospect, conventional compiler-compilers or parser-generators
@@ -42,14 +45,14 @@
embedded languages (DSEL). In fact, Spirit exposes 3 different DSELs to the
user:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
one for creating parser grammars,
</li>
-<li class="listitem">
+<li>
one for the specification of the required tokens to be used for parsing,
</li>
-<li class="listitem">
+<li>
and one for the description of the required output formats.
</li>
</ul></div>
@@ -67,32 +70,32 @@
used to generate arbitrarily-formatted output.
</p>
<p>
- The <a class="link" href="introduction.html#spirit.spiritstructure" title="Figure 1. The overall structure of the Boost Spirit library">figure</a> below depicts the
+ The figure below depicts the
overall structure of the Boost Spirit library. The library consists of 4 major
parts:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
<a href="../../../../../libs/spirit/classic/index.html" target="_top"><span class="emphasis"><em>Spirit.Classic</em></span></a>:
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 class="listitem">
+<li>
<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 class="listitem">
+<li>
<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>
allows to define regular expressions used to match tokens (create token definitions),
associate these regular expressions with code to be executed whenever they
are matched, and to add the token definitions to the lexical analyzer.
</li>
-<li class="listitem">
+<li>
<span class="emphasis"><em>Spirit.Karma</em></span>: 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
@@ -104,9 +107,10 @@
</p>
<div class="figure">
<a name="spirit.spiritstructure"></a><p class="title"><b>Figure 1. The overall structure of the Boost Spirit library</b></p>
-<div class="figure-contents"><span class="inlinemediaobject"><img src=".././images/spiritstructure.png" alt="The overall structure of the Boost Spirit library"></span></div>
+<span class="inlinemediaobject"><img src="./images/spiritstructure.png" alt="The
+ overall structure of the Boost Spirit library"></span>
</div>
-<p><br class="figure-break">
+<p>
</p>
<p>
The three components, <span class="emphasis"><em>Spirit.Qi</em></span>, <span class="emphasis"><em>Spirit.Karma</em></span>
@@ -119,7 +123,8 @@
there is nothing to stop you from using any of these components all by themselves.
</p>
<p>
- The <a class="link" 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
+ 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 these data are converted back into some different,
external representation. The picture highlights Spirit's place in this data
@@ -130,15 +135,17 @@
<div class="figure">
<a name="spirit.spiritkarmaflow"></a><p class="title"><b>Figure 2. The place of <span class="emphasis"><em>Spirit.Qi</em></span> and <span class="emphasis"><em>Spirit.Karma</em></span>
in a data transformation flow of a typical application</b></p>
-<div class="figure-contents"><span class="inlinemediaobject"><img src=".././images/spiritkarmaflow.png" alt="The place of Spirit.Qi and Spirit.Karma in a data transformation flow of a typical application"></span></div>
+<span class="inlinemediaobject"><img src="./images/spiritkarmaflow.png" alt="The
+ place of Spirit.Qi and Spirit.Karma
+ in a data transformation flow of a typical application"></span>
</div>
-<p><br class="figure-break">
+<p>
</p>
-<a name="spirit.introduction.a_quick_overview_of_parsing_with__emphasis_spirit_qi__emphasis_"></a><h4>
-<a name="id579774"></a>
- <a class="link" href="introduction.html#spirit.introduction.a_quick_overview_of_parsing_with__emphasis_spirit_qi__emphasis_">A
+<a name="spirit.introduction.a_quick_overview_of_parsing_with__emphasis_spirit_qi__emphasis_"></a><h3>
+<a name="id411834"></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>
- </h4>
+ </h3>
<p>
<span class="emphasis"><em>Spirit.Qi</em></span> is Spirit's sublibrary dealing with generating
parsers based on a given target grammar (essentially a format description of
@@ -163,14 +170,14 @@
</pre>
<p>
Through the magic of expression templates, this is perfectly valid and executable
- C++ code. The production rule <code class="computeroutput"><span class="identifier">expression</span></code>
- is, in fact, an object that has a member function <code class="computeroutput"><span class="identifier">parse</span></code>
+ C++ code. The production rule <tt class="computeroutput"><span class="identifier">expression</span></tt>
+ 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 <code class="computeroutput"><span class="identifier">integer</span></code>
- invoked by <code class="computeroutput"><span class="identifier">factor</span></code>. Now, the
- production rule <code class="computeroutput"><span class="identifier">expression</span></code>
- in our grammar specification, traditionally called the <code class="computeroutput"><span class="identifier">start</span></code>
+ 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>
@@ -197,19 +204,19 @@
<p>
as seen in math syntax, for example, to mean multiplication or, in our case,
as seen in EBNF syntax to mean sequencing (b should follow a). <span class="emphasis"><em>Spirit.Qi</em></span>
- uses the shift <code class="computeroutput"><span class="special">>></span></code> operator
- instead for this purpose. We take the <code class="computeroutput"><span class="special">>></span></code>
+ uses the shift <tt class="computeroutput"><span class="special">>></span></tt> operator
+ instead for this purpose. We take the <tt class="computeroutput"><span class="special">>></span></tt>
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>
<p>
- The alternative operator <code class="computeroutput"><span class="special">|</span></code> and
- the parentheses <code class="computeroutput"><span class="special">()</span></code> remain as is.
- The assignment operator <code class="computeroutput"><span class="special">=</span></code> is used
- in place of EBNF's <code class="computeroutput"><span class="special">::=</span></code>. Last but
- not least, the Kleene star <code class="computeroutput"><span class="special">*</span></code>,
+ The alternative operator <tt class="computeroutput"><span class="special">|</span></tt> and
+ the parentheses <tt class="computeroutput"><span class="special">()</span></tt> remain as is.
+ The assignment operator <tt class="computeroutput"><span class="special">=</span></tt> is used
+ in place of EBNF's <tt class="computeroutput"><span class="special">::=</span></tt>. Last but
+ not least, the Kleene star <tt class="computeroutput"><span class="special">*</span></tt>,
which in this case is a postfix operator in EBNF becomes a prefix. Instead
of:
</p>
@@ -221,15 +228,15 @@
<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, <code class="computeroutput"><span class="special">*</span></code>,
+ 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,
- <code class="computeroutput"><span class="special">;</span></code>.
+ <tt class="computeroutput"><span class="special">;</span></tt>.
</p>
-<a name="spirit.introduction.a_quick_overview_of_output_generation_with__emphasis_spirit_karma__emphasis_"></a><h4>
-<a name="id580730"></a>
- <a class="link" href="introduction.html#spirit.introduction.a_quick_overview_of_output_generation_with__emphasis_spirit_karma__emphasis_">A
+<a name="spirit.introduction.a_quick_overview_of_output_generation_with__emphasis_spirit_karma__emphasis_"></a><h3>
+<a name="id413046"></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>
- </h4>
+ </h3>
<p>
Spirit not only allows you to describe the structure of the input, it also
enables the specification of the output format for your data in a similar way,
@@ -237,7 +244,7 @@
</p>
<p>
Let's assume we need to generate a textual representation from a simple data
- structure such as a <code 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></code>. 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>
@@ -256,118 +263,88 @@
</pre>
<p>
Here are some more examples of format descriptions for different output representations
- of the same <code 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></code>:
+ 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="id582164"></a><p class="title"><b>Table 2. Different output formats for `std::vector<int>`</b></p>
-<div class="table-contents"><table class="table" summary="Different output formats for `std::vector<int>`">
+<a name="id413480"></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>
<col>
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Format
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Example
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="char">'['</span> <span class="special"><<</span>
+<td><p>
+ <tt class="computeroutput"><span class="char">'['</span> <span class="special"><<</span>
<span class="special">*(</span><span class="identifier">int_</span>
- <span class="special"><<</span> <span class="char">','</span><span class="special">)</span> <span class="special"><<</span> <span class="char">']'</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="special">[</span><span class="number">1</span><span class="special">,</span><span class="number">8</span><span class="special">,</span><span class="number">10</span><span class="special">,]</span></code>
- </p>
- </td>
-<td>
- <p>
+ <span class="special"><<</span> <span class="char">','</span><span class="special">)</span> <span class="special"><<</span> <span class="char">']'</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="special">[</span><span class="number">1</span><span class="special">,</span><span class="number">8</span><span class="special">,</span><span class="number">10</span><span class="special">,]</span></tt>
+ </p></td>
+<td><p>
Comma separated list of integers
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">*(</span><span class="char">'('</span>
+<td><p>
+ <tt class="computeroutput"><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>
- <span class="special"><<</span> <span class="char">','</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="special">(</span><span class="number">1</span><span class="special">),(</span><span class="number">8</span><span class="special">),(</span><span class="number">10</span><span class="special">),</span></code>
- </p>
- </td>
-<td>
- <p>
+ <span class="special"><<</span> <span class="char">','</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="special">(</span><span class="number">1</span><span class="special">),(</span><span class="number">8</span><span class="special">),(</span><span class="number">10</span><span class="special">),</span></tt>
+ </p></td>
+<td><p>
Comma separated list of integers in parenthesis
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">*</span><span class="identifier">hex</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="number">18</span><span class="identifier">a</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="special">*</span><span class="identifier">hex</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="number">18</span><span class="identifier">a</span></tt>
+ </p></td>
+<td><p>
A list of hexadecimal numbers
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">*(</span><span class="identifier">double_</span>
- <span class="special"><<</span> <span class="char">','</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="number">1.0</span><span class="special">,</span><span class="number">8.0</span><span class="special">,</span><span class="number">10.0</span><span class="special">,</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="special">*(</span><span class="identifier">double_</span>
+ <span class="special"><<</span> <span class="char">','</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="number">1.0</span><span class="special">,</span><span class="number">8.0</span><span class="special">,</span><span class="number">10.0</span><span class="special">,</span></tt>
+ </p></td>
+<td><p>
A list of floating point numbers
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
-</table></div>
+</table>
</div>
-<br class="table-break"><p>
+<p>
We will see later in this documentation how it is possible to avoid printing
- the trailing <code class="computeroutput"><span class="char">','</span></code>.
+ the trailing <tt class="computeroutput"><span class="char">','</span></tt>.
</p>
<p>
Overall, the syntax is similar to <span class="emphasis"><em>Spirit.Qi</em></span> with the exception
- that we use the <code class="computeroutput"><span class="special"><<</span></code> operator
+ 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>
@@ -378,81 +355,61 @@
next table gives some related examples.
</p>
<div class="table">
-<a name="id582548"></a><p class="title"><b>Table 3. Different data types usable with the output format
+<a name="id413943"></a><p class="title"><b>Table 3. Different data types usable with the output format
`*(int_ << eol)`</b></p>
-<div class="table-contents"><table class="table" summary="Different data types usable with the output format
+<table class="table" summary="Different data types usable with the output format
`*(int_ << eol)`">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Data type
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">int</span> <span class="identifier">i</span><span class="special">[</span><span class="number">4</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">int</span> <span class="identifier">i</span><span class="special">[</span><span class="number">4</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
C style arrays
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code 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></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <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></td>
+<td><p>
Standard vector
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
Standard list
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span><span class="keyword">long</span><span class="special">,</span> <span class="number">20</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span><span class="special"><</span><span class="keyword">long</span><span class="special">,</span> <span class="number">20</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
Boost array
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
-</table></div>
+</table>
</div>
-<br class="table-break"><div class="footnotes">
+<div class="footnotes">
<br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id579556" href="#id579556" class="para">1</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id411540" href="#id411540">1</a>] </sup>
<a href="http://www.cl.cam.ac.uk/%7Emgk25/iso-14977.pdf" target="_top">ISO-EBNF</a>
</p></div>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/karma.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,12 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Karma - Writing Generators</title>
+<title> Karma - Writing Generators</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../index.html" title="Spirit 2.1">
<link rel="up" href="../index.html" title="Spirit 2.1">
-<link rel="prev" href="qi/reference/string/symbols.html" title="Symbols (symbols)">
+<link rel="previous" href="qi/reference/string/symbols.html" title=" Symbols (symbols)">
<link rel="next" href="karma/tutorials.html" title="Tutorials">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,10 +22,13 @@
<div class="spirit-nav">
<a accesskey="p" href="qi/reference/string/symbols.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="karma/tutorials.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Karma - Writing Generators">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.karma"></a><a class="link" href="karma.html" title="Karma - Writing Generators"> Karma - Writing Generators</a>
-</h2></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h2 class="title" style="clear: both">
+<a name="spirit.karma"></a> Karma - Writing Generators
+</h2></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section">Tutorials</span></dt>
<dd><dl>
Modified: trunk/libs/spirit/doc/html/spirit/karma/performance_measurements.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/performance_measurements.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/performance_measurements.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,13 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Performance Measurements</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../index.html" title="Spirit 2.1">
-<link rel="up" href="../karma.html" title="Karma - Writing Generators">
-<link rel="prev" href="reference/operator/not_predicate.html" title="Not Predicate (!a)">
-<link rel="next" href="performance_measurements/numeric_performance.html" title="Performance of Numeric Generators">
+<link rel="up" href="../karma.html" title=" Karma - Writing Generators">
+<link rel="previous" href="reference/operator/not_predicate.html" title=" Not
+ Predicate (!a)">
+<link rel="next" href="performance_measurements/numeric_performance.html" title="
+ Performance of Numeric Generators">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,10 +24,13 @@
<div class="spirit-nav">
<a accesskey="p" href="reference/operator/not_predicate.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../karma.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="performance_measurements/numeric_performance.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Performance Measurements">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.karma.performance_measurements"></a><a class="link" href="performance_measurements.html" title="Performance Measurements">Performance Measurements</a>
-</h3></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h3 class="title">
+<a name="spirit.karma.performance_measurements"></a>Performance Measurements
+</h3></div></div>
+<div></div>
+</div>
<div class="toc"><dl><dt><span class="section"><a href="performance_measurements/numeric_performance.html">
Performance of Numeric Generators</a></span></dt></dl></div>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Performance of Numeric Generators</title>
+<title>
+ Performance of Numeric Generators</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../performance_measurements.html" title="Performance Measurements">
-<link rel="prev" href="../performance_measurements.html" title="Performance Measurements">
-<link rel="next" href="numeric_performance/int_performance.html" title="Comparing the performance of a single int_ generator">
+<link rel="previous" href="../performance_measurements.html" title="Performance Measurements">
+<link rel="next" href="numeric_performance/int_performance.html" title="
+ Comparing the performance of a single int_ generator">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +24,15 @@
<div class="spirit-nav">
<a accesskey="p" href="../performance_measurements.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../performance_measurements.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="numeric_performance/int_performance.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Performance of Numeric Generators">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.performance_measurements.numeric_performance"></a><a class="link" href="numeric_performance.html" title="Performance of Numeric Generators">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.performance_measurements.numeric_performance"></a><a href="numeric_performance.html" title="
+ Performance of Numeric Generators">
Performance of Numeric Generators</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section"><a href="numeric_performance/int_performance.html">
Comparing the performance of a single int_ generator</a></span></dt>
Modified: trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/double_performance.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/double_performance.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/double_performance.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,17 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Comparing the performance of a single double_ generator</title>
+<title>
+ Comparing the performance of a single double_ generator</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../numeric_performance.html" title="Performance of Numeric Generators">
-<link rel="prev" href="int_performance.html" title="Comparing the performance of a single int_ generator">
-<link rel="next" href="format_performance.html" title="Comparing the performance of a sequence of several generators">
+<link rel="up" href="../numeric_performance.html" title="
+ Performance of Numeric Generators">
+<link rel="previous" href="int_performance.html" title="
+ Comparing the performance of a single int_ generator">
+<link rel="next" href="format_performance.html" title="
+ Comparing the performance of a sequence of several generators">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,16 +26,20 @@
<div class="spirit-nav">
<a accesskey="p" href="int_performance.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../numeric_performance.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="format_performance.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Comparing the performance of a single double_ generator">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.performance_measurements.numeric_performance.double_performance"></a><a class="link" href="double_performance.html" title="Comparing the performance of a single double_ generator">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.performance_measurements.numeric_performance.double_performance"></a><a href="double_performance.html" title="
+ Comparing the performance of a single double_ generator">
Comparing the performance of a single double_ generator</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<p>
This performance measurements are centered around default formatting
- of a single <code class="computeroutput"><span class="keyword">double</span></code> floating
+ of a single <tt class="computeroutput"><span class="keyword">double</span></tt> floating
point number using different libraries and methods. The overall execution
- times for those examples are compared below. We compare using <code class="computeroutput"><span class="identifier">sprintf</span></code>, C++ iostreams, Boost.Format,
+ times for those examples are compared below. We compare using <tt class="computeroutput"><span class="identifier">sprintf</span></tt>, C++ iostreams, Boost.Format,
and <span class="emphasis"><em>Spirit.Karma</em></span>.
</p>
<p>
@@ -41,7 +49,7 @@
below).
</p>
<p>
- Code used to measure the performance for <code class="computeroutput"><span class="identifier">sprintf</span></code>:
+ Code used to measure the performance for <tt class="computeroutput"><span class="identifier">sprintf</span></tt>:
</p>
<p>
</p>
@@ -132,12 +140,12 @@
using different compilers. All times are in seconds measured for 1000000
iterations (platform: Windows7, Intel Core Duo(tm) Processor, 2.8GHz,
4GByte RAM). For a more readable comparison of the results see this
- <a class="link" href="double_performance.html#spirit.karma.double_performance" title="Figure 4. Performance comparison for a single double">figure</a>.
+ figure.
</p>
<div class="table">
-<a name="id873456"></a><p class="title"><b>Table 6. Performance comparison for a single double (all
+<a name="id685911"></a><p class="title"><b>Table 6. Performance comparison for a single double (all
times in [s], 1000000 iterations)</b></p>
-<div class="table-contents"><table class="table" summary="Performance comparison for a single double (all
+<table class="table" summary="Performance comparison for a single double (all
times in [s], 1000000 iterations)">
<colgroup>
<col>
@@ -149,201 +157,132 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Library
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
gcc 4.4.0 (32 bit)
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
VC++ 10 (32 bit)
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Intel 11.1 (32 bit)
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
gcc 4.4.0 (64 bit)
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
VC++ 10 (64 bit)
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Intel 11.1 (64 bit)
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
+<td><p>
sprintf
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
0.755
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
0.965
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
0.880
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
0.713
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
0.807
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
0.694
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
iostreams
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
2.316
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
2.624
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
1.964
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
1.634
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
1.468
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
1.354
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
<a href="../../../../../../../../libs/format/index.html" target="_top">Boost.Format</a>
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
3.188
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
3.737
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
2.878
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
3.217
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
2.672
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
2.011
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
<span class="emphasis"><em>Spirit.Karma</em></span> double_
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
0.813
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
0.561
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
0.368
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
0.426
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
0.260
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
0.218
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
-</table></div>
+</table>
</div>
-<br class="table-break"><p>
+<p>
</p>
<div class="figure">
<a name="spirit.karma.double_performance"></a><p class="title"><b>Figure 4. Performance comparison for a single double</b></p>
-<div class="figure-contents"><span class="inlinemediaobject"><img src="../../../.././images/double_performance.png" alt="Performance comparison for a single double"></span></div>
+<span class="inlinemediaobject"><img src="./images/double_performance.png" alt="Performance
+ comparison for a single double"></span>
</div>
-<p><br class="figure-break">
+<p>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/format_performance.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/format_performance.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/format_performance.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Comparing the performance of a sequence of several generators</title>
+<title>
+ Comparing the performance of a sequence of several generators</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../numeric_performance.html" title="Performance of Numeric Generators">
-<link rel="prev" href="double_performance.html" title="Comparing the performance of a single double_ generator">
-<link rel="next" href="../../../lex.html" title="Lex - Writing Lexical Analyzers">
+<link rel="up" href="../numeric_performance.html" title="
+ Performance of Numeric Generators">
+<link rel="previous" href="double_performance.html" title="
+ Comparing the performance of a single double_ generator">
+<link rel="next" href="../../../lex.html" title=" Lex - Writing Lexical Analyzers">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,17 +25,21 @@
<div class="spirit-nav">
<a accesskey="p" href="double_performance.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../numeric_performance.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../../lex.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Comparing the performance of a sequence of several generators">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.performance_measurements.numeric_performance.format_performance"></a><a class="link" href="format_performance.html" title="Comparing the performance of a sequence of several generators">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.performance_measurements.numeric_performance.format_performance"></a><a href="format_performance.html" title="
+ Comparing the performance of a sequence of several generators">
Comparing the performance of a sequence of several generators</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<p>
This performance measurements are centered around formatting of a sequence
- of different items, including 2 <code class="computeroutput"><span class="keyword">double</span></code>
+ of different items, including 2 <tt class="computeroutput"><span class="keyword">double</span></tt>
floating point numbers using different libraries and methods. The overall
execution times for those examples are compared below. We compare using
- <code class="computeroutput"><span class="identifier">sprintf</span></code>, C++ iostreams,
+ <tt class="computeroutput"><span class="identifier">sprintf</span></tt>, C++ iostreams,
<a href="../../../../../../../../libs/format/index.html" target="_top">Boost.Format</a>, and
<span class="emphasis"><em>Spirit.Karma</em></span>.
</p>
@@ -152,12 +159,13 @@
using different compilers. All times are in seconds measured for 1000000
iterations (platform: Windows7, Intel Core Duo(tm) Processor, 2.8GHz,
4GByte RAM). For a more readable comparison of the results see this
- <a class="link" href="format_performance.html#spirit.karma.format_performance" title="Figure 5. Performance comparison for a sequence of several items">figure</a>.
+ <a href="format_performance.html#spirit.karma.format_performance" title="Figure 5. Performance comparison for a sequence
+ of several items">figure</a>.
</p>
<div class="table">
-<a name="id876622"></a><p class="title"><b>Table 7. Performance comparison for a sequence of several
+<a name="id687907"></a><p class="title"><b>Table 7. Performance comparison for a sequence of several
items (all times in [s], 1000000 iterations)</b></p>
-<div class="table-contents"><table class="table" summary="Performance comparison for a sequence of several
+<table class="table" summary="Performance comparison for a sequence of several
items (all times in [s], 1000000 iterations)">
<colgroup>
<col>
@@ -169,202 +177,133 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Library
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
gcc 4.4.0 (32 bit)
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
VC++ 10 (32 bit)
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Intel 11.1 (32 bit)
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
gcc 4.4.0 (64 bit)
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
VC++ 10 (64 bit)
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Intel 11.1 (64 bit)
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
+<td><p>
sprintf
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
1.725
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
1.892
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
1.903
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
1.469
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
1.608
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
1.493
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
iostreams
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
4.827
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
5.287
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
4.444
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
3.112
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
3.319
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
2.877
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
<a href="../../../../../../../../libs/format/index.html" target="_top">Boost.Format</a>
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
5.881
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
7.089
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
5.801
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
5.455
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
5.254
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
4.164
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
<span class="emphasis"><em>Spirit.Karma</em></span>
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
1.942
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
1.242
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
0.999
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
1.334
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
0.758
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
0.686
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
-</table></div>
+</table>
</div>
-<br class="table-break"><p>
+<p>
</p>
<div class="figure">
<a name="spirit.karma.format_performance"></a><p class="title"><b>Figure 5. Performance comparison for a sequence
of several items</b></p>
-<div class="figure-contents"><span class="inlinemediaobject"><img src="../../../.././images/format_performance.png" alt="Performance comparison for a sequence of several items"></span></div>
+<span class="inlinemediaobject"><img src="./images/format_performance.png" alt="Performance comparison for a sequence
+ of several items"></span>
</div>
-<p><br class="figure-break">
+<p>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/int_performance.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/int_performance.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/int_performance.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,17 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Comparing the performance of a single int_ generator</title>
+<title>
+ Comparing the performance of a single int_ generator</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../numeric_performance.html" title="Performance of Numeric Generators">
-<link rel="prev" href="../numeric_performance.html" title="Performance of Numeric Generators">
-<link rel="next" href="double_performance.html" title="Comparing the performance of a single double_ generator">
+<link rel="up" href="../numeric_performance.html" title="
+ Performance of Numeric Generators">
+<link rel="previous" href="../numeric_performance.html" title="
+ Performance of Numeric Generators">
+<link rel="next" href="double_performance.html" title="
+ Comparing the performance of a single double_ generator">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,16 +26,20 @@
<div class="spirit-nav">
<a accesskey="p" href="../numeric_performance.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../numeric_performance.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="double_performance.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Comparing the performance of a single int_ generator">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.performance_measurements.numeric_performance.int_performance"></a><a class="link" href="int_performance.html" title="Comparing the performance of a single int_ generator">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.performance_measurements.numeric_performance.int_performance"></a><a href="int_performance.html" title="
+ Comparing the performance of a single int_ generator">
Comparing the performance of a single int_ generator</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<p>
This performance measurements are centered around default formatting
- of a single <code class="computeroutput"><span class="keyword">int</span></code> integer
+ of a single <tt class="computeroutput"><span class="keyword">int</span></tt> integer
number using different libraries and methods. The overall execution times
- for those examples are compared below. We compare using <code class="computeroutput"><span class="identifier">sprintf</span></code>, C++ iostreams, Boost.Format,
+ for those examples are compared below. We compare using <tt class="computeroutput"><span class="identifier">sprintf</span></tt>, C++ iostreams, Boost.Format,
and <span class="emphasis"><em>Spirit.Karma</em></span>.
</p>
<p>
@@ -41,7 +49,7 @@
shown below).
</p>
<p>
- Code used to measure the performance for <code class="computeroutput"><span class="identifier">ltoa</span></code>:
+ Code used to measure the performance for <tt class="computeroutput"><span class="identifier">ltoa</span></tt>:
</p>
<p>
</p>
@@ -122,12 +130,12 @@
using different compilers. All times are in seconds measured for 10000000
iterations (platform: Windows7, Intel Core Duo(tm) Processor, 2.8GHz,
4GByte RAM). For a more readable comparison of the results see this
- <a class="link" href="int_performance.html#spirit.karma.int_performance" title="Figure 3. Performance comparison for a single int">figure</a>.
+ figure.
</p>
<div class="table">
-<a name="id872403"></a><p class="title"><b>Table 5. Performance comparison for a single int (all
+<a name="id684535"></a><p class="title"><b>Table 5. Performance comparison for a single int (all
times in [s], 10000000 iterations)</b></p>
-<div class="table-contents"><table class="table" summary="Performance comparison for a single int (all
+<table class="table" summary="Performance comparison for a single int (all
times in [s], 10000000 iterations)">
<colgroup>
<col>
@@ -139,201 +147,132 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Library
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
gcc 4.4.0 (32 bit)
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
VC++ 10 (32 bit)
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Intel 11.1 (32 bit)
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
gcc 4.4.0 (64 bit)
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
VC++ 10 (64 bit)
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Intel 11.1 (64 bit)
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
+<td><p>
ltoa
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
1.542
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
0.895
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
0.884
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
1.163
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
1.099
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
0.906
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
iostreams
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
6.548
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
13.727
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
11.898
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
3.464
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
8.316
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
8.115
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
<a href="../../../../../../../../libs/format/index.html" target="_top">Boost.Format</a>
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
16.998
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
21.813
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
20.477
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
17.464
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
14.662
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
13.646
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
<span class="emphasis"><em>Spirit.Karma</em></span> int_
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
1.421
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
0.744
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
0.697
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
1.072
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
0.953
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
0.606
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
-</table></div>
+</table>
</div>
-<br class="table-break"><p>
+<p>
</p>
<div class="figure">
<a name="spirit.karma.int_performance"></a><p class="title"><b>Figure 3. Performance comparison for a single int</b></p>
-<div class="figure-contents"><span class="inlinemediaobject"><img src="../../../.././images/int_performance.png" alt="Performance comparison for a single int"></span></div>
+<span class="inlinemediaobject"><img src="./images/int_performance.png" alt="Performance
+ comparison for a single int"></span>
</div>
-<p><br class="figure-break">
+<p>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/karma/quick_reference.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/quick_reference.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/quick_reference.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,13 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Quick Reference</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../index.html" title="Spirit 2.1">
-<link rel="up" href="../karma.html" title="Karma - Writing Generators">
-<link rel="prev" href="tutorials/num_matrix.html" title="Matrix of Numbers - Printing Numbers From a Matrix">
-<link rel="next" href="quick_reference/common_notation.html" title="Common Notation">
+<link rel="up" href="../karma.html" title=" Karma - Writing Generators">
+<link rel="previous" href="tutorials/num_matrix.html" title=" Matrix of Numbers
+ - Printing Numbers From a Matrix">
+<link rel="next" href="quick_reference/common_notation.html" title="Common
+ Notation">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,10 +24,13 @@
<div class="spirit-nav">
<a accesskey="p" href="tutorials/num_matrix.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../karma.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="quick_reference/common_notation.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Quick Reference">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.karma.quick_reference"></a><a class="link" href="quick_reference.html" title="Quick Reference">Quick Reference</a>
-</h3></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h3 class="title">
+<a name="spirit.karma.quick_reference"></a>Quick Reference
+</h3></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section"><a href="quick_reference/common_notation.html">Common
Notation</a></span></dt>
Modified: trunk/libs/spirit/doc/html/spirit/karma/quick_reference/common_notation.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/quick_reference/common_notation.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/quick_reference/common_notation.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Common Notation</title>
+<title>Common
+ Notation</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../quick_reference.html" title="Quick Reference">
-<link rel="prev" href="../quick_reference.html" title="Quick Reference">
-<link rel="next" href="primitive_generators.html" title="Karma Generators">
+<link rel="previous" href="../quick_reference.html" title="Quick Reference">
+<link rel="next" href="primitive_generators.html" title="
+ Karma Generators">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,122 +24,126 @@
<div class="spirit-nav">
<a accesskey="p" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="primitive_generators.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Common Notation">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.quick_reference.common_notation"></a><a class="link" href="common_notation.html" title="Common Notation">Common
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.quick_reference.common_notation"></a><a href="common_notation.html" title="Common
+ Notation">Common
Notation</a>
-</h4></div></div></div>
-<div class="variablelist" title="Notation">
+</h4></div></div>
+<div></div>
+</div>
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">G</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">G</span></tt></span></dt>
<dd><p>
Generator type
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">g</span><span class="special">,</span> <span class="identifier">a</span><span class="special">,</span>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">g</span><span class="special">,</span> <span class="identifier">a</span><span class="special">,</span>
<span class="identifier">b</span><span class="special">,</span>
<span class="identifier">c</span><span class="special">,</span>
- <span class="identifier">d</span></code></span></dt>
+ <span class="identifier">d</span></tt></span></dt>
<dd><p>
Generator objects
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">,</span>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">,</span>
<span class="identifier">C</span><span class="special">,</span>
- <span class="identifier">D</span></code></span></dt>
+ <span class="identifier">D</span></tt></span></dt>
<dd><p>
- Attribute types of generators <code class="computeroutput"><span class="identifier">a</span></code>,
- <code class="computeroutput"><span class="identifier">b</span></code>, <code class="computeroutput"><span class="identifier">c</span></code>,
- and <code class="computeroutput"><span class="identifier">d</span></code>
+ Attribute types of generators <tt class="computeroutput"><span class="identifier">a</span></tt>,
+ <tt class="computeroutput"><span class="identifier">b</span></tt>, <tt class="computeroutput"><span class="identifier">c</span></tt>,
+ and <tt class="computeroutput"><span class="identifier">d</span></tt>
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">I</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">I</span></tt></span></dt>
<dd><p>
The iterator type used for generation
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Unused</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Unused</span></tt></span></dt>
<dd><p>
- An <code class="computeroutput"><span class="identifier">unused_type</span></code>
+ An <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Context</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Context</span></tt></span></dt>
<dd><p>
- The enclosing rule's <code class="computeroutput"><span class="identifier">Context</span></code>
+ The enclosing rule's <tt class="computeroutput"><span class="identifier">Context</span></tt>
type
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">attrib</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">attrib</span></tt></span></dt>
<dd><p>
A attribute value
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Attrib</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Attrib</span></tt></span></dt>
<dd><p>
An attribute type
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">b</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">b</span></tt></span></dt>
<dd><p>
A boolean expression
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">B</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">B</span></tt></span></dt>
<dd><p>
A type to be interpreted as in boolean expressions
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">fg</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">fg</span></tt></span></dt>
<dd><p>
- A (lazy generator) function with signature <code class="computeroutput"><span class="identifier">G</span><span class="special">(</span><span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">)</span></code>
+ A (lazy generator) function with signature <tt class="computeroutput"><span class="identifier">G</span><span class="special">(</span><span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">)</span></tt>
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">fa</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">fa</span></tt></span></dt>
<dd><p>
- A (semantic action) function with signature <code class="computeroutput"><span class="keyword">void</span><span class="special">(</span><span class="identifier">Attrib</span><span class="special">&,</span> <span class="identifier">Context</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&)</span></code>. The third parameter is a boolean
+ A (semantic action) function with signature <tt class="computeroutput"><span class="keyword">void</span><span class="special">(</span><span class="identifier">Attrib</span><span class="special">&,</span> <span class="identifier">Context</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&)</span></tt>. The third parameter is a boolean
flag that can be set to false to force the generator to fail. Both
- <code class="computeroutput"><span class="identifier">Context</span></code> and the boolean
+ <tt class="computeroutput"><span class="identifier">Context</span></tt> and the boolean
flag are optional.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">outiter</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">outiter</span></tt></span></dt>
<dd><p>
An output iterator to receive the generated output
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Ch</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Ch</span></tt></span></dt>
<dd><p>
Character-class specific character type (See Character Class Types)
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">ch</span><span class="special">,</span> <span class="identifier">ch2</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">ch</span><span class="special">,</span> <span class="identifier">ch2</span></tt></span></dt>
<dd><p>
Character-class specific character (See Character Class Types)
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">charset</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">charset</span></tt></span></dt>
<dd><p>
Character-set specifier string (example: "a-z0-9")
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">str</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">str</span></tt></span></dt>
<dd><p>
Character-class specific string (See Character Class Types)
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Str</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Str</span></tt></span></dt>
<dd><p>
- Attribute of <code class="computeroutput"><span class="identifier">str</span></code>:
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></code>
- where <code class="computeroutput"><span class="identifier">T</span></code> is the underlying
- character type of <code class="computeroutput"><span class="identifier">str</span></code>
+ Attribute of <tt class="computeroutput"><span class="identifier">str</span></tt>:
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></tt>
+ where <tt class="computeroutput"><span class="identifier">T</span></tt> is the underlying
+ character type of <tt class="computeroutput"><span class="identifier">str</span></tt>
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">num</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">num</span></tt></span></dt>
<dd><p>
Numeric literal, any integer or real number type
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Num</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Num</span></tt></span></dt>
<dd><p>
- Attribute of <code class="computeroutput"><span class="identifier">num</span></code>: any
+ Attribute of <tt class="computeroutput"><span class="identifier">num</span></tt>: any
integer or real number type
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">tuple</span><span class="special"><></span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">tuple</span><span class="special"><></span></tt></span></dt>
<dd><p>
Used as a placeholder for a fusion sequence
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">vector</span><span class="special"><></span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">vector</span><span class="special"><></span></tt></span></dt>
<dd><p>
Used as a placeholder for an STL container
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">variant</span><span class="special"><></span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">variant</span><span class="special"><></span></tt></span></dt>
<dd><p>
Used as a placeholder for a boost::variant
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">optional</span><span class="special"><></span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">optional</span><span class="special"><></span></tt></span></dt>
<dd><p>
Used as a placeholder for a boost::optional
</p></dd>
Modified: trunk/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/quick_reference/compound_attribute_rules.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Compound Attribute Rules</title>
+<title>Compound
+ Attribute Rules</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../quick_reference.html" title="Quick Reference">
-<link rel="prev" href="primitive_generators/action.html" title="Generator Semantic Actions">
+<link rel="previous" href="primitive_generators/action.html" title="
+ Generator Semantic Actions">
<link rel="next" href="non_terminals.html" title="Non-terminals">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,26 +24,30 @@
<div class="spirit-nav">
<a accesskey="p" href="primitive_generators/action.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="non_terminals.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Compound Attribute Rules">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.quick_reference.compound_attribute_rules"></a><a class="link" href="compound_attribute_rules.html" title="Compound Attribute Rules">Compound
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.quick_reference.compound_attribute_rules"></a><a href="compound_attribute_rules.html" title="Compound
+ Attribute Rules">Compound
Attribute Rules</a>
-</h4></div></div></div>
-<a name="spirit.karma.quick_reference.compound_attribute_rules.notation"></a><h6>
-<a name="id751705"></a>
- <a class="link" href="compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Notation</a>
- </h6>
+</h4></div></div>
+<div></div>
+</div>
+<a name="spirit.karma.quick_reference.compound_attribute_rules.notation"></a><h5>
+<a name="id564114"></a>
+ Notation
+ </h5>
<p>
The notation we will use will be of the form:
</p>
<pre class="programlisting"><span class="identifier">a</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">B</span><span class="special">,</span> <span class="special">...</span> <span class="special">--></span> <span class="identifier">composite</span><span class="special">-</span><span class="identifier">expression</span><span class="special">:</span> <span class="identifier">composite</span><span class="special">-</span><span class="identifier">attribute</span>
</pre>
<p>
- <code class="computeroutput"><span class="identifier">a</span></code>, <code class="computeroutput"><span class="identifier">b</span></code>,
- etc. are the operands. <code class="computeroutput"><span class="identifier">A</span></code>,
- <code class="computeroutput"><span class="identifier">B</span></code>, etc. are the operand's
- attribute types. <code class="computeroutput"><span class="identifier">composite</span><span class="special">-</span><span class="identifier">expression</span></code>
- is the expression involving the operands and <code class="computeroutput"><span class="identifier">composite</span><span class="special">-</span><span class="identifier">attribute</span></code>
+ <tt class="computeroutput"><span class="identifier">a</span></tt>, <tt class="computeroutput"><span class="identifier">b</span></tt>,
+ etc. are the operands. <tt class="computeroutput"><span class="identifier">A</span></tt>,
+ <tt class="computeroutput"><span class="identifier">B</span></tt>, etc. are the operand's
+ attribute types. <tt class="computeroutput"><span class="identifier">composite</span><span class="special">-</span><span class="identifier">expression</span></tt>
+ is the expression involving the operands and <tt class="computeroutput"><span class="identifier">composite</span><span class="special">-</span><span class="identifier">attribute</span></tt>
is the resulting attribute type of the composite expression.
</p>
<p>
@@ -50,64 +56,60 @@
<pre class="programlisting"><span class="identifier">a</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">B</span> <span class="special">--></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">tuple</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>
- which reads as: given, <code class="computeroutput"><span class="identifier">a</span></code>
- and <code class="computeroutput"><span class="identifier">b</span></code> are generators, and
- <code class="computeroutput"><span class="identifier">A</span></code> is the type of the attribute
- of <code class="computeroutput"><span class="identifier">a</span></code>, and <code class="computeroutput"><span class="identifier">B</span></code> is the type of the attribute of <code class="computeroutput"><span class="identifier">b</span></code>, then the type of the attribute of
- <code class="computeroutput"><span class="identifier">a</span> <span class="special"><<</span>
- <span class="identifier">b</span></code> will be <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></code>.
+ which reads as: given, <tt class="computeroutput"><span class="identifier">a</span></tt>
+ and <tt class="computeroutput"><span class="identifier">b</span></tt> are generators, and
+ <tt class="computeroutput"><span class="identifier">A</span></tt> is the type of the attribute
+ of <tt class="computeroutput"><span class="identifier">a</span></tt>, and <tt class="computeroutput"><span class="identifier">B</span></tt> is the type of the attribute of <tt class="computeroutput"><span class="identifier">b</span></tt>, then the type of the attribute of
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special"><<</span>
+ <span class="identifier">b</span></tt> will be <tt class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></tt>.
</p>
-<div class="important" title="Important"><table border="0" summary="Important">
+<div class="important"><table border="0" summary="Important">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../images/important.png"></td>
<th align="left">Important</th>
</tr>
-<tr><td align="left" valign="top"><p>
- In the attribute tables, we will use <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code> and <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">...></span></code> as placeholders only. The notation
- of <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>
+<tr><td colspan="2" align="left" valign="top"><p>
+ In the attribute tables, we will use <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt> and <tt class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">...></span></tt> as placeholders only. The notation
+ of <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>
stands for <span class="emphasis"><em>any STL
- container</em></span> holding elements of type <code class="computeroutput"><span class="identifier">A</span></code>
- and the notation <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">...></span></code> stands for <span class="emphasis"><em>any Boost.Fusion sequence</em></span>
- holding <code class="computeroutput"><span class="identifier">A</span></code>, <code class="computeroutput"><span class="identifier">B</span></code>, ... etc. elements. The notation
- of <code class="computeroutput"><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> <span class="special">...></span></code> stands for <span class="emphasis"><em>a Boost.Variant</em></span>
- capable of holding <code class="computeroutput"><span class="identifier">A</span></code>,
- <code class="computeroutput"><span class="identifier">B</span></code>, ... etc. elements.
- Finally, <code class="computeroutput"><span class="identifier">Unused</span></code> stands
- for <code class="computeroutput"><span class="identifier">unused_type</span></code>.
+ container</em></span> holding elements of type <tt class="computeroutput"><span class="identifier">A</span></tt>
+ and the notation <tt class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">...></span></tt> stands for <span class="emphasis"><em>any Boost.Fusion sequence</em></span>
+ holding <tt class="computeroutput"><span class="identifier">A</span></tt>, <tt class="computeroutput"><span class="identifier">B</span></tt>, ... etc. elements. The notation
+ of <tt class="computeroutput"><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> <span class="special">...></span></tt> stands for <span class="emphasis"><em>a Boost.Variant</em></span>
+ capable of holding <tt class="computeroutput"><span class="identifier">A</span></tt>,
+ <tt class="computeroutput"><span class="identifier">B</span></tt>, ... etc. elements.
+ Finally, <tt class="computeroutput"><span class="identifier">Unused</span></tt> stands
+ for <tt class="computeroutput"><span class="identifier">unused_type</span></tt>.
</p></td></tr>
</table></div>
-<a name="spirit.karma.quick_reference.compound_attribute_rules.compound_generator_attribute_types"></a><h6>
-<a name="id753333"></a>
- <a class="link" href="compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.compound_generator_attribute_types">Compound
+<a name="spirit.karma.quick_reference.compound_attribute_rules.compound_generator_attribute_types"></a><h5>
+<a name="id564897"></a>
+ <a href="compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.compound_generator_attribute_types">Compound
Generator Attribute Types</a>
- </h6>
+ </h5>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
+<td><p>
+ <a href="../reference/operator/sequence.html" title=" Sequences
+ (a <<
+ b)">Sequence
+ (<tt class="computeroutput"><span class="special"><<</span></tt>)</a>
+ </p></td>
<td>
- <p>
- <a class="link" href="../reference/operator/sequence.html" title="Sequences (a << b)">Sequence
- (<code class="computeroutput"><span class="special"><<</span></code>)</a>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</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">B</span> <span class="special">--></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">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span>
@@ -121,17 +123,17 @@
<span class="identifier">a</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">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span> <span class="special">--></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">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <a href="../reference/operator/alternative.html" title=" Alternative
+ (a |
+ b)">Alternative
+ (<tt class="computeroutput"><span class="special">|</span></tt>)</a>
+ </p></td>
<td>
- <p>
- <a class="link" href="../reference/operator/alternative.html" title="Alternative (a | b)">Alternative
- (<code class="computeroutput"><span class="special">|</span></code>)</a>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</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">B</span> <span class="special">--></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">variant</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span>
@@ -141,120 +143,107 @@
<span class="identifier">a</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">A</span> <span class="special">--></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">A</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <a href="../reference/operator/kleene.html" title=" Kleene Star
+ (*a)">kleene (unary
+ <tt class="computeroutput"><span class="special">*</span></tt>)</a>
+ </p></td>
<td>
- <p>
- <a class="link" href="../reference/operator/kleene.html" title="Kleene Star (*a)">kleene (unary
- <code class="computeroutput"><span class="special">*</span></code>)</a>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="special">*</span><span class="identifier">a</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">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">*</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <a href="../reference/operator/plus.html" title=" Plus (+a)">Plus (unary
+ <tt class="computeroutput"><span class="special">+</span></tt>)</a>
+ </p></td>
<td>
- <p>
- <a class="link" href="../reference/operator/plus.html" title="Plus (+a)">Plus (unary
- <code class="computeroutput"><span class="special">+</span></code>)</a>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="special">+</span><span class="identifier">a</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">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">+</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ List (%)
+ </p></td>
<td>
- <p>
- <a class="link" href="../reference/operator/list.html" title="Lists (a % b)">List (<code class="computeroutput"><span class="special">%</span></code>)</a>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</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">B</span> <span class="special">--></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">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--></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">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <a href="../reference/directive/repeat.html" title=" Repetition
+ Directive (repeat[])">repetition</a>
+ </p></td>
<td>
- <p>
- <a class="link" href="../reference/directive/repeat.html" title="Repetition Directive (repeat[])">repetition</a>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">repeat</span><span class="special">(...,...)[</span><span class="identifier">a</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">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">repeat</span><span class="special">(...,...)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <a href="../reference/operator/optional.html" title=" Optional
+ (-a)">Optional
+ (unary <tt class="computeroutput"><span class="special">-</span></tt>)</a>
+ </p></td>
<td>
- <p>
- <a class="link" href="../reference/operator/optional.html" title="Optional (-a)">Optional
- (unary <code class="computeroutput"><span class="special">-</span></code>)</a>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="special">-</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">-</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../reference/operator/and_predicate.html" title="And Predicate (&a)">And
- predicate (unary <code class="computeroutput"><span class="special">&</span></code>)</a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+<td><p>
+ <a href="../reference/operator/and_predicate.html" title=" And
+ Predicate (&a)">And
+ predicate (unary <tt class="computeroutput"><span class="special">&</span></tt>)</a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
<span class="identifier">A</span> <span class="special">--></span>
- <span class="special">&</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span></code>
- </p>
- </td>
+ <span class="special">&</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../reference/operator/not_predicate.html" title="Not Predicate (!a)">Not
- predicate (unary <code class="computeroutput"><span class="special">!</span></code>)</a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+<td><p>
+ <a href="../reference/operator/not_predicate.html" title=" Not
+ Predicate (!a)">Not
+ predicate (unary <tt class="computeroutput"><span class="special">!</span></tt>)</a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
<span class="identifier">A</span> <span class="special">--></span>
- <span class="special">!</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span></code>
- </p>
- </td>
+ <span class="special">!</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/quick_reference/non_terminals.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/quick_reference/non_terminals.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/quick_reference/non_terminals.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,13 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Non-terminals</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../quick_reference.html" title="Quick Reference">
-<link rel="prev" href="compound_attribute_rules.html" title="Compound Attribute Rules">
-<link rel="next" href="semantic_actions.html" title="Semantic Actions">
+<link rel="previous" href="compound_attribute_rules.html" title="Compound
+ Attribute Rules">
+<link rel="next" href="semantic_actions.html" title="Semantic
+ Actions">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,58 +24,61 @@
<div class="spirit-nav">
<a accesskey="p" href="compound_attribute_rules.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="semantic_actions.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Non-terminals">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.quick_reference.non_terminals"></a><a class="link" href="non_terminals.html" title="Non-terminals">Non-terminals</a>
-</h4></div></div></div>
-<div class="variablelist" title="Notation">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.quick_reference.non_terminals"></a>Non-terminals
+</h4></div></div>
+<div></div>
+</div>
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">RT</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">RT</span></tt></span></dt>
<dd><p>
Synthesized attribute. The rule or grammar's return type.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Arg1</span></code>,
- <code class="computeroutput"><span class="identifier">Arg2</span></code>, <code class="computeroutput"><span class="identifier">ArgN</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Arg1</span></tt>,
+ <tt class="computeroutput"><span class="identifier">Arg2</span></tt>, <tt class="computeroutput"><span class="identifier">ArgN</span></tt></span></dt>
<dd><p>
Inherited attributes. Zero or more arguments.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">L1</span></code>,
- <code class="computeroutput"><span class="identifier">L2</span></code>, <code class="computeroutput"><span class="identifier">LN</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">L1</span></tt>,
+ <tt class="computeroutput"><span class="identifier">L2</span></tt>, <tt class="computeroutput"><span class="identifier">LN</span></tt></span></dt>
<dd><p>
Zero or more local variables.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">r</span><span class="special">,</span> <span class="identifier">r2</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">r</span><span class="special">,</span> <span class="identifier">r2</span></tt></span></dt>
<dd><p>
Rules
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">g</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">g</span></tt></span></dt>
<dd><p>
A grammar
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">p</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">p</span></tt></span></dt>
<dd><p>
A generator expression
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">my_grammar</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">my_grammar</span></tt></span></dt>
<dd><p>
A user defined grammar
</p></dd>
</dl>
</div>
-<div class="variablelist" title="Terminology">
+<div class="variablelist">
<p class="title"><b>Terminology</b></p>
<dl>
<dt><span class="term">Signature</span></dt>
<dd><p>
- <code class="computeroutput"><span class="identifier">RT</span><span class="special">(</span><span class="identifier">Arg1</span><span class="special">,</span> <span class="identifier">Arg2</span> <span class="special">...</span>
- <span class="special">,</span><span class="identifier">ArgN</span><span class="special">)</span></code>. The signature specifies the synthesized
+ <tt class="computeroutput"><span class="identifier">RT</span><span class="special">(</span><span class="identifier">Arg1</span><span class="special">,</span> <span class="identifier">Arg2</span> <span class="special">...</span>
+ <span class="special">,</span><span class="identifier">ArgN</span><span class="special">)</span></tt>. The signature specifies the synthesized
(return value) and inherited (arguments) attributes.
</p></dd>
<dt><span class="term">Locals</span></dt>
<dd><p>
- <code class="computeroutput"><span class="identifier">locals</span><span class="special"><</span><span class="identifier">L1</span><span class="special">,</span> <span class="identifier">L2</span> <span class="special">...,</span>
- <span class="identifier">LN</span><span class="special">></span></code>.
+ <tt class="computeroutput"><span class="identifier">locals</span><span class="special"><</span><span class="identifier">L1</span><span class="special">,</span> <span class="identifier">L2</span> <span class="special">...,</span>
+ <span class="identifier">LN</span><span class="special">></span></tt>.
The local variables.
</p></dd>
<dt><span class="term">Delimiter</span></dt>
@@ -82,15 +87,15 @@
</p></dd>
</dl>
</div>
-<div class="variablelist" title="Template Arguments">
+<div class="variablelist">
<p class="title"><b>Template Arguments</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Iterator</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Iterator</span></tt></span></dt>
<dd><p>
The iterator type you will use for parsing.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">A1</span></code>,
- <code class="computeroutput"><span class="identifier">A2</span></code>, <code class="computeroutput"><span class="identifier">A3</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">A1</span></tt>,
+ <tt class="computeroutput"><span class="identifier">A2</span></tt>, <tt class="computeroutput"><span class="identifier">A3</span></tt></span></dt>
<dd><p>
Can be one of 1)Signature 2)Locals 3)Skipper.
</p></dd>
@@ -102,149 +107,109 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span>
<span class="identifier">A1</span><span class="special">,</span>
<span class="identifier">A2</span><span class="special">,</span>
<span class="identifier">A3</span><span class="special">></span>
- <span class="identifier">r</span><span class="special">(</span><span class="identifier">name</span><span class="special">);</span></code>
- </p>
- </td>
-<td>
- <p>
- Rule declaration. <code class="computeroutput"><span class="identifier">Iterator</span></code>
- is required. <code class="computeroutput"><span class="identifier">A1</span><span class="special">,</span> <span class="identifier">A2</span><span class="special">,</span> <span class="identifier">A3</span></code>
- are optional and can be specified in any order. <code class="computeroutput"><span class="identifier">name</span></code>
+ <span class="identifier">r</span><span class="special">(</span><span class="identifier">name</span><span class="special">);</span></tt>
+ </p></td>
+<td><p>
+ Rule declaration. <tt class="computeroutput"><span class="identifier">Iterator</span></tt>
+ is required. <tt class="computeroutput"><span class="identifier">A1</span><span class="special">,</span> <span class="identifier">A2</span><span class="special">,</span> <span class="identifier">A3</span></tt>
+ are optional and can be specified in any order. <tt class="computeroutput"><span class="identifier">name</span></tt>
is an optional string that gives the rule its name, useful for
debugging and error handling.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span>
<span class="identifier">A1</span><span class="special">,</span>
<span class="identifier">A2</span><span class="special">,</span>
<span class="identifier">A3</span><span class="special">></span>
- <span class="identifier">r</span><span class="special">(</span><span class="identifier">r2</span><span class="special">);</span></code>
- </p>
- </td>
-<td>
- <p>
- Copy construct rule <code class="computeroutput"><span class="identifier">r</span></code>
- from rule <code class="computeroutput"><span class="identifier">r2</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">r</span> <span class="special">=</span>
- <span class="identifier">r2</span><span class="special">;</span></code>
- </p>
- </td>
-<td>
- <p>
- Assign rule <code class="computeroutput"><span class="identifier">r2</span></code>
- to <code class="computeroutput"><span class="identifier">r</span></code>. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> semantics.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">alias</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
- return an alias of <code class="computeroutput"><span class="identifier">r</span></code>.
- The alias is a generator that holds a reference to <code class="computeroutput"><span class="identifier">r</span></code>. Reference semantics.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">copy</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
- Get a copy of <code class="computeroutput"><span class="identifier">r</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="identifier">name</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+ <span class="identifier">r</span><span class="special">(</span><span class="identifier">r2</span><span class="special">);</span></tt>
+ </p></td>
+<td><p>
+ Copy construct rule <tt class="computeroutput"><span class="identifier">r</span></tt>
+ from rule <tt class="computeroutput"><span class="identifier">r2</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">r</span> <span class="special">=</span>
+ <span class="identifier">r2</span><span class="special">;</span></tt>
+ </p></td>
+<td><p>
+ Assign rule <tt class="computeroutput"><span class="identifier">r2</span></tt>
+ to <tt class="computeroutput"><span class="identifier">r</span></tt>. <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></tt> semantics.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">alias</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
+ return an alias of <tt class="computeroutput"><span class="identifier">r</span></tt>.
+ The alias is a generator that holds a reference to <tt class="computeroutput"><span class="identifier">r</span></tt>. Reference semantics.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">copy</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
+ Get a copy of <tt class="computeroutput"><span class="identifier">r</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="identifier">name</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Naming a rule
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">name</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">name</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
Getting the name of a rule
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">r</span> <span class="special">=</span>
- <span class="identifier">g</span><span class="special">;</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">r</span> <span class="special">=</span>
+ <span class="identifier">g</span><span class="special">;</span></tt>
+ </p></td>
+<td><p>
Rule definition
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">r</span> <span class="special">%=</span>
- <span class="identifier">g</span><span class="special">;</span></code>
- </p>
- </td>
-<td>
- <p>
- Auto-rule definition. The attribute of <code class="computeroutput"><span class="identifier">g</span></code>
- should be compatible with the synthesized attribute of <code class="computeroutput"><span class="identifier">r</span></code>. When <code class="computeroutput"><span class="identifier">g</span></code>
- is successful, its attribute is automatically propagated to <code class="computeroutput"><span class="identifier">r</span></code>'s synthesized attribute.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">r</span> <span class="special">%=</span>
+ <span class="identifier">g</span><span class="special">;</span></tt>
+ </p></td>
+<td><p>
+ Auto-rule definition. The attribute of <tt class="computeroutput"><span class="identifier">g</span></tt>
+ should be compatible with the synthesized attribute of <tt class="computeroutput"><span class="identifier">r</span></tt>. When <tt class="computeroutput"><span class="identifier">g</span></tt>
+ is successful, its attribute is automatically propagated to <tt class="computeroutput"><span class="identifier">r</span></tt>'s synthesized attribute.
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
@@ -262,50 +227,36 @@
</pre>
<p>
</p>
- </td>
-<td>
- <p>
- Grammar definition. <code class="computeroutput"><span class="identifier">name</span></code>
+</td>
+<td><p>
+ Grammar definition. <tt class="computeroutput"><span class="identifier">name</span></tt>
is an optional string that gives the grammar its name, useful for
debugging and error handling.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
my_grammar<Iterator> g
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Instantiating a grammar
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="identifier">name</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="identifier">name</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Naming a grammar
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">name</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">name</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
Getting the name of a grammar
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/quick_reference/phoenix.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/quick_reference/phoenix.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/quick_reference/phoenix.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,11 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Phoenix</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../quick_reference.html" title="Quick Reference">
-<link rel="prev" href="semantic_actions.html" title="Semantic Actions">
+<link rel="previous" href="semantic_actions.html" title="Semantic
+ Actions">
<link rel="next" href="../reference.html" title="Reference">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,10 +23,13 @@
<div class="spirit-nav">
<a accesskey="p" href="semantic_actions.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Phoenix">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.quick_reference.phoenix"></a><a class="link" href="phoenix.html" title="Phoenix">Phoenix</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.quick_reference.phoenix"></a>Phoenix
+</h4></div></div>
+<div></div>
+</div>
<p>
<a href="../../../../../phoenix/doc/html/index.html" target="_top">Boost.Phoenix</a> makes
it easier to attach semantic actions. You just inline your lambda expressions:
@@ -34,38 +38,38 @@
</pre>
<p>
<span class="emphasis"><em>Spirit.Karma</em></span> provides some Boost.Phoenix
- placeholders to access important information from the <code class="computeroutput"><span class="identifier">Attrib</span></code>
- and <code class="computeroutput"><span class="identifier">Context</span></code> that are otherwise
+ placeholders to access important information from the <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ and <tt class="computeroutput"><span class="identifier">Context</span></tt> that are otherwise
fiddly to extract.
</p>
-<div class="variablelist" title="Spirit.Karma specific Phoenix placeholders">
+<div class="variablelist">
<p class="title"><b>Spirit.Karma specific Phoenix placeholders</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">_1</span><span class="special">,</span> <span class="identifier">_2</span><span class="special">...</span> <span class="special">,</span> <span class="identifier">_N</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">_1</span><span class="special">,</span> <span class="identifier">_2</span><span class="special">...</span> <span class="special">,</span> <span class="identifier">_N</span></tt></span></dt>
<dd><p>
- Nth attribute of <code class="computeroutput"><span class="identifier">g</span></code>
+ Nth attribute of <tt class="computeroutput"><span class="identifier">g</span></tt>
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">_val</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">_val</span></tt></span></dt>
<dd><p>
The enclosing rule's synthesized attribute.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">_r1</span><span class="special">,</span> <span class="identifier">_r2</span><span class="special">...</span> <span class="special">,</span> <span class="identifier">_rN</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">_r1</span><span class="special">,</span> <span class="identifier">_r2</span><span class="special">...</span> <span class="special">,</span> <span class="identifier">_rN</span></tt></span></dt>
<dd><p>
The enclosing rule's Nth inherited attribute.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">_a</span><span class="special">,</span> <span class="identifier">_b</span><span class="special">...</span> <span class="special">,</span> <span class="identifier">_j</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">_a</span><span class="special">,</span> <span class="identifier">_b</span><span class="special">...</span> <span class="special">,</span> <span class="identifier">_j</span></tt></span></dt>
<dd><p>
- The enclosing rule's local variables (<code class="computeroutput"><span class="identifier">_a</span></code>
+ The enclosing rule's local variables (<tt class="computeroutput"><span class="identifier">_a</span></tt>
refers to the first).
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">_pass</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">_pass</span></tt></span></dt>
<dd><p>
- Assign <code class="computeroutput"><span class="keyword">false</span></code> to <code class="computeroutput"><span class="identifier">_pass</span></code> to force a generator failure.
+ Assign <tt class="computeroutput"><span class="keyword">false</span></tt> to <tt class="computeroutput"><span class="identifier">_pass</span></tt> to force a generator failure.
</p></dd>
</dl>
</div>
<p>
- For more information see <a class="link" href="../tutorials/semantic_actions.html" title="Semantic Actions">Semantic
+ For more information see <a href="../tutorials/semantic_actions.html" title="Semantic Actions">Semantic
Actions</a>.
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Karma Generators</title>
+<title>
+ Karma Generators</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../quick_reference.html" title="Quick Reference">
-<link rel="prev" href="common_notation.html" title="Common Notation">
-<link rel="next" href="primitive_generators/char.html" title="Character Generators">
+<link rel="previous" href="common_notation.html" title="Common
+ Notation">
+<link rel="next" href="primitive_generators/char.html" title="
+ Character Generators">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +25,15 @@
<div class="spirit-nav">
<a accesskey="p" href="common_notation.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="primitive_generators/char.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Karma Generators">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.quick_reference.primitive_generators"></a><a class="link" href="primitive_generators.html" title="Karma Generators">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.quick_reference.primitive_generators"></a><a href="primitive_generators.html" title="
+ Karma Generators">
Karma Generators</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section"><a href="primitive_generators/char.html">
Character Generators</a></span></dt>
Modified: trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/action.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/action.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/action.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,17 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Generator Semantic Actions</title>
+<title>
+ Generator Semantic Actions</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../primitive_generators.html" title="Karma Generators">
-<link rel="prev" href="directives.html" title="Generator Directives">
-<link rel="next" href="../compound_attribute_rules.html" title="Compound Attribute Rules">
+<link rel="up" href="../primitive_generators.html" title="
+ Karma Generators">
+<link rel="previous" href="directives.html" title="
+ Generator Directives">
+<link rel="next" href="../compound_attribute_rules.html" title="Compound
+ Attribute Rules">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +26,15 @@
<div class="spirit-nav">
<a accesskey="p" href="directives.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../primitive_generators.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../compound_attribute_rules.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Generator Semantic Actions">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.quick_reference.primitive_generators.action"></a><a class="link" href="action.html" title="Generator Semantic Actions">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.quick_reference.primitive_generators.action"></a><a href="action.html" title="
+ Generator Semantic Actions">
Generator Semantic Actions</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<div class="informaltable"><table class="table">
<colgroup>
<col>
@@ -34,39 +42,27 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">g</span><span class="special">[</span><span class="identifier">fa</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Attribute of <code class="computeroutput"><span class="identifier">g</span></code>
- </p>
- </td>
-<td>
- <p>
- Call semantic action, <code class="computeroutput"><span class="identifier">fa</span></code>
- before invoking <code class="computeroutput"><span class="identifier">g</span></code>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">g</span><span class="special">[</span><span class="identifier">fa</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Attribute of <tt class="computeroutput"><span class="identifier">g</span></tt>
+ </p></td>
+<td><p>
+ Call semantic action, <tt class="computeroutput"><span class="identifier">fa</span></tt>
+ before invoking <tt class="computeroutput"><span class="identifier">g</span></tt>.
+ </p></td>
</tr></tbody>
</table></div>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/auxiliary.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/auxiliary.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/auxiliary.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,17 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Auxiliary Generators</title>
+<title>
+ Auxiliary Generators</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../primitive_generators.html" title="Karma Generators">
-<link rel="prev" href="binary.html" title="Binary Generators">
-<link rel="next" href="operators.html" title="Generator Operators">
+<link rel="up" href="../primitive_generators.html" title="
+ Karma Generators">
+<link rel="previous" href="binary.html" title="
+ Binary Generators">
+<link rel="next" href="operators.html" title="
+ Generator Operators">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,13 +26,17 @@
<div class="spirit-nav">
<a accesskey="p" href="binary.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../primitive_generators.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="operators.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Auxiliary Generators">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.quick_reference.primitive_generators.auxiliary"></a><a class="link" href="auxiliary.html" title="Auxiliary Generators">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.quick_reference.primitive_generators.auxiliary"></a><a href="auxiliary.html" title="
+ Auxiliary Generators">
Auxiliary Generators</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<p>
- See here for more information about <a class="link" href="../../reference/auxiliary.html" title="Auxiliary">Auxiliary
+ See here for more information about <a href="../../reference/auxiliary.html" title="Auxiliary">Auxiliary
Generators</a>.
</p>
<div class="informaltable"><table class="table">
@@ -38,149 +46,103 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/auxiliary/attr_cast.html" title="Attribute Transformation Pseudo Generator (attr_cast)"><code class="computeroutput"><span class="identifier">attr_cast</span><span class="special"><</span><span class="identifier">Attrib</span><span class="special">>(</span><span class="identifier">g</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Attrib</span></code>
- </p>
- </td>
-<td>
- <p>
- Invokes <code class="computeroutput"><span class="identifier">g</span></code> while
- supplying an attribute of type <code class="computeroutput"><span class="identifier">Attrib</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/auxiliary/eol.html" title="End of Line (eol)"><code class="computeroutput"><span class="identifier">eol</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Unused</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates the end of line (<code class="computeroutput"><span class="special">\</span><span class="identifier">n</span></code>)
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/auxiliary/eps.html" title="Epsilon (eps)"><code class="computeroutput"><span class="identifier">eps</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Unused</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/auxiliary/attr_cast.html" title=" Attribute
+ Transformation Pseudo Generator (attr_cast)"><tt class="computeroutput"><span class="identifier">attr_cast</span><span class="special"><</span><span class="identifier">Attrib</span><span class="special">>(</span><span class="identifier">g</span><span class="special">)</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ </p></td>
+<td><p>
+ Invokes <tt class="computeroutput"><span class="identifier">g</span></tt> while
+ supplying an attribute of type <tt class="computeroutput"><span class="identifier">Attrib</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/auxiliary/eol.html" title=" End of Line
+ (eol)"><tt class="computeroutput"><span class="identifier">eol</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Unused</span></tt>
+ </p></td>
+<td><p>
+ Generates the end of line (<tt class="computeroutput"><span class="special">\</span><span class="identifier">n</span></tt>)
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ eps
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Unused</span></tt>
+ </p></td>
+<td><p>
Generate an empty string
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/auxiliary/eps.html" title="Epsilon (eps)"><code class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Unused</span></code>
- </p>
- </td>
-<td>
- <p>
- If <code class="computeroutput"><span class="identifier">b</span></code> is true,
+<td><p>
+ eps(b)
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Unused</span></tt>
+ </p></td>
+<td><p>
+ If <tt class="computeroutput"><span class="identifier">b</span></tt> is true,
generate an empty string
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/auxiliary/lazy.html" title="Lazy (lazy)"><code class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fg</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- Attribute of <code class="computeroutput"><span class="identifier">G</span></code>
- where <code class="computeroutput"><span class="identifier">G</span></code> is the
- return type of <code class="computeroutput"><span class="identifier">fg</span></code>
- </p>
- </td>
-<td>
- <p>
- Invoke <code class="computeroutput"><span class="identifier">fg</span></code> at
- generation time, returning a generator <code class="computeroutput"><span class="identifier">g</span></code>
+<td><p>
+ lazy(fg)
+ </p></td>
+<td><p>
+ Attribute of <tt class="computeroutput"><span class="identifier">G</span></tt>
+ where <tt class="computeroutput"><span class="identifier">G</span></tt> is the
+ return type of <tt class="computeroutput"><span class="identifier">fg</span></tt>
+ </p></td>
+<td><p>
+ Invoke <tt class="computeroutput"><span class="identifier">fg</span></tt> at
+ generation time, returning a generator <tt class="computeroutput"><span class="identifier">g</span></tt>
which is then called to generate.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/auxiliary/lazy.html" title="Lazy (lazy)"><code class="computeroutput"><span class="identifier">fg</span></code></a>
- </p>
- </td>
-<td>
- <p>
- see <a class="link" href="../../reference/auxiliary/lazy.html" title="Lazy (lazy)"><code class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fg</span><span class="special">)</span></code></a>
+<td><p>
+ fg
+ </p></td>
+<td><p>
+ see lazy(fg)
above
- </p>
- </td>
-<td>
- <p>
- Equivalent to <a class="link" href="../../reference/auxiliary/lazy.html" title="Lazy (lazy)"><code class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fg</span><span class="special">)</span></code></a>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">g</span><span class="special">[</span><span class="identifier">fa</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Attribute of <code class="computeroutput"><span class="identifier">g</span></code>
- </p>
- </td>
-<td>
- <p>
- Call semantic action <code class="computeroutput"><span class="identifier">fa</span></code>
- (before executing <code class="computeroutput"><span class="identifier">g</span></code>).
- </p>
- </td>
+ </p></td>
+<td><p>
+ Equivalent to lazy(fg)
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">g</span><span class="special">[</span><span class="identifier">fa</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Attribute of <tt class="computeroutput"><span class="identifier">g</span></tt>
+ </p></td>
+<td><p>
+ Call semantic action <tt class="computeroutput"><span class="identifier">fa</span></tt>
+ (before executing <tt class="computeroutput"><span class="identifier">g</span></tt>).
+ </p></td>
</tr>
</tbody>
</table></div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/binary.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/binary.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/binary.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,17 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Binary Generators</title>
+<title>
+ Binary Generators</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../primitive_generators.html" title="Karma Generators">
-<link rel="prev" href="stream.html" title="Stream Generators">
-<link rel="next" href="auxiliary.html" title="Auxiliary Generators">
+<link rel="up" href="../primitive_generators.html" title="
+ Karma Generators">
+<link rel="previous" href="stream.html" title="
+ Stream Generators">
+<link rel="next" href="auxiliary.html" title="
+ Auxiliary Generators">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,13 +26,17 @@
<div class="spirit-nav">
<a accesskey="p" href="stream.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../primitive_generators.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="auxiliary.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Binary Generators">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.quick_reference.primitive_generators.binary"></a><a class="link" href="binary.html" title="Binary Generators">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.quick_reference.primitive_generators.binary"></a><a href="binary.html" title="
+ Binary Generators">
Binary Generators</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<p>
- See here for more information about <a class="link" href="../../reference/binary.html" title="Binary">Binary
+ See here for more information about <a href="../../reference/binary.html" title=" Binary">Binary
Generators</a>.
</p>
<div class="informaltable"><table class="table">
@@ -38,210 +46,148 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/binary/binary_native.html" title="Binary Native Endianness Generators"><code class="computeroutput"><span class="identifier">byte_</span></code></a>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/binary/binary_native.html" title=" Binary
+ Native Endianness Generators"><tt class="computeroutput"><span class="identifier">byte_</span></tt></a>
+ </p></td>
+<td><p>
8 bits native endian
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Generates an 8 bit binary
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/binary/binary_native.html" title="Binary Native Endianness Generators"><code class="computeroutput"><span class="identifier">word</span></code></a>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/binary/binary_native.html" title=" Binary
+ Native Endianness Generators"><tt class="computeroutput"><span class="identifier">word</span></tt></a>
+ </p></td>
+<td><p>
16 bits native endian
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Generates a 16 bit binary in native endian representation
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/binary/binary_big.html" title="Binary Big Endianness Generators"><code class="computeroutput"><span class="identifier">big_word</span></code></a>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/binary/binary_big.html" title=" Binary
+ Big Endianness Generators"><tt class="computeroutput"><span class="identifier">big_word</span></tt></a>
+ </p></td>
+<td><p>
16 bits big endian
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Generates a 16 bit binary in big endian representation
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/binary/binary_little.html" title="Binary Little Endianness Generators"><code class="computeroutput"><span class="identifier">little_word</span></code></a>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/binary/binary_little.html" title=" Binary
+ Little Endianness Generators"><tt class="computeroutput"><span class="identifier">little_word</span></tt></a>
+ </p></td>
+<td><p>
16 bits little endian
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Generates a 16 bit binary in little endian representation
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/binary/binary_native.html" title="Binary Native Endianness Generators"><code class="computeroutput"><span class="identifier">dword</span></code></a>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/binary/binary_native.html" title=" Binary
+ Native Endianness Generators"><tt class="computeroutput"><span class="identifier">dword</span></tt></a>
+ </p></td>
+<td><p>
32 bits native endian
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Generates a 32 bit binary in native endian representation
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/binary/binary_big.html" title="Binary Big Endianness Generators"><code class="computeroutput"><span class="identifier">big_dword</span></code></a>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/binary/binary_big.html" title=" Binary
+ Big Endianness Generators"><tt class="computeroutput"><span class="identifier">big_dword</span></tt></a>
+ </p></td>
+<td><p>
32 bits big endian
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Generates a 32 bit binary in big endian representation
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/binary/binary_little.html" title="Binary Little Endianness Generators"><code class="computeroutput"><span class="identifier">little_dword</span></code></a>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/binary/binary_little.html" title=" Binary
+ Little Endianness Generators"><tt class="computeroutput"><span class="identifier">little_dword</span></tt></a>
+ </p></td>
+<td><p>
32 bits little endian
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Generates a 32 bit binary in little endian representation
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/binary/binary_native.html" title="Binary Native Endianness Generators"><code class="computeroutput"><span class="identifier">qword</span></code></a>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/binary/binary_native.html" title=" Binary
+ Native Endianness Generators"><tt class="computeroutput"><span class="identifier">qword</span></tt></a>
+ </p></td>
+<td><p>
64 bits native endian
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Generates a 64 bit binary in native endian representation
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/binary/binary_big.html" title="Binary Big Endianness Generators"><code class="computeroutput"><span class="identifier">big_qword</span></code></a>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/binary/binary_big.html" title=" Binary
+ Big Endianness Generators"><tt class="computeroutput"><span class="identifier">big_qword</span></tt></a>
+ </p></td>
+<td><p>
64 bits big endian
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Generates a 64 bit binary in big endian representation
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/binary/binary_little.html" title="Binary Little Endianness Generators"><code class="computeroutput"><span class="identifier">little_qword</span></code></a>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/binary/binary_little.html" title=" Binary
+ Little Endianness Generators"><tt class="computeroutput"><span class="identifier">little_qword</span></tt></a>
+ </p></td>
+<td><p>
64 bits little endian
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Generates a 64 bit binary in little endian representation
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">pad</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Unused</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">pad</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Unused</span></tt>
+ </p></td>
+<td><p>
Generate additional null bytes allowing to align generated output
- with memory addresses divisible by <code class="computeroutput"><span class="identifier">num</span></code>.
- </p>
- </td>
+ with memory addresses divisible by <tt class="computeroutput"><span class="identifier">num</span></tt>.
+ </p></td>
</tr>
</tbody>
</table></div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/boolean.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/boolean.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/boolean.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,17 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Boolean Generators</title>
+<title>
+ Boolean Generators</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../primitive_generators.html" title="Karma Generators">
-<link rel="prev" href="unsigned_int.html" title="Unsigned Integer Generators">
-<link rel="next" href="stream.html" title="Stream Generators">
+<link rel="up" href="../primitive_generators.html" title="
+ Karma Generators">
+<link rel="previous" href="unsigned_int.html" title="
+ Unsigned Integer Generators">
+<link rel="next" href="stream.html" title="
+ Stream Generators">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +26,15 @@
<div class="spirit-nav">
<a accesskey="p" href="unsigned_int.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../primitive_generators.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="stream.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Boolean Generators">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.quick_reference.primitive_generators.boolean"></a><a class="link" href="boolean.html" title="Boolean Generators">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.quick_reference.primitive_generators.boolean"></a><a href="boolean.html" title="
+ Boolean Generators">
Boolean Generators</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<div class="informaltable"><table class="table">
<colgroup>
<col>
@@ -34,101 +42,75 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/boolean.html" title="Boolean Generators (bool_)"><code class="computeroutput"><span class="identifier">bool_</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">bool</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/numeric/boolean.html" title=" Boolean
+ Generators (bool_)"><tt class="computeroutput"><span class="identifier">bool_</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">bool</span></tt>
+ </p></td>
+<td><p>
Generate a boolean
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/boolean.html" title="Boolean Generators (bool_)"><code class="computeroutput"><span class="identifier">bool_</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">bool</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">b</span></code> as
+<td><p>
+ <a href="../../reference/numeric/boolean.html" title=" Boolean
+ Generators (bool_)"><tt class="computeroutput"><span class="identifier">bool_</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">bool</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">b</span></tt> as
a boolean, if an attribute is supplied it must match
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/boolean.html" title="Boolean Generators (bool_)">
+<td><p>
+ <a href="../../reference/numeric/boolean.html" title=" Boolean
+ Generators (bool_)">
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">bool_generator</span><span class="special"><</span>
<span class="identifier">B</span><span class="special">,</span> <span class="identifier">Policies</span>
<span class="special">>()</span></pre>
</a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">B</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate a boolean of type <code class="computeroutput"><span class="identifier">B</span></code>
- </p>
- </td>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">B</span></tt>
+ </p></td>
+<td><p>
+ Generate a boolean of type <tt class="computeroutput"><span class="identifier">B</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/boolean.html" title="Boolean Generators (bool_)">
+<td><p>
+ <a href="../../reference/numeric/boolean.html" title=" Boolean
+ Generators (bool_)">
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">bool_generator</span><span class="special"><</span>
<span class="identifier">B</span><span class="special">,</span> <span class="identifier">Policies</span>
<span class="special">>()(</span><span class="identifier">b</span><span class="special">)</span></pre>
</a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">B</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate a boolean <code class="computeroutput"><span class="identifier">b</span></code>
- as a <code class="computeroutput"><span class="identifier">B</span></code>, if an
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">B</span></tt>
+ </p></td>
+<td><p>
+ Generate a boolean <tt class="computeroutput"><span class="identifier">b</span></tt>
+ as a <tt class="computeroutput"><span class="identifier">B</span></tt>, if an
attribute is supplied it must match
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/char.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/char.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/char.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,17 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Character Generators</title>
+<title>
+ Character Generators</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../primitive_generators.html" title="Karma Generators">
-<link rel="prev" href="../primitive_generators.html" title="Karma Generators">
-<link rel="next" href="string.html" title="String Generators">
+<link rel="up" href="../primitive_generators.html" title="
+ Karma Generators">
+<link rel="previous" href="../primitive_generators.html" title="
+ Karma Generators">
+<link rel="next" href="string.html" title="
+ String Generators">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,13 +26,17 @@
<div class="spirit-nav">
<a accesskey="p" href="../primitive_generators.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../primitive_generators.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="string.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Character Generators">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.quick_reference.primitive_generators.char"></a><a class="link" href="char.html" title="Character Generators">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.quick_reference.primitive_generators.char"></a><a href="char.html" title="
+ Character Generators">
Character Generators</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<p>
- See here for more information about <a class="link" href="../../reference/char.html" title="Char">Character
+ See here for more information about <a href="../../reference/char.html" title=" Char">Character
Generators</a>.
</p>
<div class="informaltable"><table class="table">
@@ -38,378 +46,289 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/char/char_generator.html" title="Character Generators (char_, lit)"><code class="computeroutput"><span class="identifier">ch</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Unused</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates <code class="computeroutput"><span class="identifier">ch</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/char/char_generator.html" title="Character Generators (char_, lit)"><code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Unused</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates <code class="computeroutput"><span class="identifier">ch</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/char/char_generator.html" title="Character Generators (char_, lit)"><code class="computeroutput"><span class="identifier">char_</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/char/char_generator.html" title=" Character
+ Generators (char_, lit)"><tt class="computeroutput"><span class="identifier">ch</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Unused</span></tt>
+ </p></td>
+<td><p>
+ Generates <tt class="computeroutput"><span class="identifier">ch</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/char/char_generator.html" title=" Character
+ Generators (char_, lit)"><tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Unused</span></tt>
+ </p></td>
+<td><p>
+ Generates <tt class="computeroutput"><span class="identifier">ch</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/char/char_generator.html" title=" Character
+ Generators (char_, lit)"><tt class="computeroutput"><span class="identifier">char_</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
Generates character supplied as the attribute
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/char/char_generator.html" title="Character Generators (char_, lit)"><code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates <code class="computeroutput"><span class="identifier">ch</span></code>,
+<td><p>
+ <a href="../../reference/char/char_generator.html" title=" Character
+ Generators (char_, lit)"><tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Generates <tt class="computeroutput"><span class="identifier">ch</span></tt>,
if an attribute is supplied it must match
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/char/char_generator.html" title="Character Generators (char_, lit)"><code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="string">"c"</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates a single char string literal, <code class="computeroutput"><span class="identifier">c</span></code>,
+<td><p>
+ <a href="../../reference/char/char_generator.html" title=" Character
+ Generators (char_, lit)"><tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="string">"c"</span><span class="special">)</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Generates a single char string literal, <tt class="computeroutput"><span class="identifier">c</span></tt>,
if an attribute is supplied it must match
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/char/char_generator.html" title="Character Generators (char_, lit)"><code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch</span><span class="special">,</span>
- <span class="identifier">ch2</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates a single char string literal, <code class="computeroutput"><span class="identifier">c</span></code>,
- if <code class="computeroutput"><span class="identifier">c</span></code> belongs
- to the chracter range from <code class="computeroutput"><span class="identifier">ch</span></code>
- to <code class="computeroutput"><span class="identifier">ch2</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/char/char_generator.html" title="Character Generators (char_, lit)"><code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="identifier">charset</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates a single char string literal, <code class="computeroutput"><span class="identifier">c</span></code>,
- if <code class="computeroutput"><span class="identifier">c</span></code> belongs
- to the chracter set <code class="computeroutput"><span class="identifier">charset</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/char/char_class.html" title="Character Classification (alnum, digit, etc.)"><code class="computeroutput"><span class="identifier">alnum</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates the character supplied as the attribute if it satisfies
- the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isalnum</span></code>
- in the character set defined by <code class="computeroutput"><span class="identifier">NS</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/char/char_class.html" title="Character Classification (alnum, digit, etc.)"><code class="computeroutput"><span class="identifier">alpha</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates the character supplied as the attribute if it satisfies
- the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isalpha</span></code>
- in the character set defined by <code class="computeroutput"><span class="identifier">NS</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/char/char_class.html" title="Character Classification (alnum, digit, etc.)"><code class="computeroutput"><span class="identifier">blank</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates the character supplied as the attribute if it satisfies
- the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isblank</span></code>
- in the character set defined by <code class="computeroutput"><span class="identifier">NS</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/char/char_class.html" title="Character Classification (alnum, digit, etc.)"><code class="computeroutput"><span class="identifier">cntrl</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates the character supplied as the attribute if it satisfies
- the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">iscntrl</span></code>
- in the character set defined by <code class="computeroutput"><span class="identifier">NS</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/char/char_class.html" title="Character Classification (alnum, digit, etc.)"><code class="computeroutput"><span class="identifier">digit</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates the character supplied as the attribute if it satisfies
- the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isdigit</span></code>
- in the character set defined by <code class="computeroutput"><span class="identifier">NS</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/char/char_class.html" title="Character Classification (alnum, digit, etc.)"><code class="computeroutput"><span class="identifier">graph</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates the character supplied as the attribute if it satisfies
- the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isgraph</span></code>
- in the character set defined by <code class="computeroutput"><span class="identifier">NS</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/char/char_class.html" title="Character Classification (alnum, digit, etc.)"><code class="computeroutput"><span class="identifier">print</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates the character supplied as the attribute if it satisfies
- the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isprint</span></code>
- in the character set defined by <code class="computeroutput"><span class="identifier">NS</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/char/char_class.html" title="Character Classification (alnum, digit, etc.)"><code class="computeroutput"><span class="identifier">punct</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates the character supplied as the attribute if it satisfies
- the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ispunct</span></code>
- in the character set defined by <code class="computeroutput"><span class="identifier">NS</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/char/char_class.html" title="Character Classification (alnum, digit, etc.)"><code class="computeroutput"><span class="identifier">space</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/char/char_generator.html" title=" Character
+ Generators (char_, lit)"><tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch</span><span class="special">,</span>
+ <span class="identifier">ch2</span><span class="special">)</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Generates a single char string literal, <tt class="computeroutput"><span class="identifier">c</span></tt>,
+ if <tt class="computeroutput"><span class="identifier">c</span></tt> belongs
+ to the chracter range from <tt class="computeroutput"><span class="identifier">ch</span></tt>
+ to <tt class="computeroutput"><span class="identifier">ch2</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/char/char_generator.html" title=" Character
+ Generators (char_, lit)"><tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="identifier">charset</span><span class="special">)</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Generates a single char string literal, <tt class="computeroutput"><span class="identifier">c</span></tt>,
+ if <tt class="computeroutput"><span class="identifier">c</span></tt> belongs
+ to the chracter set <tt class="computeroutput"><span class="identifier">charset</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/char/char_class.html" title=" Character
+ Classification (alnum,
+ digit, etc.)"><tt class="computeroutput"><span class="identifier">alnum</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Generates the character supplied as the attribute if it satisfies
+ the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isalnum</span></tt>
+ in the character set defined by <tt class="computeroutput"><span class="identifier">NS</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/char/char_class.html" title=" Character
+ Classification (alnum,
+ digit, etc.)"><tt class="computeroutput"><span class="identifier">alpha</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Generates the character supplied as the attribute if it satisfies
+ the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isalpha</span></tt>
+ in the character set defined by <tt class="computeroutput"><span class="identifier">NS</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/char/char_class.html" title=" Character
+ Classification (alnum,
+ digit, etc.)"><tt class="computeroutput"><span class="identifier">blank</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Generates the character supplied as the attribute if it satisfies
+ the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isblank</span></tt>
+ in the character set defined by <tt class="computeroutput"><span class="identifier">NS</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/char/char_class.html" title=" Character
+ Classification (alnum,
+ digit, etc.)"><tt class="computeroutput"><span class="identifier">cntrl</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Generates the character supplied as the attribute if it satisfies
+ the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">iscntrl</span></tt>
+ in the character set defined by <tt class="computeroutput"><span class="identifier">NS</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/char/char_class.html" title=" Character
+ Classification (alnum,
+ digit, etc.)"><tt class="computeroutput"><span class="identifier">digit</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Generates the character supplied as the attribute if it satisfies
+ the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isdigit</span></tt>
+ in the character set defined by <tt class="computeroutput"><span class="identifier">NS</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/char/char_class.html" title=" Character
+ Classification (alnum,
+ digit, etc.)"><tt class="computeroutput"><span class="identifier">graph</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Generates the character supplied as the attribute if it satisfies
+ the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isgraph</span></tt>
+ in the character set defined by <tt class="computeroutput"><span class="identifier">NS</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/char/char_class.html" title=" Character
+ Classification (alnum,
+ digit, etc.)"><tt class="computeroutput"><span class="identifier">print</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Generates the character supplied as the attribute if it satisfies
+ the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isprint</span></tt>
+ in the character set defined by <tt class="computeroutput"><span class="identifier">NS</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/char/char_class.html" title=" Character
+ Classification (alnum,
+ digit, etc.)"><tt class="computeroutput"><span class="identifier">punct</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Generates the character supplied as the attribute if it satisfies
+ the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ispunct</span></tt>
+ in the character set defined by <tt class="computeroutput"><span class="identifier">NS</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/char/char_class.html" title=" Character
+ Classification (alnum,
+ digit, etc.)"><tt class="computeroutput"><span class="identifier">space</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
Generates the character supplied as the attribute if it satisfies
- the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isspace</span></code>,
+ the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isspace</span></tt>,
or a single space character in the character set defined by
- <code class="computeroutput"><span class="identifier">NS</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/char/char_class.html" title="Character Classification (alnum, digit, etc.)"><code class="computeroutput"><span class="identifier">xdigit</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates the character supplied as the attribute if it satisfies
- the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isxdigit</span></code>
- in the character set defined by <code class="computeroutput"><span class="identifier">NS</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/char/char_class.html" title="Character Classification (alnum, digit, etc.)"><code class="computeroutput"><span class="identifier">lower</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates the character supplied as the attribute if it satisfies
- the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">islower</span></code>
- in the character set defined by <code class="computeroutput"><span class="identifier">NS</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/char/char_class.html" title="Character Classification (alnum, digit, etc.)"><code class="computeroutput"><span class="identifier">upper</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates the character supplied as the attribute if it satisfies
- the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isupper</span></code>
- in the character set defined by <code class="computeroutput"><span class="identifier">NS</span></code>
- </p>
- </td>
+ <tt class="computeroutput"><span class="identifier">NS</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/char/char_class.html" title=" Character
+ Classification (alnum,
+ digit, etc.)"><tt class="computeroutput"><span class="identifier">xdigit</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Generates the character supplied as the attribute if it satisfies
+ the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isxdigit</span></tt>
+ in the character set defined by <tt class="computeroutput"><span class="identifier">NS</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/char/char_class.html" title=" Character
+ Classification (alnum,
+ digit, etc.)"><tt class="computeroutput"><span class="identifier">lower</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Generates the character supplied as the attribute if it satisfies
+ the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">islower</span></tt>
+ in the character set defined by <tt class="computeroutput"><span class="identifier">NS</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/char/char_class.html" title=" Character
+ Classification (alnum,
+ digit, etc.)"><tt class="computeroutput"><span class="identifier">upper</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Generates the character supplied as the attribute if it satisfies
+ the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isupper</span></tt>
+ in the character set defined by <tt class="computeroutput"><span class="identifier">NS</span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/directives.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/directives.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/directives.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,17 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Generator Directives</title>
+<title>
+ Generator Directives</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../primitive_generators.html" title="Karma Generators">
-<link rel="prev" href="operators.html" title="Generator Operators">
-<link rel="next" href="action.html" title="Generator Semantic Actions">
+<link rel="up" href="../primitive_generators.html" title="
+ Karma Generators">
+<link rel="previous" href="operators.html" title="
+ Generator Operators">
+<link rel="next" href="action.html" title="
+ Generator Semantic Actions">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,13 +26,17 @@
<div class="spirit-nav">
<a accesskey="p" href="operators.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../primitive_generators.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="action.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Generator Directives">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.quick_reference.primitive_generators.directives"></a><a class="link" href="directives.html" title="Generator Directives">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.quick_reference.primitive_generators.directives"></a><a href="directives.html" title="
+ Generator Directives">
Generator Directives</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<p>
- See here for more information about <a class="link" href="../../reference/directive.html" title="Directive">Generator
+ See here for more information about <a href="../../reference/directive.html" title=" Directive">Generator
Directives</a>.
</p>
<div class="informaltable"><table class="table">
@@ -38,420 +46,304 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/upperlower.html" title="Directives Controlling Case Sensitivity (upper[], lower[])"><code class="computeroutput"><span class="identifier">lower</span></code></a><code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> as
+<td><p>
+ <a href="../../reference/directive/upperlower.html" title=" Directives
+ Controlling Case Sensitivity (upper[], lower[])"><tt class="computeroutput"><span class="identifier">lower</span></tt></a><tt class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> as
lower case
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/upperlower.html" title="Directives Controlling Case Sensitivity (upper[], lower[])"><code class="computeroutput"><span class="identifier">upper</span></code></a><code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> as
+<td><p>
+ <a href="../../reference/directive/upperlower.html" title=" Directives
+ Controlling Case Sensitivity (upper[], lower[])"><tt class="computeroutput"><span class="identifier">upper</span></tt></a><tt class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> as
upper case
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/alignment.html" title="Alignment Directives (left_align[], center[], right_align[])"><code class="computeroutput"><span class="identifier">left_align</span></code></a><code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> left
- aligned in column of width <code class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/alignment.html" title="Alignment Directives (left_align[], center[], right_align[])"><code class="computeroutput"><span class="identifier">left_align</span></code></a><code class="computeroutput"><span class="special">(</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> left
- aligned in column of width <code class="computeroutput"><span class="identifier">num</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/alignment.html" title="Alignment Directives (left_align[], center[], right_align[])"><code class="computeroutput"><span class="identifier">left_align</span></code></a><code class="computeroutput"><span class="special">(</span><span class="identifier">num</span><span class="special">,</span> <span class="identifier">g</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> left
- aligned in column of width <code class="computeroutput"><span class="identifier">num</span></code>
- while using <code class="computeroutput"><span class="identifier">g</span></code>
+<td><p>
+ <a href="../../reference/directive/alignment.html" title=" Alignment
+ Directives (left_align[], center[], right_align[])"><tt class="computeroutput"><span class="identifier">left_align</span></tt></a><tt class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> left
+ aligned in column of width <tt class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/directive/alignment.html" title=" Alignment
+ Directives (left_align[], center[], right_align[])"><tt class="computeroutput"><span class="identifier">left_align</span></tt></a><tt class="computeroutput"><span class="special">(</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> left
+ aligned in column of width <tt class="computeroutput"><span class="identifier">num</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/directive/alignment.html" title=" Alignment
+ Directives (left_align[], center[], right_align[])"><tt class="computeroutput"><span class="identifier">left_align</span></tt></a><tt class="computeroutput"><span class="special">(</span><span class="identifier">num</span><span class="special">,</span> <span class="identifier">g</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> left
+ aligned in column of width <tt class="computeroutput"><span class="identifier">num</span></tt>
+ while using <tt class="computeroutput"><span class="identifier">g</span></tt>
to generate the necesssary padding
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/alignment.html" title="Alignment Directives (left_align[], center[], right_align[])"><code class="computeroutput"><span class="identifier">center</span></code></a><code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> centered
- in column of width <code class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/alignment.html" title="Alignment Directives (left_align[], center[], right_align[])"><code class="computeroutput"><span class="identifier">center</span></code></a><code class="computeroutput"><span class="special">(</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> centered
- in column of width <code class="computeroutput"><span class="identifier">num</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/alignment.html" title="Alignment Directives (left_align[], center[], right_align[])"><code class="computeroutput"><span class="identifier">center</span></code></a><code class="computeroutput"><span class="special">(</span><span class="identifier">num</span><span class="special">,</span> <span class="identifier">g</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> centered
- in column of width <code class="computeroutput"><span class="identifier">num</span></code>
- while using <code class="computeroutput"><span class="identifier">g</span></code>
+<td><p>
+ <a href="../../reference/directive/alignment.html" title=" Alignment
+ Directives (left_align[], center[], right_align[])"><tt class="computeroutput"><span class="identifier">center</span></tt></a><tt class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> centered
+ in column of width <tt class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/directive/alignment.html" title=" Alignment
+ Directives (left_align[], center[], right_align[])"><tt class="computeroutput"><span class="identifier">center</span></tt></a><tt class="computeroutput"><span class="special">(</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> centered
+ in column of width <tt class="computeroutput"><span class="identifier">num</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/directive/alignment.html" title=" Alignment
+ Directives (left_align[], center[], right_align[])"><tt class="computeroutput"><span class="identifier">center</span></tt></a><tt class="computeroutput"><span class="special">(</span><span class="identifier">num</span><span class="special">,</span> <span class="identifier">g</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> centered
+ in column of width <tt class="computeroutput"><span class="identifier">num</span></tt>
+ while using <tt class="computeroutput"><span class="identifier">g</span></tt>
to generate the necesssary padding
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/alignment.html" title="Alignment Directives (left_align[], center[], right_align[])"><code class="computeroutput"><span class="identifier">right_align</span></code></a><code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> right
- aligned in column of width <code class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/alignment.html" title="Alignment Directives (left_align[], center[], right_align[])"><code class="computeroutput"><span class="identifier">right_align</span></code></a><code class="computeroutput"><span class="special">(</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> right
- aligned in column of width <code class="computeroutput"><span class="identifier">num</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/alignment.html" title="Alignment Directives (left_align[], center[], right_align[])"><code class="computeroutput"><span class="identifier">right_align</span></code></a><code class="computeroutput"><span class="special">(</span><span class="identifier">num</span><span class="special">,</span> <span class="identifier">g</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> right
- aligned in column of width <code class="computeroutput"><span class="identifier">num</span></code>
- while using <code class="computeroutput"><span class="identifier">g</span></code>
+<td><p>
+ <a href="../../reference/directive/alignment.html" title=" Alignment
+ Directives (left_align[], center[], right_align[])"><tt class="computeroutput"><span class="identifier">right_align</span></tt></a><tt class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> right
+ aligned in column of width <tt class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/directive/alignment.html" title=" Alignment
+ Directives (left_align[], center[], right_align[])"><tt class="computeroutput"><span class="identifier">right_align</span></tt></a><tt class="computeroutput"><span class="special">(</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> right
+ aligned in column of width <tt class="computeroutput"><span class="identifier">num</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/directive/alignment.html" title=" Alignment
+ Directives (left_align[], center[], right_align[])"><tt class="computeroutput"><span class="identifier">right_align</span></tt></a><tt class="computeroutput"><span class="special">(</span><span class="identifier">num</span><span class="special">,</span> <span class="identifier">g</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> right
+ aligned in column of width <tt class="computeroutput"><span class="identifier">num</span></tt>
+ while using <tt class="computeroutput"><span class="identifier">g</span></tt>
to generate the necesssary padding
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/maxwidth.html" title="Controlling the Maximum Field Wield (maxwidth[])"><code class="computeroutput"><span class="identifier">maxwidth</span></code></a><code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> truncated
- to column of width <code class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_MAXWIDTH</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/maxwidth.html" title="Controlling the Maximum Field Wield (maxwidth[])"><code class="computeroutput"><span class="identifier">maxwidth</span></code></a><code class="computeroutput"><span class="special">(</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> truncated
- to column of width <code class="computeroutput"><span class="identifier">num</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/repeat.html" title="Repetition Directive (repeat[])"><code class="computeroutput"><span class="identifier">repeat</span></code></a><code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- Repeat <code class="computeroutput"><span class="identifier">a</span></code> zero
+<td><p>
+ <a href="../../reference/directive/maxwidth.html" title=" Controlling
+ the Maximum Field Wield (maxwidth[])"><tt class="computeroutput"><span class="identifier">maxwidth</span></tt></a><tt class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> truncated
+ to column of width <tt class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_MAXWIDTH</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/directive/maxwidth.html" title=" Controlling
+ the Maximum Field Wield (maxwidth[])"><tt class="computeroutput"><span class="identifier">maxwidth</span></tt></a><tt class="computeroutput"><span class="special">(</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> truncated
+ to column of width <tt class="computeroutput"><span class="identifier">num</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/directive/repeat.html" title=" Repetition
+ Directive (repeat[])"><tt class="computeroutput"><span class="identifier">repeat</span></tt></a><tt class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Repeat <tt class="computeroutput"><span class="identifier">a</span></tt> zero
or more times
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/repeat.html" title="Repetition Directive (repeat[])"><code class="computeroutput"><span class="identifier">repeat</span></code></a><code class="computeroutput"><span class="special">(</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- Repeat <code class="computeroutput"><span class="identifier">a</span></code> <code class="computeroutput"><span class="identifier">num</span></code> times
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/repeat.html" title="Repetition Directive (repeat[])"><code class="computeroutput"><span class="identifier">repeat</span></code></a><code class="computeroutput"><span class="special">(</span><span class="identifier">num1</span><span class="special">,</span> <span class="identifier">num2</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- Repeat <code class="computeroutput"><span class="identifier">a</span></code> <code class="computeroutput"><span class="identifier">num1</span></code> to <code class="computeroutput"><span class="identifier">num2</span></code>
+<td><p>
+ <a href="../../reference/directive/repeat.html" title=" Repetition
+ Directive (repeat[])"><tt class="computeroutput"><span class="identifier">repeat</span></tt></a><tt class="computeroutput"><span class="special">(</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Repeat <tt class="computeroutput"><span class="identifier">a</span></tt> <tt class="computeroutput"><span class="identifier">num</span></tt> times
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/directive/repeat.html" title=" Repetition
+ Directive (repeat[])"><tt class="computeroutput"><span class="identifier">repeat</span></tt></a><tt class="computeroutput"><span class="special">(</span><span class="identifier">num1</span><span class="special">,</span> <span class="identifier">num2</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Repeat <tt class="computeroutput"><span class="identifier">a</span></tt> <tt class="computeroutput"><span class="identifier">num1</span></tt> to <tt class="computeroutput"><span class="identifier">num2</span></tt>
times
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/repeat.html" title="Repetition Directive (repeat[])"><code class="computeroutput"><span class="identifier">repeat</span></code></a><code class="computeroutput"><span class="special">(</span><span class="identifier">num</span><span class="special">,</span> <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- Repeat <code class="computeroutput"><span class="identifier">a</span></code> <code class="computeroutput"><span class="identifier">num</span></code> or more times
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/delimit.html" title="Directives Controlling Automatic Delimiting (verbatim[], delimit[])"><code class="computeroutput"><span class="identifier">verbatim</span></code></a><code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
- Disable delimited generation for <code class="computeroutput"><span class="identifier">a</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/delimit.html" title="Directives Controlling Automatic Delimiting (verbatim[], delimit[])"><code class="computeroutput"><span class="identifier">delimit</span></code></a><code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/directive/repeat.html" title=" Repetition
+ Directive (repeat[])"><tt class="computeroutput"><span class="identifier">repeat</span></tt></a><tt class="computeroutput"><span class="special">(</span><span class="identifier">num</span><span class="special">,</span> <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Repeat <tt class="computeroutput"><span class="identifier">a</span></tt> <tt class="computeroutput"><span class="identifier">num</span></tt> or more times
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/directive/delimit.html" title=" Directives
+ Controlling Automatic Delimiting (verbatim[], delimit[])"><tt class="computeroutput"><span class="identifier">verbatim</span></tt></a><tt class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
+ Disable delimited generation for <tt class="computeroutput"><span class="identifier">a</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/directive/delimit.html" title=" Directives
+ Controlling Automatic Delimiting (verbatim[], delimit[])"><tt class="computeroutput"><span class="identifier">delimit</span></tt></a><tt class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
Reestablish the delimiter that got inhibited by verbatim
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/delimit.html" title="Directives Controlling Automatic Delimiting (verbatim[], delimit[])"><code class="computeroutput"><span class="identifier">delimit</span></code></a><code class="computeroutput"><span class="special">(</span><span class="identifier">d</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
- Use <code class="computeroutput"><span class="identifier">d</span></code> as a delimiter
- for generating <code class="computeroutput"><span class="identifier">a</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/omit.html" title="Consume Attribute (omit[])"><code class="computeroutput"><span class="identifier">omit</span></code></a><code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
- Consumes the attribute type of <code class="computeroutput"><span class="identifier">a</span></code>
+<td><p>
+ <a href="../../reference/directive/delimit.html" title=" Directives
+ Controlling Automatic Delimiting (verbatim[], delimit[])"><tt class="computeroutput"><span class="identifier">delimit</span></tt></a><tt class="computeroutput"><span class="special">(</span><span class="identifier">d</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
+ Use <tt class="computeroutput"><span class="identifier">d</span></tt> as a delimiter
+ for generating <tt class="computeroutput"><span class="identifier">a</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/directive/omit.html" title=" Consume Attribute
+ (omit[])"><tt class="computeroutput"><span class="identifier">omit</span></tt></a><tt class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
+ Consumes the attribute type of <tt class="computeroutput"><span class="identifier">a</span></tt>
without generating anything
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/buffer.html" title="Temporary Output Buffering (buffer[])"><code class="computeroutput"><span class="identifier">buffer</span></code></a><code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
- Temporarily intercepts the output generated by <code class="computeroutput"><span class="identifier">a</span></code>, flushing it only after
- <code class="computeroutput"><span class="identifier">a</span></code> succeeded.
- </p>
- </td>
+<td><p>
+ <a href="../../reference/directive/buffer.html" title=" Temporary
+ Output Buffering (buffer[])"><tt class="computeroutput"><span class="identifier">buffer</span></tt></a><tt class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
+ Temporarily intercepts the output generated by <tt class="computeroutput"><span class="identifier">a</span></tt>, flushing it only after
+ <tt class="computeroutput"><span class="identifier">a</span></tt> succeeded.
+ </p></td>
</tr>
</tbody>
</table></div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/operators.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/operators.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/operators.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,17 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Generator Operators</title>
+<title>
+ Generator Operators</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../primitive_generators.html" title="Karma Generators">
-<link rel="prev" href="auxiliary.html" title="Auxiliary Generators">
-<link rel="next" href="directives.html" title="Generator Directives">
+<link rel="up" href="../primitive_generators.html" title="
+ Karma Generators">
+<link rel="previous" href="auxiliary.html" title="
+ Auxiliary Generators">
+<link rel="next" href="directives.html" title="
+ Generator Directives">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,13 +26,17 @@
<div class="spirit-nav">
<a accesskey="p" href="auxiliary.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../primitive_generators.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="directives.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Generator Operators">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.quick_reference.primitive_generators.operators"></a><a class="link" href="operators.html" title="Generator Operators">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.quick_reference.primitive_generators.operators"></a><a href="operators.html" title="
+ Generator Operators">
Generator Operators</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<p>
- See here for more information about <a class="link" href="../../reference/operator.html" title="Operator">Generator
+ See here for more information about <a href="../../reference/operator.html" title="Operator">Generator
Operators</a>.
</p>
<div class="informaltable"><table class="table">
@@ -38,172 +46,126 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/operator/not_predicate.html" title="Not Predicate (!a)"><code class="computeroutput"><span class="special">!</span><span class="identifier">a</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
- Not predicate. Ensure that <code class="computeroutput"><span class="identifier">a</span></code>
+<td><p>
+ <a href="../../reference/operator/not_predicate.html" title=" Not
+ Predicate (!a)"><tt class="computeroutput"><span class="special">!</span><span class="identifier">a</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
+ Not predicate. Ensure that <tt class="computeroutput"><span class="identifier">a</span></tt>
does not succeed generating, but don't create any output
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/operator/not_predicate.html" title="Not Predicate (!a)"><code class="computeroutput"><span class="special">&</span><span class="identifier">a</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
- And predicate. Ensure that <code class="computeroutput"><span class="identifier">a</span></code>
+<td><p>
+ <a href="../../reference/operator/not_predicate.html" title=" Not
+ Predicate (!a)"><tt class="computeroutput"><span class="special">&</span><span class="identifier">a</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
+ And predicate. Ensure that <tt class="computeroutput"><span class="identifier">a</span></tt>
does succeed generating, but don't create any output
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/operator/optional.html" title="Optional (-a)"><code class="computeroutput"><span class="special">-</span><span class="identifier">a</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- Optional. Generate <code class="computeroutput"><span class="identifier">a</span></code>
+<td><p>
+ <a href="../../reference/operator/optional.html" title=" Optional
+ (-a)"><tt class="computeroutput"><span class="special">-</span><span class="identifier">a</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Optional. Generate <tt class="computeroutput"><span class="identifier">a</span></tt>
zero or one time
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/operator/kleene.html" title="Kleene Star (*a)"><code class="computeroutput"><span class="special">*</span><span class="identifier">a</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- Kleene. Generate <code class="computeroutput"><span class="identifier">a</span></code>
+<td><p>
+ <a href="../../reference/operator/kleene.html" title=" Kleene Star
+ (*a)"><tt class="computeroutput"><span class="special">*</span><span class="identifier">a</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Kleene. Generate <tt class="computeroutput"><span class="identifier">a</span></tt>
zero or more times
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/operator/plus.html" title="Plus (+a)"><code class="computeroutput"><span class="special">+</span><span class="identifier">a</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- Plus. Generate <code class="computeroutput"><span class="identifier">a</span></code>
+<td><p>
+ +a
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Plus. Generate <tt class="computeroutput"><span class="identifier">a</span></tt>
one or more times
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/operator/alternative.html" title="Alternative (a | b)"><code class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
- <span class="identifier">b</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><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></code>
- </p>
- </td>
-<td>
- <p>
- Alternative. Generate <code class="computeroutput"><span class="identifier">a</span></code>
- or <code class="computeroutput"><span class="identifier">b</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/operator/sequence.html" title="Sequences (a << b)"><code class="computeroutput"><span class="identifier">a</span> <span class="special"><<</span>
- <span class="identifier">b</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span>
- <span class="identifier">B</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- Sequence. Generate <code class="computeroutput"><span class="identifier">a</span></code>
- followed by <code class="computeroutput"><span class="identifier">b</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/operator/list.html" title="Lists (a % b)"><code class="computeroutput"><span class="identifier">a</span> <span class="special">%</span>
- <span class="identifier">b</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- List. Generate <code class="computeroutput"><span class="identifier">a</span></code>
- delimited <code class="computeroutput"><span class="identifier">b</span></code> one
+<td><p>
+ <a href="../../reference/operator/alternative.html" title=" Alternative
+ (a |
+ b)"><tt class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
+ <span class="identifier">b</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><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></tt>
+ </p></td>
+<td><p>
+ Alternative. Generate <tt class="computeroutput"><span class="identifier">a</span></tt>
+ or <tt class="computeroutput"><span class="identifier">b</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/operator/sequence.html" title=" Sequences
+ (a <<
+ b)"><tt class="computeroutput"><span class="identifier">a</span> <span class="special"><<</span>
+ <span class="identifier">b</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span>
+ <span class="identifier">B</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Sequence. Generate <tt class="computeroutput"><span class="identifier">a</span></tt>
+ followed by <tt class="computeroutput"><span class="identifier">b</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/operator/list.html" title=" Lists (a % b)"><tt class="computeroutput"><span class="identifier">a</span> <span class="special">%</span>
+ <span class="identifier">b</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ List. Generate <tt class="computeroutput"><span class="identifier">a</span></tt>
+ delimited <tt class="computeroutput"><span class="identifier">b</span></tt> one
or more times
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
@@ -212,7 +174,8 @@
</p>
<p>
For more information about the attribute propagation rules implemented
- by the compound generators please see <a class="link" href="../compound_attribute_rules.html" title="Compound Attribute Rules">Generator
+ by the compound generators please see <a href="../compound_attribute_rules.html" title="Compound
+ Attribute Rules">Generator
Compound Attribute Rules</a>.
</p>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/real_number.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/real_number.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/real_number.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,17 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Real Number Generators</title>
+<title>
+ Real Number Generators</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../primitive_generators.html" title="Karma Generators">
-<link rel="prev" href="string.html" title="String Generators">
-<link rel="next" href="signed_int.html" title="Integer Generators">
+<link rel="up" href="../primitive_generators.html" title="
+ Karma Generators">
+<link rel="previous" href="string.html" title="
+ String Generators">
+<link rel="next" href="signed_int.html" title="
+ Integer Generators">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,13 +26,17 @@
<div class="spirit-nav">
<a accesskey="p" href="string.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../primitive_generators.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="signed_int.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Real Number Generators">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.quick_reference.primitive_generators.real_number"></a><a class="link" href="real_number.html" title="Real Number Generators">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.quick_reference.primitive_generators.real_number"></a><a href="real_number.html" title="
+ Real Number Generators">
Real Number Generators</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<p>
- See here for more information about <a class="link" href="../../reference/numeric.html" title="Numeric">Numeric
+ See here for more information about <a href="../../reference/numeric.html" title=" Numeric">Numeric
Generators</a>.
</p>
<div class="informaltable"><table class="table">
@@ -38,195 +46,151 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric.html" title="Numeric"><code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Unused</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates <code class="computeroutput"><span class="identifier">num</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/real_number.html" title="Real Number Generators (float_, double_, etc.)"><code class="computeroutput"><span class="identifier">float_</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">float</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate a real number from a <code class="computeroutput"><span class="keyword">float</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/real_number.html" title="Real Number Generators (float_, double_, etc.)"><code class="computeroutput"><span class="identifier">float_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">float</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">num</span></code>
- as a real number from a <code class="computeroutput"><span class="keyword">float</span></code>,
+<td><p>
+ lit(num)
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Unused</span></tt>
+ </p></td>
+<td><p>
+ Generates <tt class="computeroutput"><span class="identifier">num</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/numeric/real_number.html" title=" Real
+ Number Generators (float_,
+ double_, etc.)"><tt class="computeroutput"><span class="identifier">float_</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">float</span></tt>
+ </p></td>
+<td><p>
+ Generate a real number from a <tt class="computeroutput"><span class="keyword">float</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/numeric/real_number.html" title=" Real
+ Number Generators (float_,
+ double_, etc.)"><tt class="computeroutput"><span class="identifier">float_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">float</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">num</span></tt>
+ as a real number from a <tt class="computeroutput"><span class="keyword">float</span></tt>,
if an attribute is supplied it must match
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/real_number.html" title="Real Number Generators (float_, double_, etc.)"><code class="computeroutput"><span class="identifier">double_</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">double</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate a real number from a <code class="computeroutput"><span class="keyword">double</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/real_number.html" title="Real Number Generators (float_, double_, etc.)"><code class="computeroutput"><span class="identifier">double_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">double</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate a <code class="computeroutput"><span class="identifier">num</span></code>
- as a real number from a <code class="computeroutput"><span class="keyword">double</span></code>,
+<td><p>
+ <a href="../../reference/numeric/real_number.html" title=" Real
+ Number Generators (float_,
+ double_, etc.)"><tt class="computeroutput"><span class="identifier">double_</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">double</span></tt>
+ </p></td>
+<td><p>
+ Generate a real number from a <tt class="computeroutput"><span class="keyword">double</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/numeric/real_number.html" title=" Real
+ Number Generators (float_,
+ double_, etc.)"><tt class="computeroutput"><span class="identifier">double_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">double</span></tt>
+ </p></td>
+<td><p>
+ Generate a <tt class="computeroutput"><span class="identifier">num</span></tt>
+ as a real number from a <tt class="computeroutput"><span class="keyword">double</span></tt>,
if an attribute is supplied it must match
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/real_number.html" title="Real Number Generators (float_, double_, etc.)"><code class="computeroutput"><span class="identifier">long_double</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate a real number from a <code class="computeroutput"><span class="keyword">long</span>
- <span class="keyword">double</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/real_number.html" title="Real Number Generators (float_, double_, etc.)"><code class="computeroutput"><span class="identifier">long_double</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">num</span></code>
- as a real number from a <code class="computeroutput"><span class="keyword">long</span>
- <span class="keyword">double</span></code>, if an attribute
+<td><p>
+ <a href="../../reference/numeric/real_number.html" title=" Real
+ Number Generators (float_,
+ double_, etc.)"><tt class="computeroutput"><span class="identifier">long_double</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></tt>
+ </p></td>
+<td><p>
+ Generate a real number from a <tt class="computeroutput"><span class="keyword">long</span>
+ <span class="keyword">double</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/numeric/real_number.html" title=" Real
+ Number Generators (float_,
+ double_, etc.)"><tt class="computeroutput"><span class="identifier">long_double</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">num</span></tt>
+ as a real number from a <tt class="computeroutput"><span class="keyword">long</span>
+ <span class="keyword">double</span></tt>, if an attribute
is supplied it must match
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/real_number.html" title="Real Number Generators (float_, double_, etc.)">
+<td><p>
+ <a href="../../reference/numeric/real_number.html" title=" Real
+ Number Generators (float_,
+ double_, etc.)">
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">real_generator</span><span class="special"><</span>
<span class="identifier">Num</span><span class="special">,</span> <span class="identifier">Policies</span>
<span class="special">>()</span></pre>
</a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Num</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate a real number <code class="computeroutput"><span class="identifier">Num</span></code>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Num</span></tt>
+ </p></td>
+<td><p>
+ Generate a real number <tt class="computeroutput"><span class="identifier">Num</span></tt>
using the supplied real number formatting policies
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/real_number.html" title="Real Number Generators (float_, double_, etc.)">
+<td><p>
+ <a href="../../reference/numeric/real_number.html" title=" Real
+ Number Generators (float_,
+ double_, etc.)">
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">real_generator</span><span class="special"><</span>
<span class="identifier">Num</span><span class="special">,</span> <span class="identifier">Policies</span>
<span class="special">>()(</span><span class="identifier">num</span><span class="special">)</span></pre>
</a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Num</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate real number <code class="computeroutput"><span class="identifier">num</span></code>
- as a <code class="computeroutput"><span class="identifier">Num</span></code> using
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Num</span></tt>
+ </p></td>
+<td><p>
+ Generate real number <tt class="computeroutput"><span class="identifier">num</span></tt>
+ as a <tt class="computeroutput"><span class="identifier">Num</span></tt> using
the supplied real number formatting policies, if an attribute
is supplied it must match
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/signed_int.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/signed_int.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/signed_int.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,17 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Integer Generators</title>
+<title>
+ Integer Generators</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../primitive_generators.html" title="Karma Generators">
-<link rel="prev" href="real_number.html" title="Real Number Generators">
-<link rel="next" href="unsigned_int.html" title="Unsigned Integer Generators">
+<link rel="up" href="../primitive_generators.html" title="
+ Karma Generators">
+<link rel="previous" href="real_number.html" title="
+ Real Number Generators">
+<link rel="next" href="unsigned_int.html" title="
+ Unsigned Integer Generators">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +26,15 @@
<div class="spirit-nav">
<a accesskey="p" href="real_number.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../primitive_generators.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="unsigned_int.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Integer Generators">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.quick_reference.primitive_generators.signed_int"></a><a class="link" href="signed_int.html" title="Integer Generators">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.quick_reference.primitive_generators.signed_int"></a><a href="signed_int.html" title="
+ Integer Generators">
Integer Generators</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<div class="informaltable"><table class="table">
<colgroup>
<col>
@@ -34,206 +42,160 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/signed_int.html" title="Signed Integer Number Generators (int_, etc.)"><code class="computeroutput"><span class="identifier">short_</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">short</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/numeric/signed_int.html" title=" Signed
+ Integer Number Generators (int_,
+ etc.)"><tt class="computeroutput"><span class="identifier">short_</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">short</span></tt>
+ </p></td>
+<td><p>
Generate a short integer
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/signed_int.html" title="Signed Integer Number Generators (int_, etc.)"><code class="computeroutput"><span class="identifier">short_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">short</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">num</span></code>
+<td><p>
+ <a href="../../reference/numeric/signed_int.html" title=" Signed
+ Integer Number Generators (int_,
+ etc.)"><tt class="computeroutput"><span class="identifier">short_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">short</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">num</span></tt>
as a short integer, if an attribute is supplied it must match
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/signed_int.html" title="Signed Integer Number Generators (int_, etc.)"><code class="computeroutput"><span class="identifier">int_</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">int</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/numeric/signed_int.html" title=" Signed
+ Integer Number Generators (int_,
+ etc.)"><tt class="computeroutput"><span class="identifier">int_</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">int</span></tt>
+ </p></td>
+<td><p>
Generate an int
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/signed_int.html" title="Signed Integer Number Generators (int_, etc.)"><code class="computeroutput"><span class="identifier">int_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">int</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">num</span></code>
+<td><p>
+ <a href="../../reference/numeric/signed_int.html" title=" Signed
+ Integer Number Generators (int_,
+ etc.)"><tt class="computeroutput"><span class="identifier">int_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">int</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">num</span></tt>
as an int, if an attribute is supplied it must match
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/signed_int.html" title="Signed Integer Number Generators (int_, etc.)"><code class="computeroutput"><span class="identifier">long_</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">long</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/numeric/signed_int.html" title=" Signed
+ Integer Number Generators (int_,
+ etc.)"><tt class="computeroutput"><span class="identifier">long_</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">long</span></tt>
+ </p></td>
+<td><p>
Generate a long integer
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/signed_int.html" title="Signed Integer Number Generators (int_, etc.)"><code class="computeroutput"><span class="identifier">long_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">long</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">num</span></code>
+<td><p>
+ <a href="../../reference/numeric/signed_int.html" title=" Signed
+ Integer Number Generators (int_,
+ etc.)"><tt class="computeroutput"><span class="identifier">long_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">long</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">num</span></tt>
as long integer, if an attribute is supplied it must match
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/signed_int.html" title="Signed Integer Number Generators (int_, etc.)"><code class="computeroutput"><span class="identifier">long_long</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">long</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/numeric/signed_int.html" title=" Signed
+ Integer Number Generators (int_,
+ etc.)"><tt class="computeroutput"><span class="identifier">long_long</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">long</span> <span class="keyword">long</span></tt>
+ </p></td>
+<td><p>
Generate a long long
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/signed_int.html" title="Signed Integer Number Generators (int_, etc.)"><code class="computeroutput"><span class="identifier">long_long</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">long</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">num</span></code>
+<td><p>
+ <a href="../../reference/numeric/signed_int.html" title=" Signed
+ Integer Number Generators (int_,
+ etc.)"><tt class="computeroutput"><span class="identifier">long_long</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">long</span> <span class="keyword">long</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">num</span></tt>
as an long long, if an attribute is supplied it must match
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/signed_int.html" title="Signed Integer Number Generators (int_, etc.)">
+<td><p>
+ <a href="../../reference/numeric/signed_int.html" title=" Signed
+ Integer Number Generators (int_,
+ etc.)">
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">int_generator</span><span class="special"><</span>
<span class="identifier">Num</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">force_sign</span>
<span class="special">>()</span></pre>
</a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Num</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate a <code class="computeroutput"><span class="identifier">Num</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/signed_int.html" title="Signed Integer Number Generators (int_, etc.)">
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Num</span></tt>
+ </p></td>
+<td><p>
+ Generate a <tt class="computeroutput"><span class="identifier">Num</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/numeric/signed_int.html" title=" Signed
+ Integer Number Generators (int_,
+ etc.)">
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">int_generator</span><span class="special"><</span>
<span class="identifier">Num</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">force_sign</span>
<span class="special">>()(</span><span class="identifier">num</span><span class="special">)</span></pre>
</a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Num</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate a <code class="computeroutput"><span class="identifier">num</span></code>
- as a <code class="computeroutput"><span class="identifier">Num</span></code>, if
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Num</span></tt>
+ </p></td>
+<td><p>
+ Generate a <tt class="computeroutput"><span class="identifier">num</span></tt>
+ as a <tt class="computeroutput"><span class="identifier">Num</span></tt>, if
an attribute is supplied it must match
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/stream.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/stream.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/stream.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,17 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Stream Generators</title>
+<title>
+ Stream Generators</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../primitive_generators.html" title="Karma Generators">
-<link rel="prev" href="boolean.html" title="Boolean Generators">
-<link rel="next" href="binary.html" title="Binary Generators">
+<link rel="up" href="../primitive_generators.html" title="
+ Karma Generators">
+<link rel="previous" href="boolean.html" title="
+ Boolean Generators">
+<link rel="next" href="binary.html" title="
+ Binary Generators">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,13 +26,17 @@
<div class="spirit-nav">
<a accesskey="p" href="boolean.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../primitive_generators.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="binary.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Stream Generators">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.quick_reference.primitive_generators.stream"></a><a class="link" href="stream.html" title="Stream Generators">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.quick_reference.primitive_generators.stream"></a><a href="stream.html" title="
+ Stream Generators">
Stream Generators</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<p>
- See here for more information about <a class="link" href="../../reference/stream.html" title="Stream">Stream
+ See here for more information about <a href="../../reference/stream.html" title="Stream">Stream
Generators</a>.
</p>
<div class="informaltable"><table class="table">
@@ -38,141 +46,99 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/stream.html" title="Stream"><code class="computeroutput"><span class="identifier">stream</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">hold_any</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates narrow character (<code class="computeroutput"><span class="keyword">char</span></code>)
- based output using the matching streaming <code class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/stream.html" title="Stream"><code class="computeroutput"><span class="identifier">stream</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Unused</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates narrow character (<code class="computeroutput"><span class="keyword">char</span></code>)
- based output from the immediate argument <code class="computeroutput"><span class="identifier">s</span></code>
- using the matching streaming <code class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/stream.html" title="Stream"><code class="computeroutput"><span class="identifier">wstream</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">hold_any</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates narrow character (<code class="computeroutput"><span class="keyword">wchar_t</span></code>)
- based output using the matching streaming <code class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/stream.html" title="Stream"><code class="computeroutput"><span class="identifier">wstream</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Unused</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates wide character (<code class="computeroutput"><span class="keyword">wchar_t</span></code>)
- based output from the immediate argument <code class="computeroutput"><span class="identifier">s</span></code>
- using the matching streaming <code class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/stream.html" title="Stream">
+<td><p>
+ stream
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">hold_any</span></tt>
+ </p></td>
+<td><p>
+ Generates narrow character (<tt class="computeroutput"><span class="keyword">char</span></tt>)
+ based output using the matching streaming <tt class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ stream(s)
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Unused</span></tt>
+ </p></td>
+<td><p>
+ Generates narrow character (<tt class="computeroutput"><span class="keyword">char</span></tt>)
+ based output from the immediate argument <tt class="computeroutput"><span class="identifier">s</span></tt>
+ using the matching streaming <tt class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ wstream
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">hold_any</span></tt>
+ </p></td>
+<td><p>
+ Generates narrow character (<tt class="computeroutput"><span class="keyword">wchar_t</span></tt>)
+ based output using the matching streaming <tt class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ wstream(s)
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Unused</span></tt>
+ </p></td>
+<td><p>
+ Generates wide character (<tt class="computeroutput"><span class="keyword">wchar_t</span></tt>)
+ based output from the immediate argument <tt class="computeroutput"><span class="identifier">s</span></tt>
+ using the matching streaming <tt class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/stream.html" title="Stream">
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">stream_generator</span><span class="special"><</span>
<span class="identifier">Char</span>
<span class="special">>()</span></pre>
</a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">hold_any</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates output based on the given character type (<code class="computeroutput"><span class="identifier">Char</span></code>) using the matching streaming
- <code class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/stream.html" title="Stream">
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">hold_any</span></tt>
+ </p></td>
+<td><p>
+ Generates output based on the given character type (<tt class="computeroutput"><span class="identifier">Char</span></tt>) using the matching streaming
+ <tt class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/stream.html" title="Stream">
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">stream_generator</span><span class="special"><</span>
<span class="identifier">Char</span>
<span class="special">>()(</span><span class="identifier">s</span><span class="special">)</span></pre>
</a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Unused</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates output based on the given character type <code class="computeroutput"><span class="identifier">Char</span></code> from the immediate argument
- <code class="computeroutput"><span class="identifier">s</span></code> using the matching
- streaming <code class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></code>
- </p>
- </td>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Unused</span></tt>
+ </p></td>
+<td><p>
+ Generates output based on the given character type <tt class="computeroutput"><span class="identifier">Char</span></tt> from the immediate argument
+ <tt class="computeroutput"><span class="identifier">s</span></tt> using the matching
+ streaming <tt class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/string.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/string.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/string.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,17 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>String Generators</title>
+<title>
+ String Generators</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../primitive_generators.html" title="Karma Generators">
-<link rel="prev" href="char.html" title="Character Generators">
-<link rel="next" href="real_number.html" title="Real Number Generators">
+<link rel="up" href="../primitive_generators.html" title="
+ Karma Generators">
+<link rel="previous" href="char.html" title="
+ Character Generators">
+<link rel="next" href="real_number.html" title="
+ Real Number Generators">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,13 +26,17 @@
<div class="spirit-nav">
<a accesskey="p" href="char.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../primitive_generators.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="real_number.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="String Generators">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.quick_reference.primitive_generators.string"></a><a class="link" href="string.html" title="String Generators">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.quick_reference.primitive_generators.string"></a><a href="string.html" title="
+ String Generators">
String Generators</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<p>
- See here for more information about <a class="link" href="../../reference/string.html" title="String">String
+ See here for more information about <a href="../../reference/string.html" title="String">String
Generators</a>.
</p>
<div class="informaltable"><table class="table">
@@ -38,91 +46,61 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/string.html" title="String"><code class="computeroutput"><span class="identifier">str</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Unused</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates <code class="computeroutput"><span class="identifier">str</span></code>
- </p>
- </td>
+<td><p>
+ str
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Unused</span></tt>
+ </p></td>
+<td><p>
+ Generates <tt class="computeroutput"><span class="identifier">str</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/string.html" title="String"><code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">str</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Unused</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates <code class="computeroutput"><span class="identifier">str</span></code>
- </p>
- </td>
+<td><p>
+ lit(str)
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Unused</span></tt>
+ </p></td>
+<td><p>
+ Generates <tt class="computeroutput"><span class="identifier">str</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/string.html" title="String"><code class="computeroutput"><span class="identifier">string</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Str</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ string
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Str</span></tt>
+ </p></td>
+<td><p>
Generates string supplied as the attribute
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/string.html" title="String"><code class="computeroutput"><span class="identifier">string</span><span class="special">(</span><span class="identifier">str</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Str</span></code>
- </p>
- </td>
-<td>
- <p>
- Generates <code class="computeroutput"><span class="identifier">str</span></code>,
+<td><p>
+ string(str)
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Str</span></tt>
+ </p></td>
+<td><p>
+ Generates <tt class="computeroutput"><span class="identifier">str</span></tt>,
if an attribute is supplied it must match
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/unsigned_int.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/unsigned_int.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/quick_reference/primitive_generators/unsigned_int.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,17 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Unsigned Integer Generators</title>
+<title>
+ Unsigned Integer Generators</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../primitive_generators.html" title="Karma Generators">
-<link rel="prev" href="signed_int.html" title="Integer Generators">
-<link rel="next" href="boolean.html" title="Boolean Generators">
+<link rel="up" href="../primitive_generators.html" title="
+ Karma Generators">
+<link rel="previous" href="signed_int.html" title="
+ Integer Generators">
+<link rel="next" href="boolean.html" title="
+ Boolean Generators">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +26,15 @@
<div class="spirit-nav">
<a accesskey="p" href="signed_int.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../primitive_generators.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="boolean.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Unsigned Integer Generators">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.quick_reference.primitive_generators.unsigned_int"></a><a class="link" href="unsigned_int.html" title="Unsigned Integer Generators">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.quick_reference.primitive_generators.unsigned_int"></a><a href="unsigned_int.html" title="
+ Unsigned Integer Generators">
Unsigned Integer Generators</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<div class="informaltable"><table class="table">
<colgroup>
<col>
@@ -34,265 +42,207 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/unsigned_int.html" title="Unsigned Integer Number Generators (uint_, etc.)"><code class="computeroutput"><span class="identifier">ushort_</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">short</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/numeric/unsigned_int.html" title=" Unsigned
+ Integer Number Generators (uint_,
+ etc.)"><tt class="computeroutput"><span class="identifier">ushort_</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">short</span></tt>
+ </p></td>
+<td><p>
Generate an unsigned short integer
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/unsigned_int.html" title="Unsigned Integer Number Generators (uint_, etc.)"><code class="computeroutput"><span class="identifier">ushort_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">short</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">num</span></code>
+<td><p>
+ <a href="../../reference/numeric/unsigned_int.html" title=" Unsigned
+ Integer Number Generators (uint_,
+ etc.)"><tt class="computeroutput"><span class="identifier">ushort_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">short</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">num</span></tt>
as an unsigned short integer, if an attribute is supplied it
must match
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/unsigned_int.html" title="Unsigned Integer Number Generators (uint_, etc.)"><code class="computeroutput"><span class="identifier">uint_</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/numeric/unsigned_int.html" title=" Unsigned
+ Integer Number Generators (uint_,
+ etc.)"><tt class="computeroutput"><span class="identifier">uint_</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></tt>
+ </p></td>
+<td><p>
Generate an unsigned int
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/unsigned_int.html" title="Unsigned Integer Number Generators (uint_, etc.)"><code class="computeroutput"><span class="identifier">uint_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">num</span></code>
+<td><p>
+ <a href="../../reference/numeric/unsigned_int.html" title=" Unsigned
+ Integer Number Generators (uint_,
+ etc.)"><tt class="computeroutput"><span class="identifier">uint_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">num</span></tt>
as an unsigned int, if an attribute is supplied it must match
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/unsigned_int.html" title="Unsigned Integer Number Generators (uint_, etc.)"><code class="computeroutput"><span class="identifier">ulong_</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/numeric/unsigned_int.html" title=" Unsigned
+ Integer Number Generators (uint_,
+ etc.)"><tt class="computeroutput"><span class="identifier">ulong_</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span></tt>
+ </p></td>
+<td><p>
Generate an unsigned long integer
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/unsigned_int.html" title="Unsigned Integer Number Generators (uint_, etc.)"><code class="computeroutput"><span class="identifier">ulong_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">num</span></code>
+<td><p>
+ <a href="../../reference/numeric/unsigned_int.html" title=" Unsigned
+ Integer Number Generators (uint_,
+ etc.)"><tt class="computeroutput"><span class="identifier">ulong_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">num</span></tt>
as an unsigned long integer, if an attribute is supplied it must
match
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/unsigned_int.html" title="Unsigned Integer Number Generators (uint_, etc.)"><code class="computeroutput"><span class="identifier">ulong_long</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span>
- <span class="keyword">long</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/numeric/unsigned_int.html" title=" Unsigned
+ Integer Number Generators (uint_,
+ etc.)"><tt class="computeroutput"><span class="identifier">ulong_long</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span>
+ <span class="keyword">long</span></tt>
+ </p></td>
+<td><p>
Generate an unsigned long long
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/unsigned_int.html" title="Unsigned Integer Number Generators (uint_, etc.)"><code class="computeroutput"><span class="identifier">ulong_long</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span>
- <span class="keyword">long</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">num</span></code>
+<td><p>
+ <a href="../../reference/numeric/unsigned_int.html" title=" Unsigned
+ Integer Number Generators (uint_,
+ etc.)"><tt class="computeroutput"><span class="identifier">ulong_long</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span>
+ <span class="keyword">long</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">num</span></tt>
as an unsigned long long, if an attribute is supplied it must
match
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/unsigned_int.html" title="Unsigned Integer Number Generators (uint_, etc.)"><code class="computeroutput"><span class="identifier">bin</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate a binary integer from an <code class="computeroutput"><span class="keyword">unsigned</span>
- <span class="keyword">int</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/unsigned_int.html" title="Unsigned Integer Number Generators (uint_, etc.)"><code class="computeroutput"><span class="identifier">oct</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate an octal integer from an <code class="computeroutput"><span class="keyword">unsigned</span>
- <span class="keyword">int</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/unsigned_int.html" title="Unsigned Integer Number Generators (uint_, etc.)"><code class="computeroutput"><span class="identifier">hex</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate a hexadecimal integer from an <code class="computeroutput"><span class="keyword">unsigned</span>
- <span class="keyword">int</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/unsigned_int.html" title="Unsigned Integer Number Generators (uint_, etc.)">
+<td><p>
+ <a href="../../reference/numeric/unsigned_int.html" title=" Unsigned
+ Integer Number Generators (uint_,
+ etc.)"><tt class="computeroutput"><span class="identifier">bin</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></tt>
+ </p></td>
+<td><p>
+ Generate a binary integer from an <tt class="computeroutput"><span class="keyword">unsigned</span>
+ <span class="keyword">int</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/numeric/unsigned_int.html" title=" Unsigned
+ Integer Number Generators (uint_,
+ etc.)"><tt class="computeroutput"><span class="identifier">oct</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></tt>
+ </p></td>
+<td><p>
+ Generate an octal integer from an <tt class="computeroutput"><span class="keyword">unsigned</span>
+ <span class="keyword">int</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/numeric/unsigned_int.html" title=" Unsigned
+ Integer Number Generators (uint_,
+ etc.)"><tt class="computeroutput"><span class="identifier">hex</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></tt>
+ </p></td>
+<td><p>
+ Generate a hexadecimal integer from an <tt class="computeroutput"><span class="keyword">unsigned</span>
+ <span class="keyword">int</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/numeric/unsigned_int.html" title=" Unsigned
+ Integer Number Generators (uint_,
+ etc.)">
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">uint_generator</span><span class="special"><</span>
<span class="identifier">Num</span><span class="special">,</span> <span class="identifier">Radix</span>
<span class="special">>()</span></pre>
</a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Num</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate an unsigned <code class="computeroutput"><span class="identifier">Num</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/numeric/unsigned_int.html" title="Unsigned Integer Number Generators (uint_, etc.)">
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Num</span></tt>
+ </p></td>
+<td><p>
+ Generate an unsigned <tt class="computeroutput"><span class="identifier">Num</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/numeric/unsigned_int.html" title=" Unsigned
+ Integer Number Generators (uint_,
+ etc.)">
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">uint_generator</span><span class="special"><</span>
<span class="identifier">Num</span><span class="special">,</span> <span class="identifier">Radix</span>
<span class="special">>()(</span><span class="identifier">num</span><span class="special">)</span></pre>
</a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Num</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate an unsigned <code class="computeroutput"><span class="identifier">num</span></code>
- as a <code class="computeroutput"><span class="identifier">Num</span></code>, if
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Num</span></tt>
+ </p></td>
+<td><p>
+ Generate an unsigned <tt class="computeroutput"><span class="identifier">num</span></tt>
+ as a <tt class="computeroutput"><span class="identifier">Num</span></tt>, if
an attribute is supplied it must match
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/quick_reference/semantic_actions.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/quick_reference/semantic_actions.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/quick_reference/semantic_actions.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Semantic Actions</title>
+<title>Semantic
+ Actions</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../quick_reference.html" title="Quick Reference">
-<link rel="prev" href="non_terminals.html" title="Non-terminals">
+<link rel="previous" href="non_terminals.html" title="Non-terminals">
<link rel="next" href="phoenix.html" title="Phoenix">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,18 +23,22 @@
<div class="spirit-nav">
<a accesskey="p" href="non_terminals.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="phoenix.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Semantic Actions">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.quick_reference.semantic_actions"></a><a class="link" href="semantic_actions.html" title="Semantic Actions">Semantic
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.quick_reference.semantic_actions"></a><a href="semantic_actions.html" title="Semantic
+ Actions">Semantic
Actions</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<p>
Has the form:
</p>
<pre class="programlisting"><span class="identifier">g</span><span class="special">[</span><span class="identifier">f</span><span class="special">]</span>
</pre>
<p>
- where <code class="computeroutput"><span class="identifier">f</span></code> is a function with
+ where <tt class="computeroutput"><span class="identifier">f</span></tt> is a function with
the signatures:
</p>
<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Attrib</span><span class="special">&);</span>
@@ -50,11 +55,11 @@
<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">Attrib</span><span class="special">&,</span> <span class="identifier">Context</span><span class="special">&,</span> <span class="keyword">bool</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
- The <code class="computeroutput"><span class="identifier">unused_type</span></code> is used
+ The <tt class="computeroutput"><span class="identifier">unused_type</span></tt> is used
in the signatures above to signify 'don't care'.
</p>
<p>
- For more information see <a class="link" href="../tutorials/semantic_actions.html" title="Semantic Actions">Semantic
+ For more information see <a href="../tutorials/semantic_actions.html" title="Semantic Actions">Semantic
Actions</a>.
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,12 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Reference</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../index.html" title="Spirit 2.1">
-<link rel="up" href="../karma.html" title="Karma - Writing Generators">
-<link rel="prev" href="quick_reference/phoenix.html" title="Phoenix">
-<link rel="next" href="reference/generator_concepts.html" title="Generator Concepts">
+<link rel="up" href="../karma.html" title=" Karma - Writing Generators">
+<link rel="previous" href="quick_reference/phoenix.html" title="Phoenix">
+<link rel="next" href="reference/generator_concepts.html" title="Generator
+ Concepts">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,10 +23,13 @@
<div class="spirit-nav">
<a accesskey="p" href="quick_reference/phoenix.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../karma.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="reference/generator_concepts.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Reference">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.karma.reference"></a><a class="link" href="reference.html" title="Reference">Reference</a>
-</h3></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h3 class="title">
+<a name="spirit.karma.reference"></a>Reference
+</h3></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section"><a href="reference/generator_concepts.html">Generator
Concepts</a></span></dt>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,13 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Auxiliary</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="binary/binary_big.html" title="Binary Big Endianness Generators">
-<link rel="next" href="auxiliary/attr_cast.html" title="Attribute Transformation Pseudo Generator (attr_cast)">
+<link rel="previous" href="binary/binary_big.html" title=" Binary
+ Big Endianness Generators">
+<link rel="next" href="auxiliary/attr_cast.html" title=" Attribute
+ Transformation Pseudo Generator (attr_cast)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,33 +24,36 @@
<div class="spirit-nav">
<a accesskey="p" href="binary/binary_big.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="auxiliary/attr_cast.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Auxiliary">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.reference.auxiliary"></a><a class="link" href="auxiliary.html" title="Auxiliary">Auxiliary</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.reference.auxiliary"></a>Auxiliary
+</h4></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section"><a href="auxiliary/attr_cast.html"> Attribute
- Transformation Pseudo Generator (<code class="computeroutput"><span class="identifier">attr_cast</span></code>)</a></span></dt>
+ Transformation Pseudo Generator (<tt class="computeroutput"><span class="identifier">attr_cast</span></tt>)</a></span></dt>
<dt><span class="section"><a href="auxiliary/eol.html"> End of Line
- (<code class="computeroutput"><span class="identifier">eol</span></code>)</a></span></dt>
-<dt><span class="section"> Epsilon (eps
)</span></dt>
-<dt><span class="section"> Lazy (lazy
)</span></dt>
+ (<tt class="computeroutput"><span class="identifier">eol</span></tt>)</a></span></dt>
+<dt><span class="section"> Epsilon (eps)</span></dt>
+<dt><span class="section"> Lazy (lazy)</span></dt>
</dl></div>
<p>
This module includes different auxiliary generators not fitting into any
- of the other categories. It includes the <code class="computeroutput"><span class="identifier">attr_cast</span></code>,
- <code class="computeroutput"><span class="identifier">eol</span></code> and <code class="computeroutput"><span class="identifier">eps</span></code>,
- <code class="computeroutput"><span class="identifier">lazy</span></code> generators.
+ of the other categories. It includes the <tt class="computeroutput"><span class="identifier">attr_cast</span></tt>,
+ <tt class="computeroutput"><span class="identifier">eol</span></tt> and <tt class="computeroutput"><span class="identifier">eps</span></tt>,
+ <tt class="computeroutput"><span class="identifier">lazy</span></tt> generators.
</p>
-<a name="spirit.karma.reference.auxiliary.module_header"></a><h6>
-<a name="id819538"></a>
- <a class="link" href="auxiliary.html#spirit.karma.reference.auxiliary.module_header">Module Header</a>
- </h6>
+<a name="spirit.karma.reference.auxiliary.module_header"></a><h5>
+<a name="id632253"></a>
+ Module Header
+ </h5>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/auxiliary.hpp>
</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">karma_auxiliary</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/attr_cast.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/attr_cast.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/attr_cast.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Attribute Transformation Pseudo Generator (attr_cast)</title>
+<title> Attribute
+ Transformation Pseudo Generator (attr_cast)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../auxiliary.html" title="Auxiliary">
-<link rel="prev" href="../auxiliary.html" title="Auxiliary">
-<link rel="next" href="eol.html" title="End of Line (eol)">
+<link rel="previous" href="../auxiliary.html" title="Auxiliary">
+<link rel="next" href="eol.html" title=" End of Line
+ (eol)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,85 +24,85 @@
<div class="spirit-nav">
<a accesskey="p" href="../auxiliary.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../auxiliary.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="eol.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Attribute Transformation Pseudo Generator (attr_cast)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.auxiliary.attr_cast"></a><a class="link" href="attr_cast.html" title="Attribute Transformation Pseudo Generator (attr_cast)"> Attribute
- Transformation Pseudo Generator (<code class="computeroutput"><span class="identifier">attr_cast</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.auxiliary.attr_cast"></a><a href="attr_cast.html" title=" Attribute
+ Transformation Pseudo Generator (attr_cast)"> Attribute
+ Transformation Pseudo Generator (<tt class="computeroutput"><span class="identifier">attr_cast</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.auxiliary.attr_cast.description"></a><h6>
-<a name="id819630"></a>
- <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.description">Description</a>
+<a name="id632397"></a>
+ Description
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">attr_cast</span><span class="special"><</span><span class="identifier">Attrib</span><span class="special">>()</span></code>
+ The <tt class="computeroutput"><span class="identifier">attr_cast</span><span class="special"><</span><span class="identifier">Attrib</span><span class="special">>()</span></tt>
component invokes the embedded generator while supplying an attribute
- of type <code class="computeroutput"><span class="identifier">Attrib</span></code>. The supplied
+ of type <tt class="computeroutput"><span class="identifier">Attrib</span></tt>. The supplied
attribute gets created from the original attribute passed to this component
- using the customization point <code class="computeroutput"><span class="identifier">transform_attribute</span></code>.
+ using the customization point <tt class="computeroutput"><span class="identifier">transform_attribute</span></tt>.
</p>
<a name="spirit.karma.reference.auxiliary.attr_cast.header"></a><h6>
-<a name="id819679"></a>
- <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.header">Header</a>
+<a name="id632481"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/auxiliary/attr_cast.hpp>
</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">karma_attr_cast</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.auxiliary.attr_cast.namespace"></a><h6>
-<a name="id819753"></a>
- <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.namespace">Namespace</a>
+<a name="id632596"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
-<tbody><tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">attr_cast</span> <span class="comment">//
- alias: boost::spirit::karma::attr_cast</span></code>
- </p>
- </td></tr></tbody>
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">attr_cast</span> <span class="comment">//
+ alias: boost::spirit::karma::attr_cast</span></tt>
+ </p></td></tr></tbody>
</table></div>
<a name="spirit.karma.reference.auxiliary.attr_cast.model_of"></a><h6>
-<a name="id819832"></a>
- <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.model_of">Model
+<a name="id632700"></a>
+ <a href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>
+ UnaryGenerator
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">g</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">g</span></tt></span></dt>
<dd><p>
A generator object.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Attrib</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Attrib</span></tt></span></dt>
<dd><p>
An attribute type
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.auxiliary.attr_cast.expression_semantics"></a><h6>
-<a name="id819914"></a>
- <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.expression_semantics">Expression
+<a name="id632808"></a>
+ <a href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>.
+ is not defined in UnaryGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -108,36 +110,28 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">attr_cast</span><span class="special"><</span><span class="identifier">Attrib</span><span class="special">>(</span><span class="identifier">g</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Create a component invoking the generator <code class="computeroutput"><span class="identifier">g</span></code>
- while passing an attribute of type <code class="computeroutput"><span class="identifier">Attrib</span></code>.
- This generator does not fail unless <code class="computeroutput"><span class="identifier">g</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">attr_cast</span><span class="special"><</span><span class="identifier">Attrib</span><span class="special">>(</span><span class="identifier">g</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Create a component invoking the generator <tt class="computeroutput"><span class="identifier">g</span></tt>
+ while passing an attribute of type <tt class="computeroutput"><span class="identifier">Attrib</span></tt>.
+ This generator does not fail unless <tt class="computeroutput"><span class="identifier">g</span></tt>
fails.
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.karma.reference.auxiliary.attr_cast.attributes"></a><h6>
-<a name="id820046"></a>
- <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.attributes">Attributes</a>
+<a name="id632988"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -145,47 +139,39 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">attr_cast</span><span class="special"><</span><span class="identifier">Attrib</span><span class="special">>(</span><span class="identifier">g</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Attrib</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">attr_cast</span><span class="special"><</span><span class="identifier">Attrib</span><span class="special">>(</span><span class="identifier">g</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.karma.reference.auxiliary.attr_cast.complexity"></a><h6>
-<a name="id820142"></a>
- <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.complexity">Complexity</a>
+<a name="id633115"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
The complexity of this component is fully defined by the complexity
- of the embedded generator <code class="computeroutput"><span class="identifier">g</span></code>.
+ of the embedded generator <tt class="computeroutput"><span class="identifier">g</span></tt>.
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.karma.reference.auxiliary.attr_cast.example"></a><h6>
-<a name="id820173"></a>
- <a class="link" href="attr_cast.html#spirit.karma.reference.auxiliary.attr_cast.example">Example</a>
+<a name="id633164"></a>
+ Example
</h6>
<p>
Some includes:
@@ -244,8 +230,8 @@
<p>
</p>
<p>
- The example references data structure <code class="computeroutput"><span class="identifier">int_data</span></code>
- and needs a specializtion of the customization point <code class="computeroutput"><span class="identifier">transform_attribute</span></code>:
+ The example references data structure <tt class="computeroutput"><span class="identifier">int_data</span></tt>
+ and needs a specializtion of the customization point <tt class="computeroutput"><span class="identifier">transform_attribute</span></tt>:
</p>
<p>
</p>
@@ -273,7 +259,7 @@
<p>
</p>
<p>
- Now we use the <code class="computeroutput"><span class="identifier">attr_cast</span></code>
+ Now we use the <tt class="computeroutput"><span class="identifier">attr_cast</span></tt>
pseudo generator to invoke the attribute transformation:
</p>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eol.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eol.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eol.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>End of Line (eol)</title>
+<title> End of Line
+ (eol)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../auxiliary.html" title="Auxiliary">
-<link rel="prev" href="attr_cast.html" title="Attribute Transformation Pseudo Generator (attr_cast)">
-<link rel="next" href="eps.html" title="Epsilon (eps)">
+<link rel="previous" href="attr_cast.html" title=" Attribute
+ Transformation Pseudo Generator (attr_cast)">
+<link rel="next" href="eps.html" title=" Epsilon (eps)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,70 +24,71 @@
<div class="spirit-nav">
<a accesskey="p" href="attr_cast.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../auxiliary.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="eps.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="End of Line (eol)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.auxiliary.eol"></a><a class="link" href="eol.html" title="End of Line (eol)"> End of Line
- (<code class="computeroutput"><span class="identifier">eol</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.auxiliary.eol"></a><a href="eol.html" title=" End of Line
+ (eol)"> End of Line
+ (<tt class="computeroutput"><span class="identifier">eol</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.auxiliary.eol.description"></a><h6>
-<a name="id821166"></a>
- <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.description">Description</a>
+<a name="id634517"></a>
+ Description
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">eol</span></code> component generates
- a single newline character. It is equivalent to <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="char">'\n'</span><span class="special">)</span></code>
- or simply '\n' (please see the <a class="link" href="../char/char_generator.html" title="Character Generators (char_, lit)"><code class="computeroutput"><span class="identifier">char_</span></code></a> generator module for more
+ The <tt class="computeroutput"><span class="identifier">eol</span></tt> component generates
+ a single newline character. It is equivalent to <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="char">'\n'</span><span class="special">)</span></tt>
+ or simply '\n' (please see the <a href="../char/char_generator.html" title=" Character
+ Generators (char_, lit)"><tt class="computeroutput"><span class="identifier">char_</span></tt></a> generator module for more
details).
</p>
<a name="spirit.karma.reference.auxiliary.eol.header"></a><h6>
-<a name="id821218"></a>
- <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.header">Header</a>
+<a name="id634605"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/auxiliary/eol.hpp>
</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">karma_eol</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.auxiliary.eol.namespace"></a><h6>
-<a name="id821293"></a>
- <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.namespace">Namespace</a>
+<a name="id634719"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
-<tbody><tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">eol</span> <span class="comment">// alias:
- boost::spirit::karma::eol</span></code>
- </p>
- </td></tr></tbody>
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">eol</span> <span class="comment">// alias:
+ boost::spirit::karma::eol</span></tt>
+ </p></td></tr></tbody>
</table></div>
<a name="spirit.karma.reference.auxiliary.eol.model_of"></a><h6>
-<a name="id821371"></a>
- <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.model_of">Model of</a>
+<a name="id634821"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>
+ PrimitiveGenerator
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.karma.reference.auxiliary.eol.expression_semantics"></a><h6>
-<a name="id821409"></a>
- <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.expression_semantics">Expression
+<a name="id634874"></a>
+ <a href="eol.html#spirit.karma.reference.auxiliary.eol.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>.
+ is not defined in PrimitiveGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -93,35 +96,27 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">eol</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">eol</span></tt>
+ </p></td>
+<td><p>
Create a component generating a single end of line character
in the output. This generator never fails (unless the underlying
output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.karma.reference.auxiliary.eol.attributes"></a><h6>
-<a name="id822864"></a>
- <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.attributes">Attributes</a>
+<a name="id634994"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -129,33 +124,25 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">eol</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">eol</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.karma.reference.auxiliary.eol.complexity"></a><h6>
-<a name="id822942"></a>
- <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.complexity">Complexity</a>
+<a name="id635094"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -171,8 +158,8 @@
output.
</p>
<a name="spirit.karma.reference.auxiliary.eol.example"></a><h6>
-<a name="id822969"></a>
- <a class="link" href="eol.html#spirit.karma.reference.auxiliary.eol.example">Example</a>
+<a name="id635136"></a>
+ Example
</h6>
<p>
Some includes:
@@ -231,7 +218,7 @@
<p>
</p>
<p>
- Basic usage of the <code class="computeroutput"><span class="identifier">eol</span></code>
+ Basic usage of the <tt class="computeroutput"><span class="identifier">eol</span></tt>
generator:
</p>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eps.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eps.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/eps.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Epsilon (eps)</title>
+<title> Epsilon (eps)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../auxiliary.html" title="Auxiliary">
-<link rel="prev" href="eol.html" title="End of Line (eol)">
-<link rel="next" href="lazy.html" title="Lazy (lazy)">
+<link rel="previous" href="eol.html" title=" End of Line
+ (eol)">
+<link rel="next" href="lazy.html" title=" Lazy (lazy)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,31 +23,34 @@
<div class="spirit-nav">
<a accesskey="p" href="eol.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../auxiliary.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="lazy.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Epsilon (eps)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.auxiliary.eps"></a><a class="link" href="eps.html" title="Epsilon (eps)"> Epsilon (<code class="computeroutput"><span class="identifier">eps</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.auxiliary.eps"></a> Epsilon (eps)
+</h5></div></div>
+<div></div>
+</div>
<p>
- The family of <code class="computeroutput"><span class="identifier">eps</span></code> components
+ The family of <tt class="computeroutput"><span class="identifier">eps</span></tt> components
allows to create pseudo generators generating an empty string. This feature
is sometimes useful either to force a generator to fail or to succeed
or to insert semantic actions into the generation process.
</p>
<a name="spirit.karma.reference.auxiliary.eps.description"></a><h6>
-<a name="id823703"></a>
- <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.description">Description</a>
+<a name="id636142"></a>
+ Description
</h6>
<p>
- The Epsilon (<code class="computeroutput"><span class="identifier">eps</span></code>) is
+ The Epsilon (<tt class="computeroutput"><span class="identifier">eps</span></tt>) is
a multi-purpose generator that emits a yero length string.
</p>
<a name="spirit.karma.reference.auxiliary.eps.simple_form"></a><h6>
-<a name="id823727"></a>
- <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.simple_form">Simple
+<a name="id636184"></a>
+ <a href="eps.html#spirit.karma.reference.auxiliary.eps.simple_form">Simple
Form</a>
</h6>
<p>
- In its simplest form, <code class="computeroutput"><span class="identifier">eps</span></code>
+ In its simplest form, <tt class="computeroutput"><span class="identifier">eps</span></tt>
creates a component generating an empty string while always succeeding:
</p>
<pre class="programlisting"><span class="identifier">eps</span> <span class="comment">// always emits a zero-length string
@@ -59,98 +63,94 @@
<pre class="programlisting"><span class="identifier">r</span> <span class="special">=</span> <span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span> <span class="special">|</span> <span class="identifier">c</span> <span class="special">|</span> <span class="identifier">eps</span><span class="special">[</span><span class="identifier">error</span><span class="special">()];</span> <span class="comment">// Call error if a, b, and c fail to generate
</span></pre>
<a name="spirit.karma.reference.auxiliary.eps.semantic_predicate"></a><h6>
-<a name="id823827"></a>
- <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.semantic_predicate">Semantic
+<a name="id636332"></a>
+ <a href="eps.html#spirit.karma.reference.auxiliary.eps.semantic_predicate">Semantic
Predicate</a>
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></code>
- component generates an empty string as well, but succeeds only if <code class="computeroutput"><span class="identifier">b</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>
- and fails otherwise. It's lazy variant <code class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">fb</span><span class="special">)</span></code> is equivalent to <code class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></code> except it evaluates the supplied function
- <code class="computeroutput"><span class="identifier">fb</span></code> at generate time,
+ The <tt class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></tt>
+ component generates an empty string as well, but succeeds only if <tt class="computeroutput"><span class="identifier">b</span></tt> is <tt class="computeroutput"><span class="keyword">true</span></tt>
+ and fails otherwise. It's lazy variant <tt class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">fb</span><span class="special">)</span></tt> is equivalent to <tt class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></tt> except it evaluates the supplied function
+ <tt class="computeroutput"><span class="identifier">fb</span></tt> at generate time,
while using the return value as the criteria to succeed.
</p>
<p>
Semantic predicates allow you to attach a conditional function anywhere
- in the grammar. In this role, the epsilon takes a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
- Argument</a> that returns <code class="computeroutput"><span class="keyword">true</span></code>
- or <code class="computeroutput"><span class="keyword">false</span></code>. The <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ in the grammar. In this role, the epsilon takes a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ Argument</a> that returns <tt class="computeroutput"><span class="keyword">true</span></tt>
+ or <tt class="computeroutput"><span class="keyword">false</span></tt>. The <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a> is typically a test that is called to resolve ambiguity
- in the grammar. A generator failure will be reported when the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
- Argument</a> result evaluates to <code class="computeroutput"><span class="keyword">false</span></code>.
+ in the grammar. A generator failure will be reported when the <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ Argument</a> result evaluates to <tt class="computeroutput"><span class="keyword">false</span></tt>.
Otherwise an empty string will be emitted. The general form is:
</p>
<pre class="programlisting"><span class="identifier">eps_p</span><span class="special">(</span><span class="identifier">fb</span><span class="special">)</span> <span class="special"><<</span> <span class="identifier">rest</span><span class="special">;</span>
</pre>
<p>
- The <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
- Argument</a> <code class="computeroutput"><span class="identifier">fb</span></code> is
- called to do a semantic test. If the test returns true, <code class="computeroutput"><span class="identifier">rest</span></code> will be evaluated. Otherwise,
+ The <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ Argument</a> <tt class="computeroutput"><span class="identifier">fb</span></tt> is
+ called to do a semantic test. If the test returns true, <tt class="computeroutput"><span class="identifier">rest</span></tt> will be evaluated. Otherwise,
the production will return early without ever touching rest.
</p>
<a name="spirit.karma.reference.auxiliary.eps.header"></a><h6>
-<a name="id824015"></a>
- <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.header">Header</a>
+<a name="id636639"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/auxiliary/eps.hpp>
</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">karma_eps</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.auxiliary.eps.namespace"></a><h6>
-<a name="id824089"></a>
- <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.namespace">Namespace</a>
+<a name="id636753"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
-<tbody><tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">eps</span> <span class="comment">// alias:
- boost::spirit::karma::eps</span></code>
- </p>
- </td></tr></tbody>
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">eps</span> <span class="comment">// alias:
+ boost::spirit::karma::eps</span></tt>
+ </p></td></tr></tbody>
</table></div>
<a name="spirit.karma.reference.auxiliary.eps.model_of"></a><h6>
-<a name="id824167"></a>
- <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.model_of">Model of</a>
+<a name="id636855"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>
+ PrimitiveGenerator
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">b</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">b</span></tt></span></dt>
<dd><p>
A boolean value.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">fb</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">fb</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ A <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a> that evaluates to a boolean value.
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.auxiliary.eps.expression_semantics"></a><h6>
-<a name="id824253"></a>
- <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.expression_semantics">Expression
+<a name="id636971"></a>
+ <a href="eps.html#spirit.karma.reference.auxiliary.eps.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>.
+ is not defined in PrimitiveGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -158,63 +158,47 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">eps</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">eps</span></tt>
+ </p></td>
+<td><p>
Creates a component generating an empty string. Succeeds always.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Creates a component generating an empty string. Succeeds if
- <code class="computeroutput"><span class="identifier">b</span></code> is <code class="computeroutput"><span class="keyword">true</span></code> (unless the underlying output
+ <tt class="computeroutput"><span class="identifier">b</span></tt> is <tt class="computeroutput"><span class="keyword">true</span></tt> (unless the underlying output
stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">fb</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">fb</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Creates a component generating an empty string. Succeeds if
- <code class="computeroutput"><span class="identifier">fb</span></code> returns <code class="computeroutput"><span class="keyword">true</span></code> at generate time (unless
+ <tt class="computeroutput"><span class="identifier">fb</span></tt> returns <tt class="computeroutput"><span class="keyword">true</span></tt> at generate time (unless
the underlying output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.auxiliary.eps.attributes"></a><h6>
-<a name="id824441"></a>
- <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.attributes">Attributes</a>
+<a name="id637228"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -222,59 +206,43 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">eps</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">eps</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">fb</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">fb</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.auxiliary.eps.complexity"></a><h6>
-<a name="id824603"></a>
- <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.complexity">Complexity</a>
+<a name="id637437"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -289,8 +257,8 @@
The complexity is constant as no output is generated.
</p>
<a name="spirit.karma.reference.auxiliary.eps.example"></a><h6>
-<a name="id824630"></a>
- <a class="link" href="eps.html#spirit.karma.reference.auxiliary.eps.example">Example</a>
+<a name="id637477"></a>
+ Example
</h6>
<p>
Some includes:
@@ -350,7 +318,7 @@
<p>
</p>
<p>
- Basic usage of the <code class="computeroutput"><span class="identifier">eps</span></code>
+ Basic usage of the <tt class="computeroutput"><span class="identifier">eps</span></tt>
generator:
</p>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/lazy.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/lazy.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/auxiliary/lazy.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Lazy (lazy)</title>
+<title> Lazy (lazy)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../auxiliary.html" title="Auxiliary">
-<link rel="prev" href="eps.html" title="Epsilon (eps)">
-<link rel="next" href="../directive.html" title="Directive">
+<link rel="previous" href="eps.html" title=" Epsilon (eps)">
+<link rel="next" href="../directive.html" title=" Directive">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,95 +22,94 @@
<div class="spirit-nav">
<a accesskey="p" href="eps.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../auxiliary.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../directive.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Lazy (lazy)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.auxiliary.lazy"></a><a class="link" href="lazy.html" title="Lazy (lazy)"> Lazy (<code class="computeroutput"><span class="identifier">lazy</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.auxiliary.lazy"></a> Lazy (lazy)
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.auxiliary.lazy.description"></a><h6>
-<a name="id826171"></a>
- <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.description">Description</a>
+<a name="id638640"></a>
+ Description
</h6>
<p>
- The familiy of <code class="computeroutput"><span class="identifier">lazy</span></code> components
+ The familiy of <tt class="computeroutput"><span class="identifier">lazy</span></tt> components
allows to use a dynamically returned generator component for output generation.
It calls the provided function or function object at generate time using
its return value as the actual generator to produce the output.
</p>
<a name="spirit.karma.reference.auxiliary.lazy.header"></a><h6>
-<a name="id826195"></a>
- <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.header">Header</a>
+<a name="id638686"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/auxiliary/lazy.hpp>
</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">karma_lazy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.auxiliary.lazy.namespace"></a><h6>
-<a name="id826270"></a>
- <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.namespace">Namespace</a>
+<a name="id638800"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
-<tbody><tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lazy</span> <span class="comment">// alias:
- boost::spirit::karma::lazy</span></code>
- </p>
- </td></tr></tbody>
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lazy</span> <span class="comment">// alias:
+ boost::spirit::karma::lazy</span></tt>
+ </p></td></tr></tbody>
</table></div>
<a name="spirit.karma.reference.auxiliary.lazy.model_of"></a><h6>
-<a name="id826349"></a>
- <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.model_of">Model
+<a name="id638903"></a>
+ <a href="lazy.html#spirit.karma.reference.auxiliary.lazy.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/generator.html" title="Generator"><code class="computeroutput"><span class="identifier">Generator</span></code></a>
+ Generator
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">fg</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">fg</span></tt></span></dt>
<dd><p>
A function or function object that evaluates to a generator object
- (an object exposing the <a class="link" href="../generator_concepts/generator.html" title="Generator"><code class="computeroutput"><span class="identifier">Generator</span></code></a>). This function
+ (an object exposing the Generator). This function
will be invoked at generate time.
</p></dd>
</dl>
</div>
<p>
- The signature of <code class="computeroutput"><span class="identifier">fg</span></code> is
+ The signature of <tt class="computeroutput"><span class="identifier">fg</span></tt> is
expected to be
</p>
<pre class="programlisting"><span class="identifier">G</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">)</span>
</pre>
<p>
- where <code class="computeroutput"><span class="identifier">G</span></code>, the function's
- return value, is the type of the generator to be invoked, and <code class="computeroutput"><span class="identifier">Context</span></code> is the generators's Context
- type (The first argument is <code class="computeroutput"><span class="identifier">unused</span></code>
- to make the <code class="computeroutput"><span class="identifier">Context</span></code> the
- second argument. This is done for uniformity with <a class="link" href="../../tutorials/semantic_actions.html" title="Semantic Actions">Semantic
+ where <tt class="computeroutput"><span class="identifier">G</span></tt>, the function's
+ return value, is the type of the generator to be invoked, and <tt class="computeroutput"><span class="identifier">Context</span></tt> is the generators's Context
+ type (The first argument is <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ to make the <tt class="computeroutput"><span class="identifier">Context</span></tt> the
+ second argument. This is done for uniformity with <a href="../../tutorials/semantic_actions.html" title="Semantic Actions">Semantic
Actions</a>).
</p>
<a name="spirit.karma.reference.auxiliary.lazy.expression_semantics"></a><h6>
-<a name="id826500"></a>
- <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.expression_semantics">Expression
+<a name="id639132"></a>
+ <a href="lazy.html#spirit.karma.reference.auxiliary.lazy.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/generator.html" title="Generator"><code class="computeroutput"><span class="identifier">Generator</span></code></a>.
+ is not defined in Generator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -118,61 +117,49 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">fg</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">fg</span></tt>
+ </p></td>
+<td><p>
The Boost.Phoenix
- function object <code class="computeroutput"><span class="identifier">fg</span></code>
+ function object <tt class="computeroutput"><span class="identifier">fg</span></tt>
will be invoked at generate time. It is expected to return a
generator instance. This generator is then invoked in order to
generate the output. This generator will succeed as long as the
invoked generated succeeds as well (unless the underlying output
stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fg</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fg</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
The function or function object will be invoked at generate time.
It is expected to return a generator instance (note this version
- of <code class="computeroutput"><span class="identifier">lazy</span></code> does
- not require <code class="computeroutput"><span class="identifier">fg</span></code>
+ of <tt class="computeroutput"><span class="identifier">lazy</span></tt> does
+ not require <tt class="computeroutput"><span class="identifier">fg</span></tt>
to be a Boost.Phoenix
function object). This generator is then invoked in order to
generate the output. This generator will succeed as long as the
invoked generated succeeds as well (except if the underlying
output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.auxiliary.lazy.attributes"></a><h6>
-<a name="id826652"></a>
- <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.attributes">Attributes</a>
+<a name="id639355"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -180,60 +167,48 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">fg</span></code>
- </p>
- </td>
-<td>
- <p>
- The attribute type <code class="computeroutput"><span class="identifier">G</span></code>
- as exposed by the generator <code class="computeroutput"><span class="identifier">g</span></code>
- returned from <code class="computeroutput"><span class="identifier">fg</span></code>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">fg</span></tt>
+ </p></td>
+<td><p>
+ The attribute type <tt class="computeroutput"><span class="identifier">G</span></tt>
+ as exposed by the generator <tt class="computeroutput"><span class="identifier">g</span></tt>
+ returned from <tt class="computeroutput"><span class="identifier">fg</span></tt>.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fg</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- The attribute type <code class="computeroutput"><span class="identifier">G</span></code>
- as exposed by the generator <code class="computeroutput"><span class="identifier">g</span></code>
- returned from <code class="computeroutput"><span class="identifier">fg</span></code>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fg</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ The attribute type <tt class="computeroutput"><span class="identifier">G</span></tt>
+ as exposed by the generator <tt class="computeroutput"><span class="identifier">g</span></tt>
+ returned from <tt class="computeroutput"><span class="identifier">fg</span></tt>.
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.auxiliary.lazy.complexity"></a><h6>
-<a name="id826801"></a>
- <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.complexity">Complexity</a>
+<a name="id639562"></a>
+ Complexity
</h6>
<p>
- The complexity of the <code class="computeroutput"><span class="identifier">lazy</span></code>
+ The complexity of the <tt class="computeroutput"><span class="identifier">lazy</span></tt>
component is determined by the complexity of the generator returned from
- <code class="computeroutput"><span class="identifier">fg</span></code>.
+ <tt class="computeroutput"><span class="identifier">fg</span></tt>.
</p>
<a name="spirit.karma.reference.auxiliary.lazy.example"></a><h6>
-<a name="id826832"></a>
- <a class="link" href="lazy.html#spirit.karma.reference.auxiliary.lazy.example">Example</a>
+<a name="id639616"></a>
+ Example
</h6>
<p>
Some includes:
@@ -313,7 +288,7 @@
<p>
</p>
<p>
- Basic usage of the <code class="computeroutput"><span class="identifier">lazy</span></code>
+ Basic usage of the <tt class="computeroutput"><span class="identifier">lazy</span></tt>
generator:
</p>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/binary.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/binary.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/binary.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Binary</title>
+<title> Binary</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="stream/stream.html" title="Stream (stream, wstream, etc.)">
-<link rel="next" href="binary/binary_native.html" title="Binary Native Endianness Generators">
+<link rel="previous" href="stream/stream.html" title=" Stream (stream, wstream,
+ etc.)">
+<link rel="next" href="binary/binary_native.html" title=" Binary
+ Native Endianness Generators">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,10 +24,13 @@
<div class="spirit-nav">
<a accesskey="p" href="stream/stream.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="binary/binary_native.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Binary">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.reference.binary"></a><a class="link" href="binary.html" title="Binary"> Binary</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.reference.binary"></a> Binary
+</h4></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section"><a href="binary/binary_native.html"> Binary
Native Endianness Generators</a></span></dt>
@@ -37,18 +42,18 @@
<p>
This module includes different generators allowing to output binary data.
It includes generators for default, little, and big endian binary output
- and a <code class="computeroutput"><span class="identifier">pad</span></code> generator allowing
+ and a <tt class="computeroutput"><span class="identifier">pad</span></tt> generator allowing
to control padding of the generated output stream.
</p>
-<a name="spirit.karma.reference.binary.module_header"></a><h6>
-<a name="id809108"></a>
- <a class="link" href="binary.html#spirit.karma.reference.binary.module_header">Module Header</a>
- </h6>
+<a name="spirit.karma.reference.binary.module_header"></a><h5>
+<a name="id621127"></a>
+ Module Header
+ </h5>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/binary.hpp>
</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">karma_binary</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/binary/binary_big.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/binary/binary_big.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/binary/binary_big.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Binary Big Endianness Generators</title>
+<title> Binary
+ Big Endianness Generators</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../binary.html" title="Binary">
-<link rel="prev" href="binary_little.html" title="Binary Little Endianness Generators">
+<link rel="up" href="../binary.html" title=" Binary">
+<link rel="previous" href="binary_little.html" title=" Binary
+ Little Endianness Generators">
<link rel="next" href="../auxiliary.html" title="Auxiliary">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,14 +24,18 @@
<div class="spirit-nav">
<a accesskey="p" href="binary_little.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../binary.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../auxiliary.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Binary Big Endianness Generators">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.binary.binary_big"></a><a class="link" href="binary_big.html" title="Binary Big Endianness Generators"> Binary
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.binary.binary_big"></a><a href="binary_big.html" title=" Binary
+ Big Endianness Generators"> Binary
Big Endianness Generators</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.binary.binary_big.description"></a><h6>
-<a name="id816391"></a>
- <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.description">Description</a>
+<a name="id628890"></a>
+ Description
</h6>
<p>
The big native endianness generators described in this section are used
@@ -37,106 +43,98 @@
byte order.
</p>
<a name="spirit.karma.reference.binary.binary_big.header"></a><h6>
-<a name="id816408"></a>
- <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.header">Header</a>
+<a name="id628922"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/binary.hpp>
</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">karma_binary</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.binary.binary_big.namespace"></a><h6>
-<a name="id816636"></a>
- <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.namespace">Namespace</a>
+<a name="id629036"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">big_word</span> <span class="comment">//
- alias: boost::spirit::karma::big_word</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">big_dword</span> <span class="comment">//
- alias: boost::spirit::karma::big_dword</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">big_qword</span> <span class="comment">//
- alias: boost::spirit::karma::big_qword</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">big_word</span> <span class="comment">//
+ alias: boost::spirit::karma::big_word</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">big_dword</span> <span class="comment">//
+ alias: boost::spirit::karma::big_dword</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">big_qword</span> <span class="comment">//
+ alias: boost::spirit::karma::big_qword</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- The generators <code class="computeroutput"><span class="identifier">big_qword</span></code>
- and <code class="computeroutput"><span class="identifier">big_qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></code>
- are only available on platforms where the preprocessor constant <code class="computeroutput"><span class="identifier">BOOST_HAS_LONG_LONG</span></code> is defined (i.e.
- on platforms having native support for <code class="computeroutput"><span class="keyword">unsigned</span>
- <span class="keyword">long</span> <span class="keyword">long</span></code>
+<tr><td colspan="2" align="left" valign="top"><p>
+ The generators <tt class="computeroutput"><span class="identifier">big_qword</span></tt>
+ and <tt class="computeroutput"><span class="identifier">big_qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></tt>
+ are only available on platforms where the preprocessor constant <tt class="computeroutput"><span class="identifier">BOOST_HAS_LONG_LONG</span></tt> is defined (i.e.
+ on platforms having native support for <tt class="computeroutput"><span class="keyword">unsigned</span>
+ <span class="keyword">long</span> <span class="keyword">long</span></tt>
(64 bit) integer types).
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.binary.binary_big.model_of"></a><h6>
-<a name="id816848"></a>
- <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.model_of">Model
+<a name="id629325"></a>
+ <a href="binary_big.html#spirit.karma.reference.binary.binary_big.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>
+ PrimitiveGenerator
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">w</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">w</span></tt></span></dt>
<dd><p>
- A 16 bit binary value or a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ A 16 bit binary value or a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a> that evaluates to a 16 bit binary value. This value
is always interpreted using native endianness.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">dw</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">dw</span></tt></span></dt>
<dd><p>
- A 32 bit binary value or a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ A 32 bit binary value or a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a> that evaluates to a 16 bit binary value. This value
is always interpreted using native endianness.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">qw</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">qw</span></tt></span></dt>
<dd><p>
- A 64 bit binary value or a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ A 64 bit binary value or a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a> that evaluates to a 16 bit binary value. This value
is always interpreted using native endianness.
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.binary.binary_big.expression_semantics"></a><h6>
-<a name="id816962"></a>
- <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.expression_semantics">Expression
+<a name="id629492"></a>
+ <a href="binary_big.html#spirit.karma.reference.binary.binary_big.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>.
+ is not defined in PrimitiveGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -144,113 +142,85 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_word</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_word</span></tt>
+ </p></td>
+<td><p>
Output the binary representation of the least significant 16
bits of the mandatory attribute in big endian representation.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_dword</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_dword</span></tt>
+ </p></td>
+<td><p>
Output the binary representation of the least significant 32
bits of the mandatory attribute in big endian representation.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_qword</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_qword</span></tt>
+ </p></td>
+<td><p>
Output the binary representation of the least significant 64
bits of the mandatory attribute in big endian representation.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Output the binary representation of the least significant 16
bits of the immediate parameter in big endian representation.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Output the binary representation of the least significant 32
bits of the immediate parameter in big endian representation.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Output the binary representation of the least significant 64
bits of the immediate parameter in big endian representation.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.binary.binary_big.attributes"></a><h6>
-<a name="id817204"></a>
- <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.attributes">Attributes</a>
+<a name="id629825"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -258,98 +228,70 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_word</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least16_t</span></code>, attribute is
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_word</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least16_t</span></tt>, attribute is
mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_dword</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least32_t</span></code>, attribute is
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_dword</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least32_t</span></tt>, attribute is
mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_qword</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least64_t</span></code>, attribute is
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_qword</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least64_t</span></tt>, attribute is
mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.binary.binary_big.complexity"></a><h6>
-<a name="id817492"></a>
- <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.complexity">Complexity</a>
+<a name="id630207"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -361,8 +303,8 @@
</p>
</blockquote></div>
<a name="spirit.karma.reference.binary.binary_big.example"></a><h6>
-<a name="id817516"></a>
- <a class="link" href="binary_big.html#spirit.karma.reference.binary.binary_big.example">Example</a>
+<a name="id630244"></a>
+ Example
</h6>
<p>
Some includes:
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/binary/binary_little.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/binary/binary_little.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/binary/binary_little.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Binary Little Endianness Generators</title>
+<title> Binary
+ Little Endianness Generators</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../binary.html" title="Binary">
-<link rel="prev" href="binary_native.html" title="Binary Native Endianness Generators">
-<link rel="next" href="binary_big.html" title="Binary Big Endianness Generators">
+<link rel="up" href="../binary.html" title=" Binary">
+<link rel="previous" href="binary_native.html" title=" Binary
+ Native Endianness Generators">
+<link rel="next" href="binary_big.html" title=" Binary
+ Big Endianness Generators">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,14 +25,18 @@
<div class="spirit-nav">
<a accesskey="p" href="binary_native.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../binary.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="binary_big.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Binary Little Endianness Generators">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.binary.binary_little"></a><a class="link" href="binary_little.html" title="Binary Little Endianness Generators"> Binary
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.binary.binary_little"></a><a href="binary_little.html" title=" Binary
+ Little Endianness Generators"> Binary
Little Endianness Generators</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.binary.binary_little.description"></a><h6>
-<a name="id812892"></a>
- <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.description">Description</a>
+<a name="id625582"></a>
+ Description
</h6>
<p>
The little native endianness generators described in this section are
@@ -37,106 +44,98 @@
byte order.
</p>
<a name="spirit.karma.reference.binary.binary_little.header"></a><h6>
-<a name="id812909"></a>
- <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.header">Header</a>
+<a name="id625613"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/binary.hpp>
</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">karma_binary</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.binary.binary_little.namespace"></a><h6>
-<a name="id812983"></a>
- <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.namespace">Namespace</a>
+<a name="id625728"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">little_word</span> <span class="comment">//
- alias: boost::spirit::karma::little_word</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">little_dword</span> <span class="comment">//
- alias: boost::spirit::karma::little_dword</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">little_qword</span> <span class="comment">//
- alias: boost::spirit::karma::little_qword</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">little_word</span> <span class="comment">//
+ alias: boost::spirit::karma::little_word</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">little_dword</span> <span class="comment">//
+ alias: boost::spirit::karma::little_dword</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">little_qword</span> <span class="comment">//
+ alias: boost::spirit::karma::little_qword</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- The generators <code class="computeroutput"><span class="identifier">little_qword</span></code>
- and <code class="computeroutput"><span class="identifier">little_qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></code>
- are only available on platforms where the preprocessor constant <code class="computeroutput"><span class="identifier">BOOST_HAS_LONG_LONG</span></code> is defined (i.e.
- on platforms having native support for <code class="computeroutput"><span class="keyword">unsigned</span>
- <span class="keyword">long</span> <span class="keyword">long</span></code>
+<tr><td colspan="2" align="left" valign="top"><p>
+ The generators <tt class="computeroutput"><span class="identifier">little_qword</span></tt>
+ and <tt class="computeroutput"><span class="identifier">little_qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></tt>
+ are only available on platforms where the preprocessor constant <tt class="computeroutput"><span class="identifier">BOOST_HAS_LONG_LONG</span></tt> is defined (i.e.
+ on platforms having native support for <tt class="computeroutput"><span class="keyword">unsigned</span>
+ <span class="keyword">long</span> <span class="keyword">long</span></tt>
(64 bit) integer types).
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.binary.binary_little.model_of"></a><h6>
-<a name="id814286"></a>
- <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.model_of">Model
+<a name="id626018"></a>
+ <a href="binary_little.html#spirit.karma.reference.binary.binary_little.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>
+ PrimitiveGenerator
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">w</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">w</span></tt></span></dt>
<dd><p>
- A 16 bit binary value or a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ A 16 bit binary value or a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a> that evaluates to a 16 bit binary value. This value
is always interpreted using native endianness.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">dw</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">dw</span></tt></span></dt>
<dd><p>
- A 32 bit binary value or a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ A 32 bit binary value or a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a> that evaluates to a 16 bit binary value. This value
is always interpreted using native endianness.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">qw</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">qw</span></tt></span></dt>
<dd><p>
- A 64 bit binary value or a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ A 64 bit binary value or a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a> that evaluates to a 16 bit binary value. This value
is always interpreted using native endianness.
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.binary.binary_little.expression_semantics"></a><h6>
-<a name="id814398"></a>
- <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.expression_semantics">Expression
+<a name="id626185"></a>
+ <a href="binary_little.html#spirit.karma.reference.binary.binary_little.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>.
+ is not defined in PrimitiveGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -144,113 +143,85 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_word</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_word</span></tt>
+ </p></td>
+<td><p>
Output the binary representation of the least significant 16
bits of the mandatory attribute in little endian representation.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_dword</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_dword</span></tt>
+ </p></td>
+<td><p>
Output the binary representation of the least significant 32
bits of the mandatory attribute in little endian representation.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_qword</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_qword</span></tt>
+ </p></td>
+<td><p>
Output the binary representation of the least significant 64
bits of the mandatory attribute in little endian representation.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Output the binary representation of the least significant 16
bits of the immediate parameter in little endian representation.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Output the binary representation of the least significant 32
bits of the immediate parameter in little endian representation.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Output the binary representation of the least significant 64
bits of the immediate parameter in little endian representation.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.binary.binary_little.attributes"></a><h6>
-<a name="id814636"></a>
- <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.attributes">Attributes</a>
+<a name="id626519"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -258,98 +229,70 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_word</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least16_t</span></code>, attribute is
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_word</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least16_t</span></tt>, attribute is
mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_dword</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least32_t</span></code>, attribute is
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_dword</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least32_t</span></tt>, attribute is
mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_qword</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least64_t</span></code>, attribute is
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_qword</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least64_t</span></tt>, attribute is
mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.binary.binary_little.complexity"></a><h6>
-<a name="id814924"></a>
- <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.complexity">Complexity</a>
+<a name="id626900"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -361,8 +304,8 @@
</p>
</blockquote></div>
<a name="spirit.karma.reference.binary.binary_little.example"></a><h6>
-<a name="id814948"></a>
- <a class="link" href="binary_little.html#spirit.karma.reference.binary.binary_little.example">Example</a>
+<a name="id626937"></a>
+ Example
</h6>
<p>
Some includes:
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/binary/binary_native.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/binary/binary_native.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/binary/binary_native.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Binary Native Endianness Generators</title>
+<title> Binary
+ Native Endianness Generators</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../binary.html" title="Binary">
-<link rel="prev" href="../binary.html" title="Binary">
-<link rel="next" href="binary_little.html" title="Binary Little Endianness Generators">
+<link rel="up" href="../binary.html" title=" Binary">
+<link rel="previous" href="../binary.html" title=" Binary">
+<link rel="next" href="binary_little.html" title=" Binary
+ Little Endianness Generators">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,14 +24,18 @@
<div class="spirit-nav">
<a accesskey="p" href="../binary.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../binary.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="binary_little.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Binary Native Endianness Generators">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.binary.binary_native"></a><a class="link" href="binary_native.html" title="Binary Native Endianness Generators"> Binary
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.binary.binary_native"></a><a href="binary_native.html" title=" Binary
+ Native Endianness Generators"> Binary
Native Endianness Generators</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.binary.binary_native.description"></a><h6>
-<a name="id809192"></a>
- <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.description">Description</a>
+<a name="id621259"></a>
+ Description
</h6>
<p>
The binary native endianness generators described in this section are
@@ -37,117 +43,107 @@
(byte order) of the target architecture.
</p>
<a name="spirit.karma.reference.binary.binary_native.header"></a><h6>
-<a name="id809208"></a>
- <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.header">Header</a>
+<a name="id621291"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/binary.hpp>
</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">karma_binary</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.binary.binary_native.namespace"></a><h6>
-<a name="id809283"></a>
- <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.namespace">Namespace</a>
+<a name="id621406"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">byte_</span> <span class="comment">// alias:
- boost::spirit::karma::byte_</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">word</span> <span class="comment">// alias:
- boost::spirit::karma::word</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">dword</span> <span class="comment">// alias:
- boost::spirit::karma::dword</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qword</span> <span class="comment">// alias:
- boost::spirit::karma::qword</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">byte_</span> <span class="comment">// alias:
+ boost::spirit::karma::byte_</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">word</span> <span class="comment">// alias:
+ boost::spirit::karma::word</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">dword</span> <span class="comment">// alias:
+ boost::spirit::karma::dword</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qword</span> <span class="comment">// alias:
+ boost::spirit::karma::qword</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- The generators <code class="computeroutput"><span class="identifier">qword</span></code>
- and <code class="computeroutput"><span class="identifier">qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></code>
- are only available on platforms where the preprocessor constant <code class="computeroutput"><span class="identifier">BOOST_HAS_LONG_LONG</span></code> is defined (i.e.
- on platforms having native support for <code class="computeroutput"><span class="keyword">unsigned</span>
- <span class="keyword">long</span> <span class="keyword">long</span></code>
+<tr><td colspan="2" align="left" valign="top"><p>
+ The generators <tt class="computeroutput"><span class="identifier">qword</span></tt>
+ and <tt class="computeroutput"><span class="identifier">qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></tt>
+ are only available on platforms where the preprocessor constant <tt class="computeroutput"><span class="identifier">BOOST_HAS_LONG_LONG</span></tt> is defined (i.e.
+ on platforms having native support for <tt class="computeroutput"><span class="keyword">unsigned</span>
+ <span class="keyword">long</span> <span class="keyword">long</span></tt>
(64 bit) integer types).
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.binary.binary_native.model_of"></a><h6>
-<a name="id809534"></a>
- <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.model_of">Model
+<a name="id621744"></a>
+ <a href="binary_native.html#spirit.karma.reference.binary.binary_native.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>
+ PrimitiveGenerator
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">b</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">b</span></tt></span></dt>
<dd><p>
- A single byte (8 bit binary value) or a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ A single byte (8 bit binary value) or a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a> that evaluates to a single byte
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">w</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">w</span></tt></span></dt>
<dd><p>
- A 16 bit binary value or a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ A 16 bit binary value or a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a> that evaluates to a 16 bit binary value. This value
is always interpreted using native endianness.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">dw</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">dw</span></tt></span></dt>
<dd><p>
- A 32 bit binary value or a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ A 32 bit binary value or a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a> that evaluates to a 16 bit binary value. This value
is always interpreted using native endianness.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">qw</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">qw</span></tt></span></dt>
<dd><p>
- A 64 bit binary value or a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ A 64 bit binary value or a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a> that evaluates to a 16 bit binary value. This value
is always interpreted using native endianness.
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.binary.binary_native.expression_semantics"></a><h6>
-<a name="id809669"></a>
- <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.expression_semantics">Expression
+<a name="id621945"></a>
+ <a href="binary_native.html#spirit.karma.reference.binary.binary_native.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>.
+ is not defined in PrimitiveGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -155,141 +151,105 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">byte_</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">byte_</span></tt>
+ </p></td>
+<td><p>
Output the binary representation of the least significant byte
of the mandatory attribute. This generator never fails (unless
the underlying output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">word</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">word</span></tt>
+ </p></td>
+<td><p>
Output the binary representation of the least significant 16
bits of the mandatory attribute in native endian representation.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">dword</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">dword</span></tt>
+ </p></td>
+<td><p>
Output the binary representation of the least significant 32
bits of the mandatory attribute in native endian representation.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">qword</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">qword</span></tt>
+ </p></td>
+<td><p>
Output the binary representation of the least significant 64
bits of the mandatory attribute in native endian representation.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">byte_</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">byte_</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Output the binary representation of the least significant byte
of the immediate parameter. This generator never fails (unless
the underlying output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Output the binary representation of the least significant 16
bits of the immediate parameter in native endian representation.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Output the binary representation of the least significant 32
bits of the immediate parameter in native endian representation.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Output the binary representation of the least significant 64
bits of the immediate parameter in native endian representation.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.binary.binary_native.attributes"></a><h6>
-<a name="id809967"></a>
- <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.attributes">Attributes</a>
+<a name="id622358"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -297,136 +257,100 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">byte_</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least8_t</span></code>, attribute is
+<td><p>
+ <tt class="computeroutput"><span class="identifier">byte_</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least8_t</span></tt>, attribute is
mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">word</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least16_t</span></code>, attribute is
+<td><p>
+ <tt class="computeroutput"><span class="identifier">word</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least16_t</span></tt>, attribute is
mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">dword</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least32_t</span></code>, attribute is
+<td><p>
+ <tt class="computeroutput"><span class="identifier">dword</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least32_t</span></tt>, attribute is
mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">qword</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least64_t</span></code>, attribute is
+<td><p>
+ <tt class="computeroutput"><span class="identifier">qword</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least64_t</span></tt>, attribute is
mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">byte_</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">byte_</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- In addition to their usual attribute of type <code class="computeroutput"><span class="identifier">Attrib</span></code>
- all listed generators accept an instance of a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Attrib</span><span class="special">></span></code> as well. If the <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></code> is initialized (holds a value)
- the generators behave as if their attribute was an instance of <code class="computeroutput"><span class="identifier">Attrib</span></code> and emit the value stored
- in the <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></code>.
+<tr><td colspan="2" align="left" valign="top"><p>
+ In addition to their usual attribute of type <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ all listed generators accept an instance of a <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Attrib</span><span class="special">></span></tt> as well. If the <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></tt> is initialized (holds a value)
+ the generators behave as if their attribute was an instance of <tt class="computeroutput"><span class="identifier">Attrib</span></tt> and emit the value stored
+ in the <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></tt>.
Otherwise the generators will fail.
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.binary.binary_native.complexity"></a><h6>
-<a name="id810967"></a>
- <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.complexity">Complexity</a>
+<a name="id622971"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -438,8 +362,8 @@
</p>
</blockquote></div>
<a name="spirit.karma.reference.binary.binary_native.example"></a><h6>
-<a name="id810991"></a>
- <a class="link" href="binary_native.html#spirit.karma.reference.binary.binary_native.example">Example</a>
+<a name="id623009"></a>
+ Example
</h6>
<p>
Some includes:
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/char.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/char.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/char.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Char</title>
+<title> Char</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="karma_basics.html" title="Basics">
-<link rel="next" href="char/char_generator.html" title="Character Generators (char_, lit)">
+<link rel="previous" href="karma_basics.html" title=" Basics">
+<link rel="next" href="char/char_generator.html" title=" Character
+ Generators (char_, lit)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,34 +23,37 @@
<div class="spirit-nav">
<a accesskey="p" href="karma_basics.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="char/char_generator.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Char">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.reference.char"></a><a class="link" href="char.html" title="Char"> Char</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.reference.char"></a> Char
+</h4></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section"><a href="char/char_generator.html"> Character
- Generators (<code class="computeroutput"><span class="identifier">char_</span></code>, <code class="computeroutput"><span class="identifier">lit</span></code>)</a></span></dt>
+ Generators (<tt class="computeroutput"><span class="identifier">char_</span></tt>, <tt class="computeroutput"><span class="identifier">lit</span></tt>)</a></span></dt>
<dt><span class="section"><a href="char/char_class.html"> Character
- Classification (<code class="computeroutput"><span class="identifier">alnum</span></code>,
- <code class="computeroutput"><span class="identifier">digit</span></code>, etc.)</a></span></dt>
+ Classification (<tt class="computeroutput"><span class="identifier">alnum</span></tt>,
+ <tt class="computeroutput"><span class="identifier">digit</span></tt>, etc.)</a></span></dt>
</dl></div>
<p>
This module includes different character oriented generators allowing to
- output single characters. Currently, it includes literal chars (e.g. <code class="computeroutput"><span class="char">'x'</span></code>, <code class="computeroutput"><span class="identifier">L</span><span class="char">'x'</span></code>), <code class="computeroutput"><span class="identifier">char_</span></code>
+ output single characters. Currently, it includes literal chars (e.g. <tt class="computeroutput"><span class="char">'x'</span></tt>, <tt class="computeroutput"><span class="identifier">L</span><span class="char">'x'</span></tt>), <tt class="computeroutput"><span class="identifier">char_</span></tt>
(single characters, ranges and character sets) and the encoding specific
- character classifiers (<code class="computeroutput"><span class="identifier">alnum</span></code>,
- <code class="computeroutput"><span class="identifier">alpha</span></code>, <code class="computeroutput"><span class="identifier">digit</span></code>,
- <code class="computeroutput"><span class="identifier">xdigit</span></code>, etc.).
+ character classifiers (<tt class="computeroutput"><span class="identifier">alnum</span></tt>,
+ <tt class="computeroutput"><span class="identifier">alpha</span></tt>, <tt class="computeroutput"><span class="identifier">digit</span></tt>,
+ <tt class="computeroutput"><span class="identifier">xdigit</span></tt>, etc.).
</p>
-<a name="spirit.karma.reference.char.module_header"></a><h6>
-<a name="id765097"></a>
- <a class="link" href="char.html#spirit.karma.reference.char.module_header">Module Header</a>
- </h6>
+<a name="spirit.karma.reference.char.module_header"></a><h5>
+<a name="id577089"></a>
+ Module Header
+ </h5>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/char.hpp>
</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">karma_char</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/char/char_class.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/char/char_class.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/char/char_class.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Character Classification (alnum, digit, etc.)</title>
+<title> Character
+ Classification (alnum,
+ digit, etc.)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../char.html" title="Char">
-<link rel="prev" href="char_generator.html" title="Character Generators (char_, lit)">
+<link rel="up" href="../char.html" title=" Char">
+<link rel="previous" href="char_generator.html" title=" Character
+ Generators (char_, lit)">
<link rel="next" href="../string.html" title="String">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,147 +25,126 @@
<div class="spirit-nav">
<a accesskey="p" href="char_generator.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../char.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../string.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Character Classification (alnum, digit, etc.)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.char.char_class"></a><a class="link" href="char_class.html" title="Character Classification (alnum, digit, etc.)"> Character
- Classification (<code class="computeroutput"><span class="identifier">alnum</span></code>,
- <code class="computeroutput"><span class="identifier">digit</span></code>, etc.)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.char.char_class"></a><a href="char_class.html" title=" Character
+ Classification (alnum,
+ digit, etc.)"> Character
+ Classification (<tt class="computeroutput"><span class="identifier">alnum</span></tt>,
+ <tt class="computeroutput"><span class="identifier">digit</span></tt>, etc.)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.char.char_class.description"></a><h6>
-<a name="id771544"></a>
- <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.description">Description</a>
+<a name="id583044"></a>
+ Description
</h6>
<p>
The library has the full repertoire of single character generators for
- character classification. This includes the usual <code class="computeroutput"><span class="identifier">alnum</span></code>,
- <code class="computeroutput"><span class="identifier">alpha</span></code>, <code class="computeroutput"><span class="identifier">digit</span></code>, <code class="computeroutput"><span class="identifier">xdigit</span></code>,
- etc. generators. These generators have an associated <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+ character classification. This includes the usual <tt class="computeroutput"><span class="identifier">alnum</span></tt>,
+ <tt class="computeroutput"><span class="identifier">alpha</span></tt>, <tt class="computeroutput"><span class="identifier">digit</span></tt>, <tt class="computeroutput"><span class="identifier">xdigit</span></tt>,
+ etc. generators. These generators have an associated <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a>. This is needed when doing basic operations
such as forcing lower or upper case.
</p>
<a name="spirit.karma.reference.char.char_class.header"></a><h6>
-<a name="id771594"></a>
- <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.header">Header</a>
+<a name="id583137"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/char/char_class.hpp>
</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">karma_char_class</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.char.char_class.namespace"></a><h6>
-<a name="id771668"></a>
- <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.namespace">Namespace</a>
+<a name="id583251"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">alnum</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">alpha</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">blank</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">cntrl</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">digit</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">graph</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">lower</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">print</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">punct</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">space</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">upper</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">xdigit</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">alnum</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">alpha</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">blank</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">cntrl</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">digit</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">graph</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">lower</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">print</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">punct</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">space</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">upper</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">xdigit</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
<p>
- In the table above, <code class="computeroutput"><span class="identifier">ns</span></code>
- is a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+ In the table above, <tt class="computeroutput"><span class="identifier">ns</span></tt>
+ is a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a> used by the corresponding character class generator.
- All listed generators have a mandatory attribute <code class="computeroutput"><span class="identifier">Ch</span></code>
+ All listed generators have a mandatory attribute <tt class="computeroutput"><span class="identifier">Ch</span></tt>
and will not compile if no attribute is associated.
</p>
<a name="spirit.karma.reference.char.char_class.model_of"></a><h6>
-<a name="id772034"></a>
- <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.model_of">Model
+<a name="id583732"></a>
+ <a href="char_class.html#spirit.karma.reference.char.char_class.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>
+ PrimitiveGenerator
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">ns</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">ns</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+ A <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a>.
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.char.char_class.expression_semantics"></a><h6>
-<a name="id772103"></a>
- <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.expression_semantics">Expression
+<a name="id583825"></a>
+ <a href="char_class.html#spirit.karma.reference.char.char_class.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>.
+ is not defined in PrimitiveGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -170,219 +152,167 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">alnum</span></code>
- </p>
- </td>
-<td>
- <p>
- If the mandatory attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isalnum</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">alnum</span></tt>
+ </p></td>
+<td><p>
+ If the mandatory attribute satisfies the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isalnum</span></tt> in the <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a> the generator succeeds after emitting
its attribute (unless the underlying output stream reports an
error). This generator fails otherwise while not generating anything.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">alpha</span></code>
- </p>
- </td>
-<td>
- <p>
- If the mandatory attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isalpha</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">alpha</span></tt>
+ </p></td>
+<td><p>
+ If the mandatory attribute satisfies the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isalpha</span></tt> in the <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a> the generator succeeds after emitting
its attribute (unless the underlying output stream reports an
error). This generator fails otherwise while not generating anything.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">blank</span></code>
- </p>
- </td>
-<td>
- <p>
- If the mandatory attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isblank</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">blank</span></tt>
+ </p></td>
+<td><p>
+ If the mandatory attribute satisfies the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isblank</span></tt> in the <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a> the generator succeeds after emitting
its attribute (unless the underlying output stream reports an
error). This generator fails otherwise while not generating anything.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">cntrl</span></code>
- </p>
- </td>
-<td>
- <p>
- If the mandatory attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">iscntrl</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">cntrl</span></tt>
+ </p></td>
+<td><p>
+ If the mandatory attribute satisfies the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">iscntrl</span></tt> in the <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a> the generator succeeds after emitting
its attribute (unless the underlying output stream reports an
error). This generator fails otherwise while not generating anything.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">digit</span></code>
- </p>
- </td>
-<td>
- <p>
- If the mandatory attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isdigit</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">digit</span></tt>
+ </p></td>
+<td><p>
+ If the mandatory attribute satisfies the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isdigit</span></tt> in the <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a> the generator succeeds after emitting
its attribute (unless the underlying output stream reports an
error). This generator fails otherwise while not generating anything.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">graph</span></code>
- </p>
- </td>
-<td>
- <p>
- If the mandatory attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isgraph</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">graph</span></tt>
+ </p></td>
+<td><p>
+ If the mandatory attribute satisfies the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isgraph</span></tt> in the <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a> the generator succeeds after emitting
its attribute (unless the underlying output stream reports an
error). This generator fails otherwise while not generating anything.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">print</span></code>
- </p>
- </td>
-<td>
- <p>
- If the mandatory attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isprint</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">print</span></tt>
+ </p></td>
+<td><p>
+ If the mandatory attribute satisfies the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isprint</span></tt> in the <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a> the generator succeeds after emitting
its attribute (unless the underlying output stream reports an
error). This generator fails otherwise while not generating anything.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">punct</span></code>
- </p>
- </td>
-<td>
- <p>
- If the mandatory attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ispunct</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">punct</span></tt>
+ </p></td>
+<td><p>
+ If the mandatory attribute satisfies the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ispunct</span></tt> in the <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a> the generator succeeds after emitting
its attribute (unless the underlying output stream reports an
error). This generator fails otherwise while not generating anything.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">xdigit</span></code>
- </p>
- </td>
-<td>
- <p>
- If the mandatory attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isxdigit</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">xdigit</span></tt>
+ </p></td>
+<td><p>
+ If the mandatory attribute satisfies the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isxdigit</span></tt> in the <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a> the generator succeeds after emitting
its attribute (unless the underlying output stream reports an
error). This generator fails otherwise while not generating anything.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">lower</span></code>
- </p>
- </td>
-<td>
- <p>
- If the mandatory attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">islower</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">lower</span></tt>
+ </p></td>
+<td><p>
+ If the mandatory attribute satisfies the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">islower</span></tt> in the <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a> the generator succeeds after emitting
its attribute (unless the underlying output stream reports an
error). This generator fails otherwise while not generating anything.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">upper</span></code>
- </p>
- </td>
-<td>
- <p>
- If the mandatory attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isupper</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">upper</span></tt>
+ </p></td>
+<td><p>
+ If the mandatory attribute satisfies the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isupper</span></tt> in the <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a> the generator succeeds after emitting
its attribute (unless the underlying output stream reports an
error). This generator fails otherwise while not generating anything.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">space</span></code>
- </p>
- </td>
-<td>
- <p>
- If the optional attribute satisfies the concept of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isspace</span></code> in the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">space</span></tt>
+ </p></td>
+<td><p>
+ If the optional attribute satisfies the concept of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isspace</span></tt> in the <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a> the generator succeeds after emitting
its attribute (unless the underlying output stream reports an
error). This generator fails otherwise while not generating anything.If
no attribute is supplied this generator emits a single space
- character in the character set defined by <code class="computeroutput"><span class="identifier">ns</span></code>.
- </p>
- </td>
+ character in the character set defined by <tt class="computeroutput"><span class="identifier">ns</span></tt>.
+ </p></td>
</tr>
</tbody>
</table></div>
<p>
- Possible values for <code class="computeroutput"><span class="identifier">ns</span></code>
- are described in the section <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+ Possible values for <tt class="computeroutput"><span class="identifier">ns</span></tt>
+ are described in the section <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a>.
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top">
+<tr><td colspan="2" align="left" valign="top">
<p>
- The generators <code class="computeroutput"><span class="identifier">alpha</span></code>
- and <code class="computeroutput"><span class="identifier">alnum</span></code> might seem
- to behave unexpected if used inside a <code class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></code> or <code class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></code> directive. Both directives additionally
- apply the semanitics of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">islower</span></code>
- or <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isupper</span></code> to the respective character
+ The generators <tt class="computeroutput"><span class="identifier">alpha</span></tt>
+ and <tt class="computeroutput"><span class="identifier">alnum</span></tt> might seem
+ to behave unexpected if used inside a <tt class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></tt> or <tt class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></tt> directive. Both directives additionally
+ apply the semanitics of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">islower</span></tt>
+ or <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isupper</span></tt> to the respective character
class. Some examples:
</p>
<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">s</span><span class="special">;</span>
@@ -391,41 +321,41 @@
</span><span class="identifier">generate</span><span class="special">(</span><span class="identifier">out</span><span class="special">,</span> <span class="identifier">lower</span><span class="special">[</span><span class="identifier">alpha</span><span class="special">],</span> <span class="char">'A'</span><span class="special">);</span> <span class="comment">// fails
</span></pre>
<p>
- The generator directive <code class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></code> behaves correspondingly.
+ The generator directive <tt class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></tt> behaves correspondingly.
</p>
</td></tr>
</table></div>
<a name="spirit.karma.reference.char.char_class.attributes"></a><h6>
-<a name="id773034"></a>
- <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.attributes">Attributes</a>
+<a name="id585199"></a>
+ Attributes
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- All listed character class generators can take any attribute <code class="computeroutput"><span class="identifier">Ch</span></code>. All character class generators
- (except <code class="computeroutput"><span class="identifier">space</span></code>) require
+ All listed character class generators can take any attribute <tt class="computeroutput"><span class="identifier">Ch</span></tt>. All character class generators
+ (except <tt class="computeroutput"><span class="identifier">space</span></tt>) require
an attribute and will fail compiling otherwise.
</p>
<p>
</p>
</blockquote></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- In addition to their usual attribute of type <code class="computeroutput"><span class="identifier">Ch</span></code>
- all listed generators accept an instance of a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Ch</span><span class="special">></span></code> as well. If the <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></code> is initialized (holds a value)
- the generators behave as if their attribute was an instance of <code class="computeroutput"><span class="identifier">Ch</span></code> and emit the value stored in the
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></code>.
+<tr><td colspan="2" align="left" valign="top"><p>
+ In addition to their usual attribute of type <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ all listed generators accept an instance of a <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Ch</span><span class="special">></span></tt> as well. If the <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></tt> is initialized (holds a value)
+ the generators behave as if their attribute was an instance of <tt class="computeroutput"><span class="identifier">Ch</span></tt> and emit the value stored in the
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></tt>.
Otherwise the generators will fail.
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.char.char_class.complexity"></a><h6>
-<a name="id773159"></a>
- <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.complexity">Complexity</a>
+<a name="id585389"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -441,8 +371,8 @@
per invocation.
</p>
<a name="spirit.karma.reference.char.char_class.example"></a><h6>
-<a name="id773186"></a>
- <a class="link" href="char_class.html#spirit.karma.reference.char.char_class.example">Example</a>
+<a name="id585432"></a>
+ Example
</h6>
<p>
Some includes:
@@ -502,7 +432,7 @@
<p>
</p>
<p>
- Basic usage of an <code class="computeroutput"><span class="identifier">alpha</span></code>
+ Basic usage of an <tt class="computeroutput"><span class="identifier">alpha</span></tt>
generator:
</p>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/char/char_generator.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/char/char_generator.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/char/char_generator.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Character Generators (char_, lit)</title>
+<title> Character
+ Generators (char_, lit)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../char.html" title="Char">
-<link rel="prev" href="../char.html" title="Char">
-<link rel="next" href="char_class.html" title="Character Classification (alnum, digit, etc.)">
+<link rel="up" href="../char.html" title=" Char">
+<link rel="previous" href="../char.html" title=" Char">
+<link rel="next" href="char_class.html" title=" Character
+ Classification (alnum,
+ digit, etc.)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,45 +25,49 @@
<div class="spirit-nav">
<a accesskey="p" href="../char.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../char.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="char_class.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Character Generators (char_, lit)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.char.char_generator"></a><a class="link" href="char_generator.html" title="Character Generators (char_, lit)"> Character
- Generators (<code class="computeroutput"><span class="identifier">char_</span></code>, <code class="computeroutput"><span class="identifier">lit</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.char.char_generator"></a><a href="char_generator.html" title=" Character
+ Generators (char_, lit)"> Character
+ Generators (<tt class="computeroutput"><span class="identifier">char_</span></tt>, <tt class="computeroutput"><span class="identifier">lit</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.char.char_generator.description"></a><h6>
-<a name="id765196"></a>
- <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.description">Description</a>
+<a name="id577244"></a>
+ Description
</h6>
<p>
The character generators described in this section are:
</p>
<p>
- The <code class="computeroutput"><span class="identifier">char_</span></code> generator emits
- single characters. The <code class="computeroutput"><span class="identifier">char_</span></code>
- generator has an associated <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+ The <tt class="computeroutput"><span class="identifier">char_</span></tt> generator emits
+ single characters. The <tt class="computeroutput"><span class="identifier">char_</span></tt>
+ generator has an associated <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a>. This is needed when doing basic operations
such as forcing lower or upper case and dealing with character ranges.
</p>
<p>
- There are various forms of <code class="computeroutput"><span class="identifier">char_</span></code>.
+ There are various forms of <tt class="computeroutput"><span class="identifier">char_</span></tt>.
</p>
<a name="spirit.karma.reference.char.char_generator.char_"></a><h6>
-<a name="id765246"></a>
- <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.char_">char_</a>
+<a name="id577333"></a>
+ char_
</h6>
<p>
- The no argument form of <code class="computeroutput"><span class="identifier">char_</span></code>
- emits any character in the associated <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+ The no argument form of <tt class="computeroutput"><span class="identifier">char_</span></tt>
+ emits any character in the associated <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a>.
</p>
<pre class="programlisting"><span class="identifier">char_</span> <span class="comment">// emits any character as supplied by the attribute
</span></pre>
<a name="spirit.karma.reference.char.char_generator.char__ch_"></a><h6>
-<a name="id765287"></a>
- <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.char__ch_">char_(ch)</a>
+<a name="id577403"></a>
+ char_(ch)
</h6>
<p>
- The single argument form of <code class="computeroutput"><span class="identifier">char_</span></code>
+ The single argument form of <tt class="computeroutput"><span class="identifier">char_</span></tt>
(with a character argument) emits the supplied character.
</p>
<pre class="programlisting"><span class="identifier">char_</span><span class="special">(</span><span class="char">'x'</span><span class="special">)</span> <span class="comment">// emits 'x'
@@ -68,12 +75,12 @@
</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="comment">// emits x (a char)
</span></pre>
<a name="spirit.karma.reference.char.char_generator.char__first__last_"></a><h6>
-<a name="id765378"></a>
- <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.char__first__last_">char_(first,
+<a name="id577535"></a>
+ <a href="char_generator.html#spirit.karma.reference.char.char_generator.char__first__last_">char_(first,
last)</a>
</h6>
<p>
- <code class="computeroutput"><span class="identifier">char_</span></code> with two arguments,
+ <tt class="computeroutput"><span class="identifier">char_</span></tt> with two arguments,
emits any character from a range of characters as supplied by the attribute.
</p>
<pre class="programlisting"><span class="identifier">char_</span><span class="special">(</span><span class="char">'a'</span><span class="special">,</span><span class="char">'z'</span><span class="special">)</span> <span class="comment">// alphabetic characters
@@ -83,36 +90,36 @@
A range of characters is created from a low-high character pair. Such
a generator emits a single character that is in the range, including
both endpoints. Note, the first character must be <span class="emphasis"><em>before</em></span>
- the second, according to the underlying <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+ the second, according to the underlying <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a>.
</p>
<p>
Character mapping is inherently platform dependent. It is not guaranteed
- in the standard for example that <code class="computeroutput"><span class="char">'A'</span>
- <span class="special"><</span> <span class="char">'Z'</span></code>,
- that is why in Spirit2, we purposely attach a specific <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
- Encoding Namespace</a> (such as ASCII, ISO-8859-1) to the <code class="computeroutput"><span class="identifier">char_</span></code> generator to eliminate such ambiguities.
+ in the standard for example that <tt class="computeroutput"><span class="char">'A'</span>
+ <span class="special"><</span> <span class="char">'Z'</span></tt>,
+ that is why in Spirit2, we purposely attach a specific <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+ Encoding Namespace</a> (such as ASCII, ISO-8859-1) to the <tt class="computeroutput"><span class="identifier">char_</span></tt> generator to eliminate such ambiguities.
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top">
+<tr><td colspan="2" align="left" valign="top">
<p>
- <span class="bold"><strong>Sparse bit vectors</strong></span>
+ <span class="bold"><b>Sparse bit vectors</b></span>
</p>
<p>
To accomodate 16/32 and 64 bit characters, the char-set statically
- switches from a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bitset</span></code>
+ switches from a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bitset</span></tt>
implementation when the character type is not greater than 8 bits,
to a sparse bit/boolean set which uses a sorted vector of disjoint
- ranges (<code class="computeroutput"><span class="identifier">range_run</span></code>).
+ ranges (<tt class="computeroutput"><span class="identifier">range_run</span></tt>).
The set is constructed from ranges such that adjacent or overlapping
ranges are coalesced.
</p>
<p>
- <code class="computeroutput"><span class="identifier">range_runs</span></code> are very
+ <tt class="computeroutput"><span class="identifier">range_runs</span></tt> are very
space-economical in situations where there are lots of ranges and a
few individual disjoint values. Searching is O(log n) where n is the
number of ranges.
@@ -120,11 +127,11 @@
</td></tr>
</table></div>
<a name="spirit.karma.reference.char.char_generator.char__def_"></a><h6>
-<a name="id765560"></a>
- <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.char__def_">char_(def)</a>
+<a name="id577820"></a>
+ char_(def)
</h6>
<p>
- Lastly, when given a string (a plain C string, a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span></code>,
+ Lastly, when given a string (a plain C string, a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span></tt>,
etc.), the string is regarded as a char-set definition string following
a syntax that resembles posix style regular expression character sets
(except that double quotes delimit the set elements instead of square
@@ -140,33 +147,39 @@
by the attribute.
</p>
<a name="spirit.karma.reference.char.char_generator.lit_ch_"></a><h6>
-<a name="id765677"></a>
- <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.lit_ch_">lit(ch)</a>
+<a name="id577995"></a>
+ lit(ch)
</h6>
<p>
- <code class="computeroutput"><span class="identifier">lit</span></code>, when passed a single
- character, behaves like the single argument <code class="computeroutput"><span class="identifier">char_</span></code>
- except that <code class="computeroutput"><span class="identifier">lit</span></code> does
- not consume an attribute. A plain <code class="computeroutput"><span class="keyword">char</span></code>
- or <code class="computeroutput"><span class="keyword">wchar_t</span></code> is equivalent
- to a <code class="computeroutput"><span class="identifier">lit</span></code>.
+ <tt class="computeroutput"><span class="identifier">lit</span></tt>, when passed a single
+ character, behaves like the single argument <tt class="computeroutput"><span class="identifier">char_</span></tt>
+ except that <tt class="computeroutput"><span class="identifier">lit</span></tt> does
+ not consume an attribute. A plain <tt class="computeroutput"><span class="keyword">char</span></tt>
+ or <tt class="computeroutput"><span class="keyword">wchar_t</span></tt> is equivalent
+ to a <tt class="computeroutput"><span class="identifier">lit</span></tt>.
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- <code class="computeroutput"><span class="identifier">lit</span></code> is reused by the
- <a class="link" href="../string.html" title="String">String Generators</a>,
- the char generators, and the Numeric Generators (see <a class="link" href="../numeric/signed_int.html" title="Signed Integer Number Generators (int_, etc.)">signed
- integer</a>, <a class="link" href="../numeric/unsigned_int.html" title="Unsigned Integer Number Generators (uint_, etc.)">unsigned
- integer</a>, and <a class="link" href="../numeric/real_number.html" title="Real Number Generators (float_, double_, etc.)">real
+<tr><td colspan="2" align="left" valign="top"><p>
+ <tt class="computeroutput"><span class="identifier">lit</span></tt> is reused by the
+ String Generators,
+ the char generators, and the Numeric Generators (see <a href="../numeric/signed_int.html" title=" Signed
+ Integer Number Generators (int_,
+ etc.)">signed
+ integer</a>, <a href="../numeric/unsigned_int.html" title=" Unsigned
+ Integer Number Generators (uint_,
+ etc.)">unsigned
+ integer</a>, and <a href="../numeric/real_number.html" title=" Real
+ Number Generators (float_,
+ double_, etc.)">real
number</a> generators). In general, a char generator is created
when you pass in a character, a string generator is created when you
pass in a string, and a numeric generator is created when you use a
numeric literal. The exception is when you pass a single element literal
- string, e.g. <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="string">"x"</span><span class="special">)</span></code>.
+ string, e.g. <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="string">"x"</span><span class="special">)</span></tt>.
In this case, we optimize this to create a char generator instead of
a string generator.
</p></td></tr>
@@ -180,100 +193,94 @@
<span class="identifier">lit</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span> <span class="comment">// c is a char
</span></pre>
<a name="spirit.karma.reference.char.char_generator.header"></a><h6>
-<a name="id765854"></a>
- <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.header">Header</a>
+<a name="id578274"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/char/char.hpp>
</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">karma_char_</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.char.char_generator.namespace"></a><h6>
-<a name="id765929"></a>
- <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.namespace">Namespace</a>
+<a name="id578388"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lit</span> <span class="comment">// alias:
- boost::spirit::karma::lit</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lit</span> <span class="comment">// alias:
+ boost::spirit::karma::lit</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
<p>
- In the table above, <code class="computeroutput"><span class="identifier">ns</span></code>
- is a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+ In the table above, <tt class="computeroutput"><span class="identifier">ns</span></tt>
+ is a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a>.
</p>
<a name="spirit.karma.reference.char.char_generator.model_of"></a><h6>
-<a name="id766048"></a>
- <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.model_of">Model
+<a name="id578552"></a>
+ <a href="char_generator.html#spirit.karma.reference.char.char_generator.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>
+ PrimitiveGenerator
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">ch</span></code>,
- <code class="computeroutput"><span class="identifier">ch1</span></code>, <code class="computeroutput"><span class="identifier">ch2</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">ch</span></tt>,
+ <tt class="computeroutput"><span class="identifier">ch1</span></tt>, <tt class="computeroutput"><span class="identifier">ch2</span></tt></span></dt>
<dd><p>
Character-class specific character (See Character Class Types), or
- a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a> that evaluates to a character-class specific character
value
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">cs</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">cs</span></tt></span></dt>
<dd><p>
Character-set specifier string (See Character Class Types), or a
- <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a> that evaluates to a character-set specifier string,
or a pointer/reference to a null-terminated array of characters.
This string specifies a char-set definition string following a syntax
that resembles posix style regular expression character sets (except
- the square brackets and the negation <code class="computeroutput"><span class="special">^</span></code>
+ the square brackets and the negation <tt class="computeroutput"><span class="special">^</span></tt>
character).
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">ns</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">ns</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+ A <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a>.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">cg</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">cg</span></tt></span></dt>
<dd><p>
A char generator, a char range generator, or a char set generator.
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.char.char_generator.expression_semantics"></a><h6>
-<a name="id766201"></a>
- <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.expression_semantics">Expression
+<a name="id578782"></a>
+ <a href="char_generator.html#spirit.karma.reference.char.char_generator.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>.
+ is not defined in PrimitiveGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -281,169 +288,133 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate the character literal <code class="computeroutput"><span class="identifier">ch</span></code>.
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ch</span></tt>
+ </p></td>
+<td><p>
+ Generate the character literal <tt class="computeroutput"><span class="identifier">ch</span></tt>.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate the character literal <code class="computeroutput"><span class="identifier">ch</span></code>.
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Generate the character literal <tt class="computeroutput"><span class="identifier">ch</span></tt>.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span></tt>
+ </p></td>
+<td><p>
Generate the character provided by a mandatory attribute interpreted
- in the character set defined by <code class="computeroutput"><span class="identifier">ns</span></code>.
+ in the character set defined by <tt class="computeroutput"><span class="identifier">ns</span></tt>.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate the character <code class="computeroutput"><span class="identifier">ch</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Generate the character <tt class="computeroutput"><span class="identifier">ch</span></tt>
as provided by the immediate literal value the generator is initialized
from. If this generator has an associated attribute it succeeds
only as long as the attribute is equal to the immediate literal
(unless the underlying output stream reports an error). Otherwise
this generator fails and does not generate any output.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="string">"c"</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate the character <code class="computeroutput"><span class="identifier">c</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="string">"c"</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Generate the character <tt class="computeroutput"><span class="identifier">c</span></tt>
as provided by the immediate literal value the generator is initialized
from. If this generator has an associated attribute it succeeds
only as long as the attribute is equal to the immediate literal
(unless the underlying output stream reports an error). Otherwise
this generator fails and does not generate any output.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch1</span><span class="special">,</span>
- <span class="identifier">ch2</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch1</span><span class="special">,</span>
+ <span class="identifier">ch2</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Generate the character provided by a mandatory attribute interpreted
- in the character set defined by <code class="computeroutput"><span class="identifier">ns</span></code>.
+ in the character set defined by <tt class="computeroutput"><span class="identifier">ns</span></tt>.
The generator succeeds as long as the attribute belongs to the
- character range <code class="computeroutput"><span class="special">[</span><span class="identifier">ch1</span><span class="special">,</span>
- <span class="identifier">ch2</span><span class="special">]</span></code>
+ character range <tt class="computeroutput"><span class="special">[</span><span class="identifier">ch1</span><span class="special">,</span>
+ <span class="identifier">ch2</span><span class="special">]</span></tt>
(unless the underlying output stream reports an error). Otherwise
this generator fails and does not generate any output.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">cs</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">cs</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Generate the character provided by a mandatory attribute interpreted
- in the character set defined by <code class="computeroutput"><span class="identifier">ns</span></code>.
+ in the character set defined by <tt class="computeroutput"><span class="identifier">ns</span></tt>.
The generator succeeds as long as the attribute belongs to the
- character set <code class="computeroutput"><span class="identifier">cs</span></code>
+ character set <tt class="computeroutput"><span class="identifier">cs</span></tt>
(unless the underlying output stream reports an error). Otherwise
this generator fails and does not generate any output.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">~</span><span class="identifier">cg</span></code>
- </p>
- </td>
-<td>
- <p>
- Negate <code class="computeroutput"><span class="identifier">cg</span></code>. The
+<td><p>
+ <tt class="computeroutput"><span class="special">~</span><span class="identifier">cg</span></tt>
+ </p></td>
+<td><p>
+ Negate <tt class="computeroutput"><span class="identifier">cg</span></tt>. The
result is a negated char generator that inverts the test condition
of the character generator it is attached to.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<p>
- A character <code class="computeroutput"><span class="identifier">ch</span></code> is assumed
- to belong to the character range defined by <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch1</span><span class="special">,</span> <span class="identifier">ch2</span><span class="special">)</span></code> if its character value (binary representation)
- interpreted in the character set defined by <code class="computeroutput"><span class="identifier">ns</span></code>
- is not smaller than the character value of <code class="computeroutput"><span class="identifier">ch1</span></code>
- and not larger then the character value of <code class="computeroutput"><span class="identifier">ch2</span></code>
- (i.e. <code class="computeroutput"><span class="identifier">ch1</span> <span class="special"><=</span>
+ A character <tt class="computeroutput"><span class="identifier">ch</span></tt> is assumed
+ to belong to the character range defined by <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch1</span><span class="special">,</span> <span class="identifier">ch2</span><span class="special">)</span></tt> if its character value (binary representation)
+ interpreted in the character set defined by <tt class="computeroutput"><span class="identifier">ns</span></tt>
+ is not smaller than the character value of <tt class="computeroutput"><span class="identifier">ch1</span></tt>
+ and not larger then the character value of <tt class="computeroutput"><span class="identifier">ch2</span></tt>
+ (i.e. <tt class="computeroutput"><span class="identifier">ch1</span> <span class="special"><=</span>
<span class="identifier">ch</span> <span class="special"><=</span>
- <span class="identifier">ch2</span></code>).
+ <span class="identifier">ch2</span></tt>).
</p>
<p>
- The <code class="computeroutput"><span class="identifier">charset</span></code> parameter
- passed to <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">charset</span><span class="special">)</span></code>
+ The <tt class="computeroutput"><span class="identifier">charset</span></tt> parameter
+ passed to <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">charset</span><span class="special">)</span></tt>
must be a string containing more than one character. Every single character
in this string is assumed to belong to the character set defined by this
- expression. An exception to this is the <code class="computeroutput"><span class="char">'-'</span></code>
+ expression. An exception to this is the <tt class="computeroutput"><span class="char">'-'</span></tt>
character which has a special meaning if it is not specified as the first
- and not the last character in <code class="computeroutput"><span class="identifier">charset</span></code>.
- If the <code class="computeroutput"><span class="char">'-'</span></code> is used in between
+ and not the last character in <tt class="computeroutput"><span class="identifier">charset</span></tt>.
+ If the <tt class="computeroutput"><span class="char">'-'</span></tt> is used in between
to characters it is interpreted as spanning a character range. A character
- <code class="computeroutput"><span class="identifier">ch</span></code> is considered to belong
- to the defined character set <code class="computeroutput"><span class="identifier">charset</span></code>
+ <tt class="computeroutput"><span class="identifier">ch</span></tt> is considered to belong
+ to the defined character set <tt class="computeroutput"><span class="identifier">charset</span></tt>
if it matches one of the characters as specified by the string parameter
described above. For example
</p>
@@ -453,71 +424,51 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Example
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="string">"abc"</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="string">"abc"</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
'a', 'b', and 'c'
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="string">"a-z"</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="string">"a-z"</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
all characters (and including) from 'a' to 'z'
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="string">"a-zA-Z"</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="string">"a-zA-Z"</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
all characters (and including) from 'a' to 'z' and 'A' and 'Z'
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="string">"-1-9"</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="string">"-1-9"</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
'-' and all characters (and including) from '1' to '9'
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.char.char_generator.attributes"></a><h6>
-<a name="id769260"></a>
- <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.attributes">Attributes</a>
+<a name="id579873"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -525,158 +476,122 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ch</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>, attribute
- is mandatory (otherwise compilation will fail). <code class="computeroutput"><span class="identifier">Ch</span></code> is the character type of
- the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
- Encoding Namespace</a>, <code class="computeroutput"><span class="identifier">ns</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>, attribute
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ch</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>, attribute
+ is mandatory (otherwise compilation will fail). <tt class="computeroutput"><span class="identifier">Ch</span></tt> is the character type of
+ the <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+ Encoding Namespace</a>, <tt class="computeroutput"><span class="identifier">ns</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>, attribute
is optional, if it is supplied, the generator compares the attribute
- with <code class="computeroutput"><span class="identifier">ch</span></code> and succeeds
- only if both are equal, failing otherwise. <code class="computeroutput"><span class="identifier">Ch</span></code>
- is the character type of the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
- Encoding Namespace</a>, <code class="computeroutput"><span class="identifier">ns</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="string">"c"</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>, attribute
+ with <tt class="computeroutput"><span class="identifier">ch</span></tt> and succeeds
+ only if both are equal, failing otherwise. <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ is the character type of the <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+ Encoding Namespace</a>, <tt class="computeroutput"><span class="identifier">ns</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="string">"c"</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>, attribute
is optional, if it is supplied, the generator compares the attribute
- with <code class="computeroutput"><span class="identifier">c</span></code> and succeeds
- only if both are equal, failing otherwise. <code class="computeroutput"><span class="identifier">Ch</span></code>
- is the character type of the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
- Encoding Namespace</a>, <code class="computeroutput"><span class="identifier">ns</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch1</span><span class="special">,</span>
- <span class="identifier">ch2</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>, attribute
+ with <tt class="computeroutput"><span class="identifier">c</span></tt> and succeeds
+ only if both are equal, failing otherwise. <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ is the character type of the <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+ Encoding Namespace</a>, <tt class="computeroutput"><span class="identifier">ns</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch1</span><span class="special">,</span>
+ <span class="identifier">ch2</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>, attribute
is mandatory (otherwise compilation will fail), the generator
- succeeds if the attribute belongs to the character range <code class="computeroutput"><span class="special">[</span><span class="identifier">ch1</span><span class="special">,</span> <span class="identifier">ch2</span><span class="special">]</span></code> interpreted in the character
- set defined by <code class="computeroutput"><span class="identifier">ns</span></code>.
- <code class="computeroutput"><span class="identifier">Ch</span></code> is the character
- type of the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
- Encoding Namespace</a>, <code class="computeroutput"><span class="identifier">ns</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">cs</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>, attribute
+ succeeds if the attribute belongs to the character range <tt class="computeroutput"><span class="special">[</span><span class="identifier">ch1</span><span class="special">,</span> <span class="identifier">ch2</span><span class="special">]</span></tt> interpreted in the character
+ set defined by <tt class="computeroutput"><span class="identifier">ns</span></tt>.
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt> is the character
+ type of the <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+ Encoding Namespace</a>, <tt class="computeroutput"><span class="identifier">ns</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">cs</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>, attribute
is mandatory (otherwise compilation will fail), the generator
- succeeds if the attribute belongs to the character set <code class="computeroutput"><span class="identifier">cs</span></code>, interpreted in the character
- set defined by <code class="computeroutput"><span class="identifier">ns</span></code>.
- <code class="computeroutput"><span class="identifier">Ch</span></code> is the character
- type of the <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
- Encoding Namespace</a>, <code class="computeroutput"><span class="identifier">ns</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">~</span><span class="identifier">cg</span></code>
- </p>
- </td>
-<td>
- <p>
- Attribute of <code class="computeroutput"><span class="identifier">cg</span></code>
- </p>
- </td>
+ succeeds if the attribute belongs to the character set <tt class="computeroutput"><span class="identifier">cs</span></tt>, interpreted in the character
+ set defined by <tt class="computeroutput"><span class="identifier">ns</span></tt>.
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt> is the character
+ type of the <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+ Encoding Namespace</a>, <tt class="computeroutput"><span class="identifier">ns</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="special">~</span><span class="identifier">cg</span></tt>
+ </p></td>
+<td><p>
+ Attribute of <tt class="computeroutput"><span class="identifier">cg</span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- In addition to their usual attribute of type <code class="computeroutput"><span class="identifier">Ch</span></code>
- all listed generators accept an instance of a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Ch</span><span class="special">></span></code> as well. If the <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></code> is initialized (holds a value)
- the generators behave as if their attribute was an instance of <code class="computeroutput"><span class="identifier">Ch</span></code> and emit the value stored in the
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></code>.
+<tr><td colspan="2" align="left" valign="top"><p>
+ In addition to their usual attribute of type <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ all listed generators accept an instance of a <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Ch</span><span class="special">></span></tt> as well. If the <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></tt> is initialized (holds a value)
+ the generators behave as if their attribute was an instance of <tt class="computeroutput"><span class="identifier">Ch</span></tt> and emit the value stored in the
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></tt>.
Otherwise the generators will fail.
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.char.char_generator.complexity"></a><h6>
-<a name="id769898"></a>
- <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.complexity">Complexity</a>
+<a name="id580794"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -688,24 +603,24 @@
</p>
</blockquote></div>
<p>
- The complexity of <code class="computeroutput"><span class="identifier">ch</span></code>,
- <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></code>,
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span></code>, <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></code>, and <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="string">"c"</span><span class="special">)</span></code> is constant as all generators emit exactly
+ The complexity of <tt class="computeroutput"><span class="identifier">ch</span></tt>,
+ <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></tt>,
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span></tt>, <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></tt>, and <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="string">"c"</span><span class="special">)</span></tt> is constant as all generators emit exactly
one character per invocation.
</p>
<p>
- The character range generator (<code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch1</span><span class="special">,</span> <span class="identifier">ch2</span><span class="special">)</span></code>) additionally requires constant lookup
+ The character range generator (<tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch1</span><span class="special">,</span> <span class="identifier">ch2</span><span class="special">)</span></tt>) additionally requires constant lookup
time for the verification whether the attribute belongs to the character
range.
</p>
<p>
- The character set generator (<code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">cs</span><span class="special">)</span></code>) additionally requires O(log N) lookup
+ The character set generator (<tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">cs</span><span class="special">)</span></tt>) additionally requires O(log N) lookup
time for the verification whether the attribute belongs to the character
set, where N is the number of characters in the character set.
</p>
<a name="spirit.karma.reference.char.char_generator.example"></a><h6>
-<a name="id770082"></a>
- <a class="link" href="char_generator.html#spirit.karma.reference.char.char_generator.example">Example</a>
+<a name="id581065"></a>
+ Example
</h6>
<p>
Some includes:
@@ -783,7 +698,7 @@
<p>
</p>
<p>
- Basic usage of <code class="computeroutput"><span class="identifier">char_</span></code>
+ Basic usage of <tt class="computeroutput"><span class="identifier">char_</span></tt>
generators:
</p>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/directive.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/directive.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/directive.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Directive</title>
+<title> Directive</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="auxiliary/lazy.html" title="Lazy (lazy)">
-<link rel="next" href="directive/alignment.html" title="Alignment Directives (left_align[], center[], right_align[])">
+<link rel="previous" href="auxiliary/lazy.html" title=" Lazy (lazy)">
+<link rel="next" href="directive/alignment.html" title=" Alignment
+ Directives (left_align[], center[], right_align[])">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,42 +23,45 @@
<div class="spirit-nav">
<a accesskey="p" href="auxiliary/lazy.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="directive/alignment.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Directive">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.reference.directive"></a><a class="link" href="directive.html" title="Directive"> Directive</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.reference.directive"></a> Directive
+</h4></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section"><a href="directive/alignment.html"> Alignment
- Directives (<code class="computeroutput"><span class="identifier">left_align</span><span class="special">[]</span></code>, <code class="computeroutput"><span class="identifier">center</span><span class="special">[]</span></code>, <code class="computeroutput"><span class="identifier">right_align</span><span class="special">[]</span></code>)</a></span></dt>
+ Directives (<tt class="computeroutput"><span class="identifier">left_align</span><span class="special">[]</span></tt>, <tt class="computeroutput"><span class="identifier">center</span><span class="special">[]</span></tt>, <tt class="computeroutput"><span class="identifier">right_align</span><span class="special">[]</span></tt>)</a></span></dt>
<dt><span class="section"><a href="directive/repeat.html"> Repetition
- Directive (<code class="computeroutput"><span class="identifier">repeat</span><span class="special">[]</span></code>)</a></span></dt>
+ Directive (<tt class="computeroutput"><span class="identifier">repeat</span><span class="special">[]</span></tt>)</a></span></dt>
<dt><span class="section"><a href="directive/delimit.html"> Directives
- Controlling Automatic Delimiting (<code class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></code>, <code class="computeroutput"><span class="identifier">delimit</span><span class="special">[]</span></code>)</a></span></dt>
+ Controlling Automatic Delimiting (<tt class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></tt>, <tt class="computeroutput"><span class="identifier">delimit</span><span class="special">[]</span></tt>)</a></span></dt>
<dt><span class="section"><a href="directive/upperlower.html"> Directives
- Controlling Case Sensitivity (<code class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></code>, <code class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></code>)</a></span></dt>
+ Controlling Case Sensitivity (<tt class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></tt>, <tt class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></tt>)</a></span></dt>
<dt><span class="section"><a href="directive/maxwidth.html"> Controlling
- the Maximum Field Wield (<code class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[]</span></code>)</a></span></dt>
+ the Maximum Field Wield (<tt class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[]</span></tt>)</a></span></dt>
<dt><span class="section"><a href="directive/buffer.html"> Temporary
- Output Buffering (<code class="computeroutput"><span class="identifier">buffer</span><span class="special">[]</span></code>)</a></span></dt>
+ Output Buffering (<tt class="computeroutput"><span class="identifier">buffer</span><span class="special">[]</span></tt>)</a></span></dt>
<dt><span class="section"><a href="directive/omit.html"> Consume Attribute
- (<code class="computeroutput"><span class="identifier">omit</span><span class="special">[]</span></code>)</a></span></dt>
+ (<tt class="computeroutput"><span class="identifier">omit</span><span class="special">[]</span></tt>)</a></span></dt>
</dl></div>
<p>
This module includes different generator directives. It includes alignement
- directives (<code class="computeroutput"><span class="identifier">left_align</span><span class="special">[]</span></code>, <code class="computeroutput"><span class="identifier">center</span><span class="special">[]</span></code>, and <code class="computeroutput"><span class="identifier">right_align</span><span class="special">[]</span></code>), repetition (<code class="computeroutput"><span class="identifier">repeat</span><span class="special">[]</span></code>), directives controlling automatic delimiting
- (<code class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></code>
- and <code class="computeroutput"><span class="identifier">delimit</span><span class="special">[]</span></code>),
- controlling case sensitivity (<code class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></code> and <code class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></code>), field width (<code class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[]</span></code>), buffering (<code class="computeroutput"><span class="identifier">buffer</span><span class="special">[]</span></code>), and attribute handling (<code class="computeroutput"><span class="identifier">omit</span><span class="special">[]</span></code>).
+ directives (<tt class="computeroutput"><span class="identifier">left_align</span><span class="special">[]</span></tt>, <tt class="computeroutput"><span class="identifier">center</span><span class="special">[]</span></tt>, and <tt class="computeroutput"><span class="identifier">right_align</span><span class="special">[]</span></tt>), repetition (<tt class="computeroutput"><span class="identifier">repeat</span><span class="special">[]</span></tt>), directives controlling automatic delimiting
+ (<tt class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></tt>
+ and <tt class="computeroutput"><span class="identifier">delimit</span><span class="special">[]</span></tt>),
+ controlling case sensitivity (<tt class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></tt> and <tt class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></tt>), field width (<tt class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[]</span></tt>), buffering (<tt class="computeroutput"><span class="identifier">buffer</span><span class="special">[]</span></tt>), and attribute handling (<tt class="computeroutput"><span class="identifier">omit</span><span class="special">[]</span></tt>).
</p>
-<a name="spirit.karma.reference.directive.module_header"></a><h6>
-<a name="id830389"></a>
- <a class="link" href="directive.html#spirit.karma.reference.directive.module_header">Module Header</a>
- </h6>
+<a name="spirit.karma.reference.directive.module_header"></a><h5>
+<a name="id641489"></a>
+ Module Header
+ </h5>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/directive.hpp>
</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">karma_directive</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/directive/alignment.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/directive/alignment.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/directive/alignment.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Alignment Directives (left_align[], center[], right_align[])</title>
+<title> Alignment
+ Directives (left_align[], center[], right_align[])</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../directive.html" title="Directive">
-<link rel="prev" href="../directive.html" title="Directive">
-<link rel="next" href="repeat.html" title="Repetition Directive (repeat[])">
+<link rel="up" href="../directive.html" title=" Directive">
+<link rel="previous" href="../directive.html" title=" Directive">
+<link rel="next" href="repeat.html" title=" Repetition
+ Directive (repeat[])">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,14 +24,18 @@
<div class="spirit-nav">
<a accesskey="p" href="../directive.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../directive.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="repeat.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Alignment Directives (left_align[], center[], right_align[])">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.directive.alignment"></a><a class="link" href="alignment.html" title="Alignment Directives (left_align[], center[], right_align[])"> Alignment
- Directives (<code class="computeroutput"><span class="identifier">left_align</span><span class="special">[]</span></code>, <code class="computeroutput"><span class="identifier">center</span><span class="special">[]</span></code>, <code class="computeroutput"><span class="identifier">right_align</span><span class="special">[]</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.directive.alignment"></a><a href="alignment.html" title=" Alignment
+ Directives (left_align[], center[], right_align[])"> Alignment
+ Directives (<tt class="computeroutput"><span class="identifier">left_align</span><span class="special">[]</span></tt>, <tt class="computeroutput"><span class="identifier">center</span><span class="special">[]</span></tt>, <tt class="computeroutput"><span class="identifier">right_align</span><span class="special">[]</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.directive.alignment.description"></a><h6>
-<a name="id830505"></a>
- <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.description">Description</a>
+<a name="id641670"></a>
+ Description
</h6>
<p>
The alignment directives allow to left align, right align or center output
@@ -37,112 +43,104 @@
an arbitrary generator to create the padding.
</p>
<a name="spirit.karma.reference.directive.alignment.header"></a><h6>
-<a name="id830522"></a>
- <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.header">Header</a>
+<a name="id641702"></a>
+ Header
</h6>
<p>
- For the <code class="computeroutput"><span class="identifier">left_align</span><span class="special">[]</span></code>
+ For the <tt class="computeroutput"><span class="identifier">left_align</span><span class="special">[]</span></tt>
directive:
</p>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/directive/left_alignment.hpp>
</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">karma_left_alignment</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- For the <code class="computeroutput"><span class="identifier">center</span><span class="special">[]</span></code>
+ For the <tt class="computeroutput"><span class="identifier">center</span><span class="special">[]</span></tt>
directive:
</p>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/directive/center_alignment.hpp>
</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">karma_center_alignment</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- For the <code class="computeroutput"><span class="identifier">right_align</span><span class="special">[]</span></code>
+ For the <tt class="computeroutput"><span class="identifier">right_align</span><span class="special">[]</span></tt>
directive:
</p>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/directive/right_alignment.hpp>
</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">karma_right_alignment</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.directive.alignment.namespace"></a><h6>
-<a name="id830745"></a>
- <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.namespace">Namespace</a>
+<a name="id642037"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">left_align</span> <span class="comment">//
- alias: boost::spirit::karma::left_align</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">center</span> <span class="comment">// alias:
- boost::spirit::karma::center</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">right_align</span> <span class="comment">//
- alias: boost::spirit::karma::right_align</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">left_align</span> <span class="comment">//
+ alias: boost::spirit::karma::left_align</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">center</span> <span class="comment">// alias:
+ boost::spirit::karma::center</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">right_align</span> <span class="comment">//
+ alias: boost::spirit::karma::right_align</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.directive.alignment.model_of"></a><h6>
-<a name="id830901"></a>
- <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.model_of">Model
+<a name="id642240"></a>
+ <a href="alignment.html#spirit.karma.reference.directive.alignment.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>
+ UnaryGenerator
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt></span></dt>
<dd><p>
A generator object
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">pad</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">pad</span></tt></span></dt>
<dd><p>
- A generator object, or a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ A generator object, or a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a> that evaluates to a generator object
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">A</span></code>,
- <code class="computeroutput"><span class="identifier">Pad</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">A</span></tt>,
+ <tt class="computeroutput"><span class="identifier">Pad</span></tt></span></dt>
<dd><p>
- Attribute types of the generators <code class="computeroutput"><span class="identifier">a</span></code>
- and <code class="computeroutput"><span class="identifier">pad</span></code>
+ Attribute types of the generators <tt class="computeroutput"><span class="identifier">a</span></tt>
+ and <tt class="computeroutput"><span class="identifier">pad</span></tt>
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">width</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">width</span></tt></span></dt>
<dd><p>
- Numeric literal, any unsigned integer value, or a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ Numeric literal, any unsigned integer value, or a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a> that evaluates to an unsigned integer value
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.directive.alignment.expression_semantics"></a><h6>
-<a name="id831051"></a>
- <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.expression_semantics">Expression
+<a name="id642451"></a>
+ <a href="alignment.html#spirit.karma.reference.directive.alignment.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>.
+ is not defined in UnaryGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -150,251 +148,199 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">left_align</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> left
+<td><p>
+ <tt class="computeroutput"><span class="identifier">left_align</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> left
aligned in a column of width as defined by the preprocessor constant
- <code class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></code>
- (default: 10), while using <code class="computeroutput"><span class="identifier">space</span></code>
+ <tt class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></tt>
+ (default: 10), while using <tt class="computeroutput"><span class="identifier">space</span></tt>
to emit the necessary padding. This generator succeeds as long
- as its embedded generator <code class="computeroutput"><span class="identifier">a</span></code>
+ as its embedded generator <tt class="computeroutput"><span class="identifier">a</span></tt>
does not fail (unless the underlying output stream reports an
error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> left
- aligned in a column of the given <code class="computeroutput"><span class="identifier">width</span></code>,
- while using <code class="computeroutput"><span class="identifier">space</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> left
+ aligned in a column of the given <tt class="computeroutput"><span class="identifier">width</span></tt>,
+ while using <tt class="computeroutput"><span class="identifier">space</span></tt>
to emit the necessary padding. This generator succeeds as long
- as its embedded generator <code class="computeroutput"><span class="identifier">a</span></code>
+ as its embedded generator <tt class="computeroutput"><span class="identifier">a</span></tt>
does not fail (unless the underlying output stream reports an
error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> left
+<td><p>
+ <tt class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> left
aligned in a column of width as defined by the preprocessor constant
- <code class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></code>
- (default: 10), while using the generator <code class="computeroutput"><span class="identifier">pad</span></code>
+ <tt class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></tt>
+ (default: 10), while using the generator <tt class="computeroutput"><span class="identifier">pad</span></tt>
to emit the necessary padding. This generator succeeds as long
- as its embedded and padding generators <code class="computeroutput"><span class="identifier">a</span></code>
- and <code class="computeroutput"><span class="identifier">pad</span></code> do not
+ as its embedded and padding generators <tt class="computeroutput"><span class="identifier">a</span></tt>
+ and <tt class="computeroutput"><span class="identifier">pad</span></tt> do not
fail (except if the underlying output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span>
- <span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> left
- aligned in a column of the given <code class="computeroutput"><span class="identifier">width</span></code>,
- while using the generator <code class="computeroutput"><span class="identifier">pad</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span>
+ <span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> left
+ aligned in a column of the given <tt class="computeroutput"><span class="identifier">width</span></tt>,
+ while using the generator <tt class="computeroutput"><span class="identifier">pad</span></tt>
to emit the necessary padding. This generator succeeds as long
- as its embedded and padding generators <code class="computeroutput"><span class="identifier">a</span></code>
- and <code class="computeroutput"><span class="identifier">pad</span></code> do not
+ as its embedded and padding generators <tt class="computeroutput"><span class="identifier">a</span></tt>
+ and <tt class="computeroutput"><span class="identifier">pad</span></tt> do not
fail (unless the underlying output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">center</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> centered
+<td><p>
+ <tt class="computeroutput"><span class="identifier">center</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> centered
in a column of width as defined by the preprocessor constant
- <code class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></code>
- (default: 10), while using <code class="computeroutput"><span class="identifier">space</span></code>
+ <tt class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></tt>
+ (default: 10), while using <tt class="computeroutput"><span class="identifier">space</span></tt>
to emit the necessary padding. This generator succeeds as long
- as its embedded generator <code class="computeroutput"><span class="identifier">a</span></code>
+ as its embedded generator <tt class="computeroutput"><span class="identifier">a</span></tt>
does not fail (unless the underlying output stream reports an
error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> centered
- in a column of the given <code class="computeroutput"><span class="identifier">width</span></code>,
- while using <code class="computeroutput"><span class="identifier">space</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> centered
+ in a column of the given <tt class="computeroutput"><span class="identifier">width</span></tt>,
+ while using <tt class="computeroutput"><span class="identifier">space</span></tt>
to emit the necessary padding. This generator succeeds as long
- as its embedded generator <code class="computeroutput"><span class="identifier">a</span></code>
+ as its embedded generator <tt class="computeroutput"><span class="identifier">a</span></tt>
does not fail (unless the underlying output stream reports an
error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> centered
+<td><p>
+ <tt class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> centered
in a column of width as defined by the preprocessor constant
- <code class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></code>
- (default: 10), while using the generator <code class="computeroutput"><span class="identifier">pad</span></code>
+ <tt class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></tt>
+ (default: 10), while using the generator <tt class="computeroutput"><span class="identifier">pad</span></tt>
to emit the necessary padding. This generator succeeds as long
- as its embedded and padding generators <code class="computeroutput"><span class="identifier">a</span></code>
- and <code class="computeroutput"><span class="identifier">pad</span></code> do not
+ as its embedded and padding generators <tt class="computeroutput"><span class="identifier">a</span></tt>
+ and <tt class="computeroutput"><span class="identifier">pad</span></tt> do not
fail (except if the underlying output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span>
- <span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> centered
- in a column of the given <code class="computeroutput"><span class="identifier">width</span></code>,
- while using the generator <code class="computeroutput"><span class="identifier">pad</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span>
+ <span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> centered
+ in a column of the given <tt class="computeroutput"><span class="identifier">width</span></tt>,
+ while using the generator <tt class="computeroutput"><span class="identifier">pad</span></tt>
to emit the necessary padding. This generator succeeds as long
- as its embedded and padding generators <code class="computeroutput"><span class="identifier">a</span></code>
- and <code class="computeroutput"><span class="identifier">pad</span></code> do not
+ as its embedded and padding generators <tt class="computeroutput"><span class="identifier">a</span></tt>
+ and <tt class="computeroutput"><span class="identifier">pad</span></tt> do not
fail (unless the underlying output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">right_align</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> right
+<td><p>
+ <tt class="computeroutput"><span class="identifier">right_align</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> right
aligned in a column of width as defined by the preprocessor constant
- <code class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></code>
- (default: 10), while using <code class="computeroutput"><span class="identifier">space</span></code>
+ <tt class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></tt>
+ (default: 10), while using <tt class="computeroutput"><span class="identifier">space</span></tt>
to emit the necessary padding. This generator succeeds as long
- as its embedded generator <code class="computeroutput"><span class="identifier">a</span></code>
+ as its embedded generator <tt class="computeroutput"><span class="identifier">a</span></tt>
does not fail (unless the underlying output stream reports an
error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> right
- aligned in a column of the given <code class="computeroutput"><span class="identifier">width</span></code>,
- while using <code class="computeroutput"><span class="identifier">space</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> right
+ aligned in a column of the given <tt class="computeroutput"><span class="identifier">width</span></tt>,
+ while using <tt class="computeroutput"><span class="identifier">space</span></tt>
to emit the necessary padding. This generator succeeds as long
- as its embedded generator <code class="computeroutput"><span class="identifier">a</span></code>
+ as its embedded generator <tt class="computeroutput"><span class="identifier">a</span></tt>
does not fail (unless the underlying output stream reports an
error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> right
+<td><p>
+ <tt class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> right
aligned in a column of width as defined by the preprocessor constant
- <code class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></code>
- (default: 10), while using the generator <code class="computeroutput"><span class="identifier">pad</span></code>
+ <tt class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_LENGTH</span></tt>
+ (default: 10), while using the generator <tt class="computeroutput"><span class="identifier">pad</span></tt>
to emit the necessary padding. This generator succeeds as long
- as its embedded and padding generators <code class="computeroutput"><span class="identifier">a</span></code>
- and <code class="computeroutput"><span class="identifier">pad</span></code> do not
+ as its embedded and padding generators <tt class="computeroutput"><span class="identifier">a</span></tt>
+ and <tt class="computeroutput"><span class="identifier">pad</span></tt> do not
fail (except if the underlying output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span>
- <span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> right
- aligned in a column of the given <code class="computeroutput"><span class="identifier">width</span></code>,
- while using the generator <code class="computeroutput"><span class="identifier">pad</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span>
+ <span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> right
+ aligned in a column of the given <tt class="computeroutput"><span class="identifier">width</span></tt>,
+ while using the generator <tt class="computeroutput"><span class="identifier">pad</span></tt>
to emit the necessary padding. This generator succeeds as long
- as its embedded and padding generators <code class="computeroutput"><span class="identifier">a</span></code>
- and <code class="computeroutput"><span class="identifier">pad</span></code> do not
+ as its embedded and padding generators <tt class="computeroutput"><span class="identifier">a</span></tt>
+ and <tt class="computeroutput"><span class="identifier">pad</span></tt> do not
fail (unless the underlying output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top">
+<tr><td colspan="2" align="left" valign="top">
<p>
None of the generator directives listed above limits the emitted output
to the respective column width. If the emitted output is longer than
@@ -403,7 +349,7 @@
</p>
<p>
If the output needs to be limitted to a specified column width, use
- the <code class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[]</span></code>
+ the <tt class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[]</span></tt>
directive, for instance:
</p>
<pre class="programlisting"><span class="identifier">maxwidth</span><span class="special">(</span><span class="number">8</span><span class="special">)[</span><span class="identifier">right_align</span><span class="special">(</span><span class="number">12</span><span class="special">)[</span><span class="string">"1234567890"</span><span class="special">]]</span>
@@ -417,11 +363,11 @@
</td></tr>
</table></div>
<a name="spirit.karma.reference.directive.alignment.attributes"></a><h6>
-<a name="id832092"></a>
- <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.attributes">Attributes</a>
+<a name="id643994"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -430,218 +376,190 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">left_align</span><span class="special">[]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">left_align</span><span class="special">[]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">left_align</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">left_align</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">left_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">left_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--></span> <span class="identifier">left_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--></span> <span class="identifier">left_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span>
+ <span class="identifier">width</span><span class="special">)[]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">left_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span>
- <span class="identifier">width</span><span class="special">)[]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--></span> <span class="identifier">left_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span> <span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--></span> <span class="identifier">left_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span> <span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">center</span><span class="special">[]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">center</span><span class="special">[]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">center</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">center</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">center</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">center</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--></span> <span class="identifier">center</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--></span> <span class="identifier">center</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span>
+ <span class="identifier">width</span><span class="special">)[]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">center</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span>
- <span class="identifier">width</span><span class="special">)[]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--></span> <span class="identifier">center</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span> <span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--></span> <span class="identifier">center</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span> <span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">right_align</span><span class="special">[]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">right_align</span><span class="special">[]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">right_align</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">right_align</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">right_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">right_align</span><span class="special">(</span><span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--></span> <span class="identifier">right_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--></span> <span class="identifier">right_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span>
+ <span class="identifier">width</span><span class="special">)[]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">right_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span>
- <span class="identifier">width</span><span class="special">)[]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--></span> <span class="identifier">right_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span> <span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">pad</span><span class="special">:</span> <span class="identifier">Pad</span> <span class="special">--></span> <span class="identifier">right_align</span><span class="special">(</span><span class="identifier">pad</span><span class="special">,</span> <span class="identifier">width</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.directive.alignment.complexity"></a><h6>
-<a name="id833903"></a>
- <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.complexity">Complexity</a>
+<a name="id646379"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -651,15 +569,15 @@
by the complexity of its embedded and padding generator. The complexity
of the left alignment directive generator itself is O(1). The complexity
of the center and right alignment directive generators itself is
- O(N). where <code class="computeroutput"><span class="identifier">N</span></code> is
+ O(N). where <tt class="computeroutput"><span class="identifier">N</span></tt> is
the number of characters emitted by the embedded and padding generators.
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.karma.reference.directive.alignment.example"></a><h6>
-<a name="id833934"></a>
- <a class="link" href="alignment.html#spirit.karma.reference.directive.alignment.example">Example</a>
+<a name="id646434"></a>
+ Example
</h6>
<p>
Some includes:
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/directive/buffer.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/directive/buffer.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/directive/buffer.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Temporary Output Buffering (buffer[])</title>
+<title> Temporary
+ Output Buffering (buffer[])</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../directive.html" title="Directive">
-<link rel="prev" href="maxwidth.html" title="Controlling the Maximum Field Wield (maxwidth[])">
-<link rel="next" href="omit.html" title="Consume Attribute (omit[])">
+<link rel="up" href="../directive.html" title=" Directive">
+<link rel="previous" href="maxwidth.html" title=" Controlling
+ the Maximum Field Wield (maxwidth[])">
+<link rel="next" href="omit.html" title=" Consume Attribute
+ (omit[])">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,18 +25,24 @@
<div class="spirit-nav">
<a accesskey="p" href="maxwidth.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../directive.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="omit.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Temporary Output Buffering (buffer[])">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.directive.buffer"></a><a class="link" href="buffer.html" title="Temporary Output Buffering (buffer[])"> Temporary
- Output Buffering (<code class="computeroutput"><span class="identifier">buffer</span><span class="special">[]</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.directive.buffer"></a><a href="buffer.html" title=" Temporary
+ Output Buffering (buffer[])"> Temporary
+ Output Buffering (<tt class="computeroutput"><span class="identifier">buffer</span><span class="special">[]</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.directive.buffer.description"></a><h6>
-<a name="id849031"></a>
- <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.description">Description</a>
+<a name="id659934"></a>
+ Description
</h6>
<p>
- All generator components (except the <a class="link" href="../operator/alternative.html" title="Alternative (a | b)">Alternative
- (<code class="computeroutput"><span class="special">|</span></code>)</a> generator) pass
+ All generator components (except the <a href="../operator/alternative.html" title=" Alternative
+ (a |
+ b)">Alternative
+ (<tt class="computeroutput"><span class="special">|</span></tt>)</a> generator) pass
their generated output directly to the underlying output stream. If a
generator fails halfway through, the output generated so far is not 'rolled
back'. The buffering generator directive allows to avoid this unwanted
@@ -43,64 +52,60 @@
discarded otherwise.
</p>
<a name="spirit.karma.reference.directive.buffer.header"></a><h6>
-<a name="id849060"></a>
- <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.header">Header</a>
+<a name="id659983"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/directive/buffer.hpp>
</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">karma_buffer</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
-<tbody><tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">buffer</span> <span class="comment">// alias:
- boost::spirit::karma::buffer</span></code>
- </p>
- </td></tr></tbody>
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">buffer</span> <span class="comment">// alias:
+ boost::spirit::karma::buffer</span></tt>
+ </p></td></tr></tbody>
</table></div>
<a name="spirit.karma.reference.directive.buffer.model_of"></a><h6>
-<a name="id849201"></a>
- <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.model_of">Model
+<a name="id660177"></a>
+ <a href="buffer.html#spirit.karma.reference.directive.buffer.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>
+ UnaryGenerator
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt></span></dt>
<dd><p>
A generator object
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">A</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">A</span></tt></span></dt>
<dd><p>
- Attribute type of generator <code class="computeroutput"><span class="identifier">a</span></code>
+ Attribute type of generator <tt class="computeroutput"><span class="identifier">a</span></tt>
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.directive.buffer.expression_semantics"></a><h6>
-<a name="id849289"></a>
- <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.expression_semantics">Expression
+<a name="id660297"></a>
+ <a href="buffer.html#spirit.karma.reference.directive.buffer.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>.
+ is not defined in UnaryGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -108,53 +113,46 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">buffer</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- The embedded generator <code class="computeroutput"><span class="identifier">a</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">buffer</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ The embedded generator <tt class="computeroutput"><span class="identifier">a</span></tt>
is invoked but its output is temporarily intercepted and stored
- in an internal buffer. If <code class="computeroutput"><span class="identifier">a</span></code>
+ in an internal buffer. If <tt class="computeroutput"><span class="identifier">a</span></tt>
succeeds the buffer content is flushed to the underlying output
stream, otherwise the buffer content is discarded. The buffer
directive succeeds as long as the embedded generator succeeded
(unless the underlying output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
-<div class="tip" title="Tip"><table border="0" summary="Tip">
+<div class="tip"><table border="0" summary="Tip">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../../images/tip.png"></td>
<th align="left">Tip</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
If you want to make the buffered generator succeed regardless of the
- outcome of the embedded generator, simply wrap the <code class="computeroutput"><span class="identifier">buffer</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code> into an additional optional: <code class="computeroutput"><span class="special">-</span><span class="identifier">buffer</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code> (see <a class="link" href="../operator/optional.html" title="Optional (-a)">Optional
- (unary <code class="computeroutput"><span class="special">-</span></code>)</a>).
+ outcome of the embedded generator, simply wrap the <tt class="computeroutput"><span class="identifier">buffer</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt> into an additional optional: <tt class="computeroutput"><span class="special">-</span><span class="identifier">buffer</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt> (see <a href="../operator/optional.html" title=" Optional
+ (-a)">Optional
+ (unary <tt class="computeroutput"><span class="special">-</span></tt>)</a>).
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.directive.buffer.attributes"></a><h6>
-<a name="id849462"></a>
- <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.attributes">Attributes</a>
+<a name="id660548"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -163,37 +161,31 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">buffer</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">buffer</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">buffer</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">buffer</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr></tbody>
</table></div>
<a name="spirit.karma.reference.directive.buffer.complexity"></a><h6>
-<a name="id849634"></a>
- <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.complexity">Complexity</a>
+<a name="id660773"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -207,8 +199,8 @@
</p>
</blockquote></div>
<a name="spirit.karma.reference.directive.buffer.example"></a><h6>
-<a name="id849658"></a>
- <a class="link" href="buffer.html#spirit.karma.reference.directive.buffer.example">Example</a>
+<a name="id660814"></a>
+ Example
</h6>
<p>
Some includes:
@@ -270,8 +262,8 @@
<p>
Basic usage of a buffering generator directive. It shows how the partial
output generated in the first example does not show up in the generated
- output as the plus generator fails (no data is available, see <a class="link" href="../operator/plus.html" title="Plus (+a)">Plus
- (unary <code class="computeroutput"><span class="special">+</span></code>)</a>).
+ output as the plus generator fails (no data is available, see <a href="../operator/plus.html" title=" Plus (+a)">Plus
+ (unary <tt class="computeroutput"><span class="special">+</span></tt>)</a>).
</p>
<p>
</p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/directive/delimit.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/directive/delimit.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/directive/delimit.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Directives Controlling Automatic Delimiting (verbatim[], delimit[])</title>
+<title> Directives
+ Controlling Automatic Delimiting (verbatim[], delimit[])</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../directive.html" title="Directive">
-<link rel="prev" href="repeat.html" title="Repetition Directive (repeat[])">
-<link rel="next" href="upperlower.html" title="Directives Controlling Case Sensitivity (upper[], lower[])">
+<link rel="up" href="../directive.html" title=" Directive">
+<link rel="previous" href="repeat.html" title=" Repetition
+ Directive (repeat[])">
+<link rel="next" href="upperlower.html" title=" Directives
+ Controlling Case Sensitivity (upper[], lower[])">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,109 +25,107 @@
<div class="spirit-nav">
<a accesskey="p" href="repeat.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../directive.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="upperlower.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Directives Controlling Automatic Delimiting (verbatim[], delimit[])">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.directive.delimit"></a><a class="link" href="delimit.html" title="Directives Controlling Automatic Delimiting (verbatim[], delimit[])"> Directives
- Controlling Automatic Delimiting (<code class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></code>, <code class="computeroutput"><span class="identifier">delimit</span><span class="special">[]</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.directive.delimit"></a><a href="delimit.html" title=" Directives
+ Controlling Automatic Delimiting (verbatim[], delimit[])"> Directives
+ Controlling Automatic Delimiting (<tt class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></tt>, <tt class="computeroutput"><span class="identifier">delimit</span><span class="special">[]</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.directive.delimit.description"></a><h6>
-<a name="id840545"></a>
- <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.description">Description</a>
+<a name="id651688"></a>
+ Description
</h6>
<p>
- The directives <code class="computeroutput"><span class="identifier">delimit</span><span class="special">[]</span></code> and <code class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></code> can be used to control automatic delimiting.
- The directive <code class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></code> disables any automatic delimiting,
- while the directive <code class="computeroutput"><span class="identifier">delimit</span><span class="special">[]</span></code> (re-)enables automatic delimiting.
+ The directives <tt class="computeroutput"><span class="identifier">delimit</span><span class="special">[]</span></tt> and <tt class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></tt> can be used to control automatic delimiting.
+ The directive <tt class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></tt> disables any automatic delimiting,
+ while the directive <tt class="computeroutput"><span class="identifier">delimit</span><span class="special">[]</span></tt> (re-)enables automatic delimiting.
</p>
<a name="spirit.karma.reference.directive.delimit.header"></a><h6>
-<a name="id840605"></a>
- <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.header">Header</a>
+<a name="id651787"></a>
+ Header
</h6>
<p>
- For the <code class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></code>
+ For the <tt class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></tt>
directive:
</p>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/directive/verbatim.hpp>
</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">karma_verbatim</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- For the <code class="computeroutput"><span class="identifier">delimit</span><span class="special">[]</span></code>
+ For the <tt class="computeroutput"><span class="identifier">delimit</span><span class="special">[]</span></tt>
directive:
</p>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/directive/delimit.hpp>
</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">karma_delimit</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.directive.delimit.namespace"></a><h6>
-<a name="id840761"></a>
- <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.namespace">Namespace</a>
+<a name="id652020"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">verbatim</span> <span class="comment">//
- alias: boost::spirit::karma::verbatim</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">delimit</span> <span class="comment">//
- alias: boost::spirit::karma::delimit</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">verbatim</span> <span class="comment">//
+ alias: boost::spirit::karma::verbatim</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">delimit</span> <span class="comment">//
+ alias: boost::spirit::karma::delimit</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.directive.delimit.model_of"></a><h6>
-<a name="id840878"></a>
- <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.model_of">Model
+<a name="id652173"></a>
+ <a href="delimit.html#spirit.karma.reference.directive.delimit.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>
+ UnaryGenerator
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt></span></dt>
<dd><p>
A generator object
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">d</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">d</span></tt></span></dt>
<dd><p>
- A generator object, or a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ A generator object, or a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a> that evaluates to a generator object
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">A</span></code>,
- <code class="computeroutput"><span class="identifier">D</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">A</span></tt>,
+ <tt class="computeroutput"><span class="identifier">D</span></tt></span></dt>
<dd><p>
- Attribute types of the generators <code class="computeroutput"><span class="identifier">a</span></code>
- and <code class="computeroutput"><span class="identifier">d</span></code>
+ Attribute types of the generators <tt class="computeroutput"><span class="identifier">a</span></tt>
+ and <tt class="computeroutput"><span class="identifier">d</span></tt>
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.directive.delimit.expression_semantics"></a><h6>
-<a name="id841004"></a>
- <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.expression_semantics">Expression
+<a name="id652348"></a>
+ <a href="delimit.html#spirit.karma.reference.directive.delimit.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>.
+ is not defined in UnaryGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -132,72 +133,56 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">delimit</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Enable automatic delimiting for the embedded generator <code class="computeroutput"><span class="identifier">a</span></code> while using the <code class="computeroutput"><span class="identifier">space</span></code> generator as the delimiting
- generator. If used inside a <code class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></code> directive it re-enables the
- delimiter generator as used outside of this <code class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></code> instead. The directive succeeds
+<td><p>
+ <tt class="computeroutput"><span class="identifier">delimit</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Enable automatic delimiting for the embedded generator <tt class="computeroutput"><span class="identifier">a</span></tt> while using the <tt class="computeroutput"><span class="identifier">space</span></tt> generator as the delimiting
+ generator. If used inside a <tt class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></tt> directive it re-enables the
+ delimiter generator as used outside of this <tt class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></tt> instead. The directive succeeds
as long as the embedded generator succeeded (unless the underlying
output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">delimit</span><span class="special">(</span><span class="identifier">d</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Enable automatic delimiting for the embedded generator <code class="computeroutput"><span class="identifier">a</span></code> while using the generator
- <code class="computeroutput"><span class="identifier">d</span></code> as the delimiting
+<td><p>
+ <tt class="computeroutput"><span class="identifier">delimit</span><span class="special">(</span><span class="identifier">d</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Enable automatic delimiting for the embedded generator <tt class="computeroutput"><span class="identifier">a</span></tt> while using the generator
+ <tt class="computeroutput"><span class="identifier">d</span></tt> as the delimiting
generator. The directive succeeds as long as the embedded generator
succeeded (unless the underlying output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">verbatim</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Disable automatic delimiting for the embedded generator <code class="computeroutput"><span class="identifier">a</span></code>. The directive succeeds as
+<td><p>
+ <tt class="computeroutput"><span class="identifier">verbatim</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Disable automatic delimiting for the embedded generator <tt class="computeroutput"><span class="identifier">a</span></tt>. The directive succeeds as
long as the embedded generator succeeded (unless the underlying
output stream reports an error). This directive it has no effect
if it is used when no delimiting is active.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.directive.delimit.attributes"></a><h6>
-<a name="id841238"></a>
- <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.attributes">Attributes</a>
+<a name="id652685"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -206,78 +191,68 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">delimit</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">delimit</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">delimit</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">delimit</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">delimit</span><span class="special">(</span><span class="identifier">d</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">delimit</span><span class="special">(</span><span class="identifier">d</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">d</span><span class="special">:</span> <span class="identifier">D</span> <span class="special">--></span> <span class="identifier">delimit</span><span class="special">(</span><span class="identifier">d</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">d</span><span class="special">:</span> <span class="identifier">D</span> <span class="special">--></span> <span class="identifier">delimit</span><span class="special">(</span><span class="identifier">d</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">verbatim</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">verbatim</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">verbatim</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">verbatim</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.directive.delimit.complexity"></a><h6>
-<a name="id842245"></a>
- <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.complexity">Complexity</a>
+<a name="id653282"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- The overall complexity of the generator directives <code class="computeroutput"><span class="identifier">delimit</span><span class="special">[]</span></code>
- and <code class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></code>
+ The overall complexity of the generator directives <tt class="computeroutput"><span class="identifier">delimit</span><span class="special">[]</span></tt>
+ and <tt class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></tt>
is defined by the complexity of its embedded generators. The complexity
of the directives themselves is O(1).
</p>
@@ -285,8 +260,8 @@
</p>
</blockquote></div>
<a name="spirit.karma.reference.directive.delimit.example"></a><h6>
-<a name="id842290"></a>
- <a class="link" href="delimit.html#spirit.karma.reference.directive.delimit.example">Example</a>
+<a name="id653355"></a>
+ Example
</h6>
<p>
Some includes:
@@ -345,7 +320,7 @@
<p>
</p>
<p>
- Basic usage of <code class="computeroutput"><span class="identifier">delimit</span></code>
+ Basic usage of <tt class="computeroutput"><span class="identifier">delimit</span></tt>
generator directive:
</p>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/directive/maxwidth.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/directive/maxwidth.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/directive/maxwidth.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Controlling the Maximum Field Wield (maxwidth[])</title>
+<title> Controlling
+ the Maximum Field Wield (maxwidth[])</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../directive.html" title="Directive">
-<link rel="prev" href="upperlower.html" title="Directives Controlling Case Sensitivity (upper[], lower[])">
-<link rel="next" href="buffer.html" title="Temporary Output Buffering (buffer[])">
+<link rel="up" href="../directive.html" title=" Directive">
+<link rel="previous" href="upperlower.html" title=" Directives
+ Controlling Case Sensitivity (upper[], lower[])">
+<link rel="next" href="buffer.html" title=" Temporary
+ Output Buffering (buffer[])">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,84 +25,84 @@
<div class="spirit-nav">
<a accesskey="p" href="upperlower.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../directive.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="buffer.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Controlling the Maximum Field Wield (maxwidth[])">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.directive.maxwidth"></a><a class="link" href="maxwidth.html" title="Controlling the Maximum Field Wield (maxwidth[])"> Controlling
- the Maximum Field Wield (<code class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[]</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.directive.maxwidth"></a><a href="maxwidth.html" title=" Controlling
+ the Maximum Field Wield (maxwidth[])"> Controlling
+ the Maximum Field Wield (<tt class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[]</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.directive.maxwidth.description"></a><h6>
-<a name="id847078"></a>
- <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.description">Description</a>
+<a name="id657611"></a>
+ Description
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[]</span></code>
+ The <tt class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[]</span></tt>
directive allows to limit (truncate) the overall length of the output
generated by the embedded generator.
</p>
<a name="spirit.karma.reference.directive.maxwidth.header"></a><h6>
-<a name="id847105"></a>
- <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.header">Header</a>
+<a name="id657659"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/directive/maxwidth.hpp>
</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">karma_maxwidth</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
-<tbody><tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">maxwidth</span> <span class="comment">//
- alias: boost::spirit::karma::maxwidth</span></code>
- </p>
- </td></tr></tbody>
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">maxwidth</span> <span class="comment">//
+ alias: boost::spirit::karma::maxwidth</span></tt>
+ </p></td></tr></tbody>
</table></div>
<a name="spirit.karma.reference.directive.maxwidth.model_of"></a><h6>
-<a name="id847246"></a>
- <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.model_of">Model
+<a name="id657853"></a>
+ <a href="maxwidth.html#spirit.karma.reference.directive.maxwidth.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>
+ UnaryGenerator
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt></span></dt>
<dd><p>
A generator object
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">A</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">A</span></tt></span></dt>
<dd><p>
- Attribute type of the generator <code class="computeroutput"><span class="identifier">a</span></code>
+ Attribute type of the generator <tt class="computeroutput"><span class="identifier">a</span></tt>
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">num</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">num</span></tt></span></dt>
<dd><p>
- Numeric literal, any unsigned integer value, or a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ Numeric literal, any unsigned integer value, or a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a> that evaluates to an unsigned integer value
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.directive.maxwidth.expression_semantics"></a><h6>
-<a name="id847359"></a>
- <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.expression_semantics">Expression
+<a name="id658006"></a>
+ <a href="maxwidth.html#spirit.karma.reference.directive.maxwidth.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>.
+ is not defined in UnaryGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -107,63 +110,51 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
Limit the overall length of the emitted output of the embedded
generator (including characters generated by automatic delimiting)
to the number of characters as defined by the preprocessor constant
- <code class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_MAXWIDTH</span></code>.
+ <tt class="computeroutput"><span class="identifier">BOOST_KARMA_DEFAULT_FIELD_MAXWIDTH</span></tt>.
Any additional output is truncated. The directive succeeds as
long as the embedded generator succeeded (unless the underlying
output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">maxwidth</span><span class="special">(</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">maxwidth</span><span class="special">(</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
Limit the overall length of the emitted output of the embedded
generator (including characters generated by automatic delimiting)
- to the number of characters as defined by <code class="computeroutput"><span class="identifier">num</span></code>.
+ to the number of characters as defined by <tt class="computeroutput"><span class="identifier">num</span></tt>.
Any additional output is truncated. The directive succeeds as
long as the embedded generator succeeded (unless the underlying
output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top">
+<tr><td colspan="2" align="left" valign="top">
<p>
- The <code class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[]</span></code>
+ The <tt class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[]</span></tt>
generator directive does not pads the generated output to fill the
specified column width. If the emitted output is shorter than the specified
(or implied) column width, the generated output will be more narrow
@@ -171,22 +162,22 @@
</p>
<p>
If the output needs to always be equal to a specified column width,
- use one of the alignment directives <code class="computeroutput"><span class="identifier">left</span><span class="special">-</span><span class="identifier">align</span><span class="special">[]</span></code>, <code class="computeroutput"><span class="identifier">center</span><span class="special">[]</span></code>, or <code class="computeroutput"><span class="identifier">right_align</span><span class="special">[]</span></code>, for instance:
+ use one of the alignment directives <tt class="computeroutput"><span class="identifier">left</span><span class="special">-</span><span class="identifier">align</span><span class="special">[]</span></tt>, <tt class="computeroutput"><span class="identifier">center</span><span class="special">[]</span></tt>, or <tt class="computeroutput"><span class="identifier">right_align</span><span class="special">[]</span></tt>, for instance:
</p>
<pre class="programlisting"><span class="identifier">maxwidth</span><span class="special">(</span><span class="number">8</span><span class="special">)[</span><span class="identifier">left_align</span><span class="special">(</span><span class="number">8</span><span class="special">)[</span><span class="string">"1234"</span><span class="special">]]</span>
</pre>
<p>
- which will output: <code class="computeroutput"><span class="string">"1234 "</span></code>
+ which will output: <tt class="computeroutput"><span class="string">"1234 "</span></tt>
(without the quotes).
</p>
</td></tr>
</table></div>
<a name="spirit.karma.reference.directive.maxwidth.attributes"></a><h6>
-<a name="id847624"></a>
- <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.attributes">Attributes</a>
+<a name="id658395"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -195,71 +186,63 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">maxwidth</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">maxwidth</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">maxwidth</span><span class="special">(</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">maxwidth</span><span class="special">(</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">maxwidth</span><span class="special">(</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">maxwidth</span><span class="special">(</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.directive.maxwidth.complexity"></a><h6>
-<a name="id847931"></a>
- <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.complexity">Complexity</a>
+<a name="id658799"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- The overall complexity of the generator directive <code class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[]</span></code> is defined by the complexity of
+ The overall complexity of the generator directive <tt class="computeroutput"><span class="identifier">maxwidth</span><span class="special">[]</span></tt> is defined by the complexity of
its embedded generator. The complexity of the directive itself is
- O(N), where <code class="computeroutput"><span class="identifier">N</span></code> is
+ O(N), where <tt class="computeroutput"><span class="identifier">N</span></tt> is
the number of characters generated by the maxwidth directive.
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.karma.reference.directive.maxwidth.example"></a><h6>
-<a name="id847973"></a>
- <a class="link" href="maxwidth.html#spirit.karma.reference.directive.maxwidth.example">Example</a>
+<a name="id658869"></a>
+ Example
</h6>
<p>
Some includes:
@@ -318,7 +301,7 @@
<p>
</p>
<p>
- Basic usage of <code class="computeroutput"><span class="identifier">maxwidth</span></code>
+ Basic usage of <tt class="computeroutput"><span class="identifier">maxwidth</span></tt>
generator directive:
</p>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/directive/omit.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/directive/omit.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/directive/omit.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Consume Attribute (omit[])</title>
+<title> Consume Attribute
+ (omit[])</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../directive.html" title="Directive">
-<link rel="prev" href="buffer.html" title="Temporary Output Buffering (buffer[])">
+<link rel="up" href="../directive.html" title=" Directive">
+<link rel="previous" href="buffer.html" title=" Temporary
+ Output Buffering (buffer[])">
<link rel="next" href="../operator.html" title="Operator">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,78 +24,78 @@
<div class="spirit-nav">
<a accesskey="p" href="buffer.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../directive.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../operator.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Consume Attribute (omit[])">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.directive.omit"></a><a class="link" href="omit.html" title="Consume Attribute (omit[])"> Consume Attribute
- (<code class="computeroutput"><span class="identifier">omit</span><span class="special">[]</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.directive.omit"></a><a href="omit.html" title=" Consume Attribute
+ (omit[])"> Consume Attribute
+ (<tt class="computeroutput"><span class="identifier">omit</span><span class="special">[]</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.directive.omit.description"></a><h6>
-<a name="id850621"></a>
- <a class="link" href="omit.html#spirit.karma.reference.directive.omit.description">Description</a>
+<a name="id662130"></a>
+ Description
</h6>
<p>
Consumes the attribute type of the embedded generator without generating
any output.
</p>
<a name="spirit.karma.reference.directive.omit.header"></a><h6>
-<a name="id850638"></a>
- <a class="link" href="omit.html#spirit.karma.reference.directive.omit.header">Header</a>
+<a name="id662160"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/directive/omit.hpp>
</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">karma_omit</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
-<tbody><tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">omit</span> <span class="comment">// alias:
- boost::spirit::karma::omit</span></code>
- </p>
- </td></tr></tbody>
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">omit</span> <span class="comment">// alias:
+ boost::spirit::karma::omit</span></tt>
+ </p></td></tr></tbody>
</table></div>
<a name="spirit.karma.reference.directive.omit.model_of"></a><h6>
-<a name="id852433"></a>
- <a class="link" href="omit.html#spirit.karma.reference.directive.omit.model_of">Model
+<a name="id662354"></a>
+ <a href="omit.html#spirit.karma.reference.directive.omit.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>
+ UnaryGenerator
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt></span></dt>
<dd><p>
A generator object
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">A</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">A</span></tt></span></dt>
<dd><p>
- Attribute type of generator <code class="computeroutput"><span class="identifier">a</span></code>
+ Attribute type of generator <tt class="computeroutput"><span class="identifier">a</span></tt>
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.directive.omit.expression_semantics"></a><h6>
-<a name="id852522"></a>
- <a class="link" href="omit.html#spirit.karma.reference.directive.omit.expression_semantics">Expression
+<a name="id662471"></a>
+ <a href="omit.html#spirit.karma.reference.directive.omit.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>.
+ is not defined in UnaryGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -101,38 +103,30 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">omit</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- The <code class="computeroutput"><span class="identifier">omit</span></code> directive
- consumes the attribute type of the embedded generator <code class="computeroutput"><span class="identifier">A</span></code> without generating any output.
+<td><p>
+ <tt class="computeroutput"><span class="identifier">omit</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ The <tt class="computeroutput"><span class="identifier">omit</span></tt> directive
+ consumes the attribute type of the embedded generator <tt class="computeroutput"><span class="identifier">A</span></tt> without generating any output.
It succeeds always.
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.karma.reference.directive.omit.attributes"></a><h6>
-<a name="id852636"></a>
- <a class="link" href="omit.html#spirit.karma.reference.directive.omit.attributes">Attributes</a>
+<a name="id662628"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -141,51 +135,45 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">omit</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">omit</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">omit</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">omit</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr></tbody>
</table></div>
<a name="spirit.karma.reference.directive.omit.complexity"></a><h6>
-<a name="id852807"></a>
- <a class="link" href="omit.html#spirit.karma.reference.directive.omit.complexity">Complexity</a>
+<a name="id662854"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- The overall complexity of the <code class="computeroutput"><span class="identifier">omit</span></code>
+ The overall complexity of the <tt class="computeroutput"><span class="identifier">omit</span></tt>
generator directive is O(1) as it does not generate any output.
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.karma.reference.directive.omit.example"></a><h6>
-<a name="id852839"></a>
- <a class="link" href="omit.html#spirit.karma.reference.directive.omit.example">Example</a>
+<a name="id662905"></a>
+ Example
</h6>
<p>
Some includes:
@@ -245,10 +233,10 @@
<p>
</p>
<p>
- Basic usage of a <code class="computeroutput"><span class="identifier">omit</span></code>
+ Basic usage of a <tt class="computeroutput"><span class="identifier">omit</span></tt>
generator directive. It shows how it consumes the first element of the
provided attribute without generating anything, leaving the second element
- of the attribute to the non-wrapped <code class="computeroutput"><span class="identifier">double_</span></code>
+ of the attribute to the non-wrapped <tt class="computeroutput"><span class="identifier">double_</span></tt>
generator.
</p>
<p>
@@ -268,7 +256,7 @@
type contains more information (elements) than need to be used to generate
the required output. Normally in such situations we would resolve to
use semantic actions to explicitly pass the correct parts of the overall
- attribute to the generators. The <code class="computeroutput"><span class="identifier">omit</span></code>
+ attribute to the generators. The <tt class="computeroutput"><span class="identifier">omit</span></tt>
directive helps achieving the same without having to use semantic actions.
</p>
<p>
@@ -290,7 +278,7 @@
</span></pre>
<p>
This is error prone and not really readable. The same can be achieved
- by using the <code class="computeroutput"><span class="identifier">omit</span></code> directive:
+ by using the <tt class="computeroutput"><span class="identifier">omit</span></tt> directive:
</p>
<pre class="programlisting"><span class="identifier">r</span> <span class="special">=</span> <span class="identifier">int_</span> <span class="special"><<</span> <span class="identifier">omit</span><span class="special">[</span><span class="identifier">double_</span><span class="special">]</span> <span class="special"><<</span> <span class="identifier">string</span><span class="special">;</span>
</pre>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/directive/repeat.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/directive/repeat.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/directive/repeat.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Repetition Directive (repeat[])</title>
+<title> Repetition
+ Directive (repeat[])</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../directive.html" title="Directive">
-<link rel="prev" href="alignment.html" title="Alignment Directives (left_align[], center[], right_align[])">
-<link rel="next" href="delimit.html" title="Directives Controlling Automatic Delimiting (verbatim[], delimit[])">
+<link rel="up" href="../directive.html" title=" Directive">
+<link rel="previous" href="alignment.html" title=" Alignment
+ Directives (left_align[], center[], right_align[])">
+<link rel="next" href="delimit.html" title=" Directives
+ Controlling Automatic Delimiting (verbatim[], delimit[])">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,111 +25,110 @@
<div class="spirit-nav">
<a accesskey="p" href="alignment.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../directive.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="delimit.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Repetition Directive (repeat[])">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.directive.repeat"></a><a class="link" href="repeat.html" title="Repetition Directive (repeat[])"> Repetition
- Directive (<code class="computeroutput"><span class="identifier">repeat</span><span class="special">[]</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.directive.repeat"></a><a href="repeat.html" title=" Repetition
+ Directive (repeat[])"> Repetition
+ Directive (<tt class="computeroutput"><span class="identifier">repeat</span><span class="special">[]</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.directive.repeat.description"></a><h6>
-<a name="id836722"></a>
- <a class="link" href="repeat.html#spirit.karma.reference.directive.repeat.description">Description</a>
+<a name="id647890"></a>
+ Description
</h6>
<p>
The repetition directive allows to repeat an arbitrary generator expression
while optionally specifying the lower and upper repetition counts. It
provides a more powerful and flexible mechanism for repeating a generator.
There are grammars that are impractical and cumbersome, if not impossible,
- for the basic EBNF iteration syntax ( <a class="link" href="../operator/kleene.html" title="Kleene Star (*a)">unary
- <code class="computeroutput"><span class="char">'*'</span></code></a> and the [karma_plus
- unary <code class="computeroutput"><span class="char">'+'</span></code>]) to specify. Examples:
+ for the basic EBNF iteration syntax ( <a href="../operator/kleene.html" title=" Kleene Star
+ (*a)">unary
+ <tt class="computeroutput"><span class="char">'*'</span></tt></a> and the [karma_plus
+ unary <tt class="computeroutput"><span class="char">'+'</span></tt>]) to specify. Examples:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
A file name may have a maximum of 255 characters only.
</li>
-<li class="listitem">
+<li>
A specific bitmap file format has exactly 4096 RGB color information.
</li>
-<li class="listitem">
+<li>
A 256 bit binary string (1..256 1s or 0s).
</li>
</ul></div>
<a name="spirit.karma.reference.directive.repeat.header"></a><h6>
-<a name="id836771"></a>
- <a class="link" href="repeat.html#spirit.karma.reference.directive.repeat.header">Header</a>
+<a name="id647976"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/directive/repeat.hpp>
</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">karma_repeat</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.directive.repeat.namespace"></a><h6>
-<a name="id836846"></a>
- <a class="link" href="repeat.html#spirit.karma.reference.directive.repeat.namespace">Namespace</a>
+<a name="id648089"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">repeat</span> <span class="comment">// alias:
- boost::spirit::karma::repeat</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">inf</span> <span class="comment">// alias:
- boost::spirit::karma::inf</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">repeat</span> <span class="comment">// alias:
+ boost::spirit::karma::repeat</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">inf</span> <span class="comment">// alias:
+ boost::spirit::karma::inf</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.directive.repeat.model_of"></a><h6>
-<a name="id836962"></a>
- <a class="link" href="repeat.html#spirit.karma.reference.directive.repeat.model_of">Model
+<a name="id648242"></a>
+ <a href="repeat.html#spirit.karma.reference.directive.repeat.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>
+ UnaryGenerator
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt></span></dt>
<dd><p>
A generator object
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">num</span><span class="special">,</span> <span class="identifier">num1</span><span class="special">,</span> <span class="identifier">num2</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">num</span><span class="special">,</span> <span class="identifier">num1</span><span class="special">,</span> <span class="identifier">num2</span></tt></span></dt>
<dd><p>
- Numeric literals, any unsigned integer value, or a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ Numeric literals, any unsigned integer value, or a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a> that evaluates to an unsigned integer value
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">inf</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">inf</span></tt></span></dt>
<dd><p>
Placeholder expression standing for 'no upper repeat limit'
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.directive.repeat.expression_semantics"></a><h6>
-<a name="id837084"></a>
- <a class="link" href="repeat.html#spirit.karma.reference.directive.repeat.expression_semantics">Expression
+<a name="id648408"></a>
+ <a href="repeat.html#spirit.karma.reference.directive.repeat.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>.
+ is not defined in UnaryGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -134,114 +136,95 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">repeat</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Repeat the generator <code class="computeroutput"><span class="identifier">a</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Repeat the generator <tt class="computeroutput"><span class="identifier">a</span></tt>
zero or more times. This generator succeeds as long as its embedded
- generator <code class="computeroutput"><span class="identifier">a</span></code> does
+ generator <tt class="computeroutput"><span class="identifier">a</span></tt> does
not fail (except if the underlying output stream reports an error).
- This variant of <code class="computeroutput"><span class="identifier">repeat</span><span class="special">[]</span></code> is semantically equivalent
- to the <a class="link" href="../operator/kleene.html" title="Kleene Star (*a)">Kleene
- Star operator <code class="computeroutput"><span class="special">*</span><span class="identifier">a</span></code></a>
- </p>
- </td>
+ This variant of <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">[]</span></tt> is semantically equivalent
+ to the <a href="../operator/kleene.html" title=" Kleene Star
+ (*a)">Kleene
+ Star operator <tt class="computeroutput"><span class="special">*</span><span class="identifier">a</span></tt></a>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Repeat the generator <code class="computeroutput"><span class="identifier">a</span></code>
- exactly <code class="computeroutput"><span class="identifier">num</span></code> times.
- This generator succeeds as long as its embedded generator <code class="computeroutput"><span class="identifier">a</span></code> does not fail and as long
- as the associated attribute (container) contains at least <code class="computeroutput"><span class="identifier">num</span></code> elements (unless the underlying
+<td><p>
+ <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Repeat the generator <tt class="computeroutput"><span class="identifier">a</span></tt>
+ exactly <tt class="computeroutput"><span class="identifier">num</span></tt> times.
+ This generator succeeds as long as its embedded generator <tt class="computeroutput"><span class="identifier">a</span></tt> does not fail and as long
+ as the associated attribute (container) contains at least <tt class="computeroutput"><span class="identifier">num</span></tt> elements (unless the underlying
output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">num1</span><span class="special">,</span>
- <span class="identifier">num2</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Repeat the generator <code class="computeroutput"><span class="identifier">a</span></code>
- at least <code class="computeroutput"><span class="identifier">num1</span></code>
- times but not more than <code class="computeroutput"><span class="identifier">num2</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">num1</span><span class="special">,</span>
+ <span class="identifier">num2</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Repeat the generator <tt class="computeroutput"><span class="identifier">a</span></tt>
+ at least <tt class="computeroutput"><span class="identifier">num1</span></tt>
+ times but not more than <tt class="computeroutput"><span class="identifier">num2</span></tt>
times. This generator succeeds as long as its embedded generator
- <code class="computeroutput"><span class="identifier">a</span></code> does not fail
+ <tt class="computeroutput"><span class="identifier">a</span></tt> does not fail
and as long as the associated attribute (container) contains
- at least <code class="computeroutput"><span class="identifier">num1</span></code>
+ at least <tt class="computeroutput"><span class="identifier">num1</span></tt>
elements (unless the underlying output stream reports an error).
If the associated attribute (container) does contain more than
- <code class="computeroutput"><span class="identifier">num2</span></code> elements,
- this directive limits the repeat count to <code class="computeroutput"><span class="identifier">num2</span></code>.
- </p>
- </td>
+ <tt class="computeroutput"><span class="identifier">num2</span></tt> elements,
+ this directive limits the repeat count to <tt class="computeroutput"><span class="identifier">num2</span></tt>.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">num</span><span class="special">,</span>
- <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Repeat the generator <code class="computeroutput"><span class="identifier">a</span></code>
- at least <code class="computeroutput"><span class="identifier">num1</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">num</span><span class="special">,</span>
+ <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Repeat the generator <tt class="computeroutput"><span class="identifier">a</span></tt>
+ at least <tt class="computeroutput"><span class="identifier">num1</span></tt>
times. No upper limit for the repeat count is set. This generator
- succeeds as long as its embedded generator <code class="computeroutput"><span class="identifier">a</span></code>
+ succeeds as long as its embedded generator <tt class="computeroutput"><span class="identifier">a</span></tt>
does not fail and as long as the associated attribute (container)
- contains at least <code class="computeroutput"><span class="identifier">num</span></code>
+ contains at least <tt class="computeroutput"><span class="identifier">num</span></tt>
elements (unless the underlying output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
All failing iterations of the embedded generator will consume one element
- from the supplied attribute. The overall <code class="computeroutput"><span class="identifier">repeat</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code> will succeed as long as the iteration
+ from the supplied attribute. The overall <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt> will succeed as long as the iteration
criteria (number of successful invocations of the embedded generator)
is fullfilled (unless the underlying output stream reports an error).
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.directive.repeat.attributes"></a><h6>
-<a name="id837500"></a>
- <a class="link" href="repeat.html#spirit.karma.reference.directive.repeat.attributes">Attributes</a>
+<a name="id649025"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -250,116 +233,105 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">repeat</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">repeat</span><span class="special">[</span><span class="identifier">a</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">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">repeat</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">repeat</span><span class="special">(</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">a</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">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">repeat</span><span class="special">(</span><span class="identifier">num</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">num1</span><span class="special">,</span>
+ <span class="identifier">num2</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">num1</span><span class="special">,</span>
- <span class="identifier">num2</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">repeat</span><span class="special">(</span><span class="identifier">num1</span><span class="special">,</span> <span class="identifier">num2</span><span class="special">)[</span><span class="identifier">a</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">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">repeat</span><span class="special">(</span><span class="identifier">num1</span><span class="special">,</span> <span class="identifier">num2</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">num</span><span class="special">,</span>
+ <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">num</span><span class="special">,</span>
- <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">repeat</span><span class="special">(</span><span class="identifier">num</span><span class="special">,</span> <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">a</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">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">repeat</span><span class="special">(</span><span class="identifier">num</span><span class="special">,</span> <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
</tbody>
</table></div>
-<div class="important" title="Important"><table border="0" summary="Important">
+<div class="important"><table border="0" summary="Important">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../images/important.png"></td>
<th align="left">Important</th>
</tr>
-<tr><td align="left" valign="top">
+<tr><td colspan="2" align="left" valign="top">
<p>
- The table above uses <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code> as placeholders only.
+ The table above uses <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt> as placeholders only.
</p>
<p>
- The notation of <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code> stands for <span class="emphasis"><em>any STL container</em></span>
- holding elements of type <code class="computeroutput"><span class="identifier">A</span></code>.
+ The notation of <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt> stands for <span class="emphasis"><em>any STL container</em></span>
+ holding elements of type <tt class="computeroutput"><span class="identifier">A</span></tt>.
</p>
</td></tr>
</table></div>
<p>
- It is important to note, that the <code class="computeroutput"><span class="identifier">repeat</span><span class="special">[]</span></code> directive does not perform any buffering
+ It is important to note, that the <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">[]</span></tt> directive does not perform any buffering
of the output generated by its embedded elements. That means that any
failing element generator might have already generated some output, which
is <span class="emphasis"><em>not</em></span> rolled back.
</p>
-<div class="tip" title="Tip"><table border="0" summary="Tip">
+<div class="tip"><table border="0" summary="Tip">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../../images/tip.png"></td>
<th align="left">Tip</th>
</tr>
-<tr><td align="left" valign="top">
+<tr><td colspan="2" align="left" valign="top">
<p>
- The simplest way to force a <code class="computeroutput"><span class="identifier">repeat</span><span class="special">[]</span></code> directive to behave as if it did
- buffering is to wrap it into a buffering directive (see <a class="link" href="buffer.html" title="Temporary Output Buffering (buffer[])"><code class="computeroutput"><span class="identifier">buffer</span></code></a>):
+ The simplest way to force a <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">[]</span></tt> directive to behave as if it did
+ buffering is to wrap it into a buffering directive (see <a href="buffer.html" title=" Temporary
+ Output Buffering (buffer[])"><tt class="computeroutput"><span class="identifier">buffer</span></tt></a>):
</p>
<p>
@@ -369,7 +341,7 @@
</p>
<p>
which will <span class="emphasis"><em>not</em></span> generate any output in case of
- a failing generator <code class="computeroutput"><span class="identifier">repeat</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>. The expression:
+ a failing generator <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>. The expression:
</p>
<p>
@@ -378,15 +350,15 @@
<p>
</p>
<p>
- will not generate any partial output from a generator <code class="computeroutput"><span class="identifier">a</span></code> if it fails generating in the middle
+ will not generate any partial output from a generator <tt class="computeroutput"><span class="identifier">a</span></tt> if it fails generating in the middle
of its output. The overall expression will still generate the output
- as produced by all succeeded invocations of the generator <code class="computeroutput"><span class="identifier">a</span></code>.
+ as produced by all succeeded invocations of the generator <tt class="computeroutput"><span class="identifier">a</span></tt>.
</p>
</td></tr>
</table></div>
<a name="spirit.karma.reference.directive.repeat.complexity"></a><h6>
-<a name="id839468"></a>
- <a class="link" href="repeat.html#spirit.karma.reference.directive.repeat.complexity">Complexity</a>
+<a name="id650218"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -400,8 +372,8 @@
</p>
</blockquote></div>
<a name="spirit.karma.reference.directive.repeat.example"></a><h6>
-<a name="id839492"></a>
- <a class="link" href="repeat.html#spirit.karma.reference.directive.repeat.example">Example</a>
+<a name="id650259"></a>
+ Example
</h6>
<p>
Some includes:
@@ -461,7 +433,7 @@
<p>
</p>
<p>
- Basic usage of <code class="computeroutput"><span class="identifier">repeat</span></code>
+ Basic usage of <tt class="computeroutput"><span class="identifier">repeat</span></tt>
generator directive:
</p>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/directive/upperlower.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/directive/upperlower.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/directive/upperlower.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Directives Controlling Case Sensitivity (upper[], lower[])</title>
+<title> Directives
+ Controlling Case Sensitivity (upper[], lower[])</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../directive.html" title="Directive">
-<link rel="prev" href="delimit.html" title="Directives Controlling Automatic Delimiting (verbatim[], delimit[])">
-<link rel="next" href="maxwidth.html" title="Controlling the Maximum Field Wield (maxwidth[])">
+<link rel="up" href="../directive.html" title=" Directive">
+<link rel="previous" href="delimit.html" title=" Directives
+ Controlling Automatic Delimiting (verbatim[], delimit[])">
+<link rel="next" href="maxwidth.html" title=" Controlling
+ the Maximum Field Wield (maxwidth[])">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,105 +25,103 @@
<div class="spirit-nav">
<a accesskey="p" href="delimit.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../directive.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="maxwidth.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Directives Controlling Case Sensitivity (upper[], lower[])">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.directive.upperlower"></a><a class="link" href="upperlower.html" title="Directives Controlling Case Sensitivity (upper[], lower[])"> Directives
- Controlling Case Sensitivity (<code class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></code>, <code class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.directive.upperlower"></a><a href="upperlower.html" title=" Directives
+ Controlling Case Sensitivity (upper[], lower[])"> Directives
+ Controlling Case Sensitivity (<tt class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></tt>, <tt class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.directive.upperlower.description"></a><h6>
-<a name="id843266"></a>
- <a class="link" href="upperlower.html#spirit.karma.reference.directive.upperlower.description">Description</a>
+<a name="id654674"></a>
+ Description
</h6>
<p>
- The generator directives <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">lower</span><span class="special">[]</span></code> and <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">upper</span><span class="special">[]</span></code> force their embedded generators to
+ The generator directives <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">lower</span><span class="special">[]</span></tt> and <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">upper</span><span class="special">[]</span></tt> force their embedded generators to
emit lower case or upper case only characters based on the interpretation
- of the generated characters in the character set defined by <code class="computeroutput"><span class="identifier">ns</span></code> (see <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+ of the generated characters in the character set defined by <tt class="computeroutput"><span class="identifier">ns</span></tt> (see <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a>).
</p>
<a name="spirit.karma.reference.directive.upperlower.header"></a><h6>
-<a name="id843331"></a>
- <a class="link" href="upperlower.html#spirit.karma.reference.directive.upperlower.header">Header</a>
+<a name="id654782"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/directive/upper_lower_case.hpp>
</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">karma_upper_lower_case</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.directive.upperlower.namespace"></a><h6>
-<a name="id843405"></a>
- <a class="link" href="upperlower.html#spirit.karma.reference.directive.upperlower.namespace">Namespace</a>
+<a name="id654898"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">lower</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">upper</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">lower</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">upper</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
<p>
- In the table above, <code class="computeroutput"><span class="identifier">ns</span></code>
- is a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+ In the table above, <tt class="computeroutput"><span class="identifier">ns</span></tt>
+ is a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a>.
</p>
<a name="spirit.karma.reference.directive.upperlower.model_of"></a><h6>
-<a name="id843512"></a>
- <a class="link" href="upperlower.html#spirit.karma.reference.directive.upperlower.model_of">Model
+<a name="id655042"></a>
+ <a href="upperlower.html#spirit.karma.reference.directive.upperlower.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- The model of <code class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></code> and <code class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></code> is the model of its subject generator.
+ The model of <tt class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></tt> and <tt class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></tt> is the model of its subject generator.
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt></span></dt>
<dd><p>
A generator object
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">A</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">A</span></tt></span></dt>
<dd><p>
- Attribute type of the generator <code class="computeroutput"><span class="identifier">a</span></code>
+ Attribute type of the generator <tt class="computeroutput"><span class="identifier">a</span></tt>
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">ns</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">ns</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+ A <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a>.
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.directive.upperlower.expression_semantics"></a><h6>
-<a name="id843631"></a>
- <a class="link" href="upperlower.html#spirit.karma.reference.directive.upperlower.expression_semantics">Expression
+<a name="id655210"></a>
+ <a href="upperlower.html#spirit.karma.reference.directive.upperlower.expression_semantics">Expression
Semantics</a>
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></code>
- and <code class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></code>
+ The <tt class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></tt>
+ and <tt class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></tt>
directives have no special generator semantics. They are pure modifier
directives. They indirectly influence the way all subject generators
- work. They add information (the <code class="computeroutput"><span class="identifier">tag</span><span class="special">::</span><span class="identifier">upper</span></code>
- or <code class="computeroutput"><span class="identifier">tag</span><span class="special">::</span><span class="identifier">lower</span></code>) to the <code class="computeroutput"><span class="identifier">Modifier</span></code>
- template parameter used while tranforming the <code class="computeroutput"><span class="identifier">proto</span><span class="special">::</span><span class="identifier">expr</span></code>
+ work. They add information (the <tt class="computeroutput"><span class="identifier">tag</span><span class="special">::</span><span class="identifier">upper</span></tt>
+ or <tt class="computeroutput"><span class="identifier">tag</span><span class="special">::</span><span class="identifier">lower</span></tt>) to the <tt class="computeroutput"><span class="identifier">Modifier</span></tt>
+ template parameter used while tranforming the <tt class="computeroutput"><span class="identifier">proto</span><span class="special">::</span><span class="identifier">expr</span></tt>
into the corresponding generator expression. This is achieved by the
following specializations:
</p>
@@ -151,56 +152,44 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">lower</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> as
- lower case, interpreted in the character set defined by <code class="computeroutput"><span class="identifier">ns</span></code>. The directive succeeds
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">lower</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> as
+ lower case, interpreted in the character set defined by <tt class="computeroutput"><span class="identifier">ns</span></tt>. The directive succeeds
as long as the embedded generator succeeded (unless the underlying
output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">upper</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="identifier">a</span></code> as
- upper case, interpreted in the character set defined by <code class="computeroutput"><span class="identifier">ns</span></code>. The directive succeeds
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">upper</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="identifier">a</span></tt> as
+ upper case, interpreted in the character set defined by <tt class="computeroutput"><span class="identifier">ns</span></tt>. The directive succeeds
as long as the embedded generator succeeded (unless the underlying
output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top">
+<tr><td colspan="2" align="left" valign="top">
<p>
If both directives are 'active' with regard to a generator, the innermost
of those directives takes precendence. For instance:
@@ -208,22 +197,22 @@
<pre class="programlisting"><span class="identifier">generate</span><span class="special">(</span><span class="identifier">sink</span><span class="special">,</span> <span class="identifier">ascii</span><span class="special">::</span><span class="identifier">lower</span><span class="special">[</span><span class="char">'A'</span> <span class="special"><<</span> <span class="identifier">ascii</span><span class="special">::</span><span class="identifier">upper</span><span class="special">[</span><span class="char">'b'</span><span class="special">]])</span>
</pre>
<p>
- will generate <code class="computeroutput"><span class="string">"aB"</span></code>
+ will generate <tt class="computeroutput"><span class="string">"aB"</span></tt>
(without the quotes).
</p>
<p>
Further, the directives will have no effect on generators emitting
characters not having an upper case or lower case equivalent in the
- character set defined by <code class="computeroutput"><span class="identifier">ns</span></code>.
+ character set defined by <tt class="computeroutput"><span class="identifier">ns</span></tt>.
</p>
</td></tr>
</table></div>
<a name="spirit.karma.reference.directive.upperlower.attributes"></a><h6>
-<a name="id844232"></a>
- <a class="link" href="upperlower.html#spirit.karma.reference.directive.upperlower.attributes">Attributes</a>
+<a name="id656062"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -232,62 +221,54 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">:</span><span class="identifier">lower</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">:</span><span class="identifier">lower</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">ns</span><span class="special">:</span><span class="identifier">lower</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">ns</span><span class="special">:</span><span class="identifier">lower</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">:</span><span class="identifier">upper</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">:</span><span class="identifier">upper</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">ns</span><span class="special">:</span><span class="identifier">upper</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">ns</span><span class="special">:</span><span class="identifier">upper</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.directive.upperlower.complexity"></a><h6>
-<a name="id846268"></a>
- <a class="link" href="upperlower.html#spirit.karma.reference.directive.upperlower.complexity">Complexity</a>
+<a name="id656496"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- The overall complexity of the generator directives <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">lower</span><span class="special">[]</span></code>
- and <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">upper</span><span class="special">[]</span></code>
+ The overall complexity of the generator directives <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">lower</span><span class="special">[]</span></tt>
+ and <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">upper</span><span class="special">[]</span></tt>
is defined by the complexity of its embedded generators. The directives
themselves are compile time only directives, having no impact on
runtime performance.
@@ -296,8 +277,8 @@
</p>
</blockquote></div>
<a name="spirit.karma.reference.directive.upperlower.example"></a><h6>
-<a name="id846328"></a>
- <a class="link" href="upperlower.html#spirit.karma.reference.directive.upperlower.example">Example</a>
+<a name="id656588"></a>
+ Example
</h6>
<p>
Some includes:
@@ -355,8 +336,8 @@
<p>
</p>
<p>
- Basic usage of the <code class="computeroutput"><span class="identifier">upper</span></code>
- and <code class="computeroutput"><span class="identifier">lower</span></code> generator directives:
+ Basic usage of the <tt class="computeroutput"><span class="identifier">upper</span></tt>
+ and <tt class="computeroutput"><span class="identifier">lower</span></tt> generator directives:
</p>
<p>
</p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Generator Concepts</title>
+<title>Generator
+ Concepts</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="../reference.html" title="Reference">
+<link rel="previous" href="../reference.html" title="Reference">
<link rel="next" href="generator_concepts/generator.html" title="Generator">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,11 +23,15 @@
<div class="spirit-nav">
<a accesskey="p" href="../reference.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="generator_concepts/generator.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Generator Concepts">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.reference.generator_concepts"></a><a class="link" href="generator_concepts.html" title="Generator Concepts">Generator
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.reference.generator_concepts"></a><a href="generator_concepts.html" title="Generator
+ Concepts">Generator
Concepts</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section">Generator</span></dt>
<dt><span class="section">PrimitiveGenerator</span></dt>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/binarygenerator.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/binarygenerator.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/binarygenerator.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,11 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>BinaryGenerator</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../generator_concepts.html" title="Generator Concepts">
-<link rel="prev" href="unarygenerator.html" title="UnaryGenerator">
+<link rel="up" href="../generator_concepts.html" title="Generator
+ Concepts">
+<link rel="previous" href="unarygenerator.html" title="UnaryGenerator">
<link rel="next" href="narygenerator.html" title="NaryGenerator">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,56 +23,59 @@
<div class="spirit-nav">
<a accesskey="p" href="unarygenerator.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../generator_concepts.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="narygenerator.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="BinaryGenerator">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.generator_concepts.binarygenerator"></a><a class="link" href="binarygenerator.html" title="BinaryGenerator">BinaryGenerator</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.generator_concepts.binarygenerator"></a>BinaryGenerator
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.generator_concepts.binarygenerator.description"></a><h6>
-<a name="id759345"></a>
- <a class="link" href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.description">Description</a>
+<a name="id572735"></a>
+ Description
</h6>
<p>
<span class="emphasis"><em>BinaryGenerator</em></span> is a composite parser that has a
- two subjects, <code class="computeroutput"><span class="identifier">left</span></code> and
- <code class="computeroutput"><span class="identifier">right</span></code>. The BinaryGenerator
+ two subjects, <tt class="computeroutput"><span class="identifier">left</span></tt> and
+ <tt class="computeroutput"><span class="identifier">right</span></tt>. The BinaryGenerator
allows its subjects to be treated in the same way as a single instance
- of a <a class="link" href="generator.html" title="Generator"><code class="computeroutput"><span class="identifier">Generator</span></code></a> following the Composite
+ of a Generator following the Composite
Design Pattern.
</p>
<a name="spirit.karma.reference.generator_concepts.binarygenerator.refinement_of"></a><h6>
-<a name="id759392"></a>
- <a class="link" href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.refinement_of">Refinement
+<a name="id572816"></a>
+ <a href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.refinement_of">Refinement
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="generator.html" title="Generator"><code class="computeroutput"><span class="identifier">Generator</span></code></a>
+ Generator
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">g</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">g</span></tt></span></dt>
<dd><p>
A BinaryGenerator.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">G</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">G</span></tt></span></dt>
<dd><p>
A BinaryGenerator type.
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.generator_concepts.binarygenerator.valid_expressions"></a><h6>
-<a name="id759469"></a>
- <a class="link" href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.valid_expressions">Valid
+<a name="id572926"></a>
+ <a href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.valid_expressions">Valid
Expressions</a>
</h6>
<p>
- In addition to the requirements defined in <a class="link" href="generator.html" title="Generator"><code class="computeroutput"><span class="identifier">Generator</span></code></a>, for any BinaryGenerator
+ In addition to the requirements defined in Generator, for any BinaryGenerator
the following must be met:
</p>
<div class="informaltable"><table class="table">
@@ -81,62 +85,44 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Return type
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">left</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">left</span></tt>
+ </p></td>
+<td><p>
Left generator.
- </p>
- </td>
-<td>
- <p>
- <a class="link" href="generator.html" title="Generator"><code class="computeroutput"><span class="identifier">Generator</span></code></a>
- </p>
- </td>
+ </p></td>
+<td><p>
+ Generator
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">right</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">right</span></tt>
+ </p></td>
+<td><p>
Right generator.
- </p>
- </td>
-<td>
- <p>
- <a class="link" href="generator.html" title="Generator"><code class="computeroutput"><span class="identifier">Generator</span></code></a>
- </p>
- </td>
+ </p></td>
+<td><p>
+ Generator
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.generator_concepts.binarygenerator.type_expressions"></a><h6>
-<a name="id759631"></a>
- <a class="link" href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.type_expressions">Type
+<a name="id573148"></a>
+ <a href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.type_expressions">Type
Expressions</a>
</h6>
<div class="informaltable"><table class="table">
@@ -145,88 +131,72 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">G</span><span class="special">::</span><span class="identifier">left_type</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">G</span><span class="special">::</span><span class="identifier">left_type</span></tt>
+ </p></td>
+<td><p>
The left parser type.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">G</span><span class="special">::</span><span class="identifier">right_type</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">G</span><span class="special">::</span><span class="identifier">right_type</span></tt>
+ </p></td>
+<td><p>
The right parser type.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_binary_generator</span><span class="special"><</span><span class="identifier">G</span><span class="special">>::</span><span class="identifier">type</span></code>
- </p>
- </td>
-<td>
- <p>
- Metafunction that evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
- if a certain type, <code class="computeroutput"><span class="identifier">G</span></code>
- is a BinaryGenerator, <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_binary_generator</span><span class="special"><</span><span class="identifier">G</span><span class="special">>::</span><span class="identifier">type</span></tt>
+ </p></td>
+<td><p>
+ Metafunction that evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
+ if a certain type, <tt class="computeroutput"><span class="identifier">G</span></tt>
+ is a BinaryGenerator, <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>
otherwise (See <a href="../../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
Boolean Constant</a>).
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.generator_concepts.binarygenerator.invariants"></a><h6>
-<a name="id759830"></a>
- <a class="link" href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.invariants">Invariants</a>
+<a name="id573413"></a>
+ Invariants
</h6>
<p>
- For any BinaryGenerator, <code class="computeroutput"><span class="identifier">G</span></code>,
+ For any BinaryGenerator, <tt class="computeroutput"><span class="identifier">G</span></tt>,
the following invariants always hold:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
-<code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_generator</span><span class="special"><</span><span class="identifier">G</span><span class="special">::</span><span class="identifier">left_type</span><span class="special">>::</span><span class="identifier">type</span></code> evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_generator</span><span class="special"><</span><span class="identifier">G</span><span class="special">::</span><span class="identifier">left_type</span><span class="special">>::</span><span class="identifier">type</span></tt> evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
</li>
-<li class="listitem">
-<code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_generator</span><span class="special"><</span><span class="identifier">G</span><span class="special">::</span><span class="identifier">right_type</span><span class="special">>::</span><span class="identifier">type</span></code> evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
+<li>
+<tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_generator</span><span class="special"><</span><span class="identifier">G</span><span class="special">::</span><span class="identifier">right_type</span><span class="special">>::</span><span class="identifier">type</span></tt> evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
</li>
</ul></div>
<a name="spirit.karma.reference.generator_concepts.binarygenerator.models"></a><h6>
-<a name="id761811"></a>
- <a class="link" href="binarygenerator.html#spirit.karma.reference.generator_concepts.binarygenerator.models">Models</a>
+<a name="id573613"></a>
+ Models
</h6>
<p>
The following generators conform to this model:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
-<a class="link" href="../operator/list.html" title="Lists (a % b)">List (<code class="computeroutput"><span class="special">%</span></code>)</a>.
+<div class="itemizedlist"><ul type="disc"><li>
+List (%).
</li></ul></div>
<p>
- <span class="bold"><strong>FIXME</strong></span> Add more links to models of BinaryGenerator
+ <span class="bold"><b>FIXME</b></span> Add more links to models of BinaryGenerator
concept
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/generator.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/generator.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/generator.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,12 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Generator</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../generator_concepts.html" title="Generator Concepts">
-<link rel="prev" href="../generator_concepts.html" title="Generator Concepts">
+<link rel="up" href="../generator_concepts.html" title="Generator
+ Concepts">
+<link rel="previous" href="../generator_concepts.html" title="Generator
+ Concepts">
<link rel="next" href="primitivegenerator.html" title="PrimitiveGenerator">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,74 +24,77 @@
<div class="spirit-nav">
<a accesskey="p" href="../generator_concepts.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../generator_concepts.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="primitivegenerator.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Generator">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.generator_concepts.generator"></a><a class="link" href="generator.html" title="Generator">Generator</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.generator_concepts.generator"></a>Generator
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.generator_concepts.generator.description"></a><h6>
-<a name="id757109"></a>
- <a class="link" href="generator.html#spirit.karma.reference.generator_concepts.generator.description">Description</a>
+<a name="id569864"></a>
+ Description
</h6>
<p>
The <span class="emphasis"><em>Generator</em></span> is the most fundamental concept. A
- Generator has a member function, <code class="computeroutput"><span class="identifier">generate</span></code>,
- that accepts an <code class="computeroutput"><span class="identifier">OutputIterator</span></code>
+ Generator has a member function, <tt class="computeroutput"><span class="identifier">generate</span></tt>,
+ that accepts an <tt class="computeroutput"><span class="identifier">OutputIterator</span></tt>
and returns bool as its result. The iterator receives the data being
- generated. The Generator's <code class="computeroutput"><span class="identifier">generate</span></code>
- member function returns <code class="computeroutput"><span class="keyword">true</span></code>
+ generated. The Generator's <tt class="computeroutput"><span class="identifier">generate</span></tt>
+ member function returns <tt class="computeroutput"><span class="keyword">true</span></tt>
if the generator succeeds. Each Generator can represent a specific pattern
or algorithm, or it can be a more complex generator formed as a composition
of other Generator's.
</p>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">g</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">g</span></tt></span></dt>
<dd><p>
- A <code class="computeroutput"><span class="identifier">Generator</span></code>.
+ A <tt class="computeroutput"><span class="identifier">Generator</span></tt>.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">G</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">G</span></tt></span></dt>
<dd><p>
- A <code class="computeroutput"><span class="identifier">Generator</span></code> type.
+ A <tt class="computeroutput"><span class="identifier">Generator</span></tt> type.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">OutIter</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">OutIter</span></tt></span></dt>
<dd><p>
- An <code class="computeroutput"><span class="identifier">OutputIterator</span></code>
+ An <tt class="computeroutput"><span class="identifier">OutputIterator</span></tt>
type.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">sink</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">sink</span></tt></span></dt>
<dd><p>
- An <code class="computeroutput"><span class="identifier">OutputIterator</span></code>
+ An <tt class="computeroutput"><span class="identifier">OutputIterator</span></tt>
instance.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Context</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Context</span></tt></span></dt>
<dd><p>
The generator's Context type.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">context</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">context</span></tt></span></dt>
<dd><p>
- The generator's Context, or <code class="computeroutput"><span class="identifier">unused</span></code>.
+ The generator's Context, or <tt class="computeroutput"><span class="identifier">unused</span></tt>.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">delimit</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">delimit</span></tt></span></dt>
<dd><p>
- A delimiter Generator, or <code class="computeroutput"><span class="identifier">unused</span></code>.
+ A delimiter Generator, or <tt class="computeroutput"><span class="identifier">unused</span></tt>.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">attrib</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">attrib</span></tt></span></dt>
<dd><p>
- A Compatible Attributes, or <code class="computeroutput"><span class="identifier">unused</span></code>.
+ A Compatible Attributes, or <tt class="computeroutput"><span class="identifier">unused</span></tt>.
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.generator_concepts.generator.valid_expressions"></a><h6>
-<a name="id757363"></a>
- <a class="link" href="generator.html#spirit.karma.reference.generator_concepts.generator.valid_expressions">Valid
+<a name="id570231"></a>
+ <a href="generator.html#spirit.karma.reference.generator_concepts.generator.valid_expressions">Valid
Expressions</a>
</h6>
<p>
- In the expressions below, the behavior of the generator, <code class="computeroutput"><span class="identifier">g</span></code>, as well as how <code class="computeroutput"><span class="identifier">delimit</span></code>
- and <code class="computeroutput"><span class="identifier">attrib</span></code> are handled
- by <code class="computeroutput"><span class="identifier">g</span></code>, are left unspecified
- in the base <code class="computeroutput"><span class="identifier">Generator</span></code>
+ In the expressions below, the behavior of the generator, <tt class="computeroutput"><span class="identifier">g</span></tt>, as well as how <tt class="computeroutput"><span class="identifier">delimit</span></tt>
+ and <tt class="computeroutput"><span class="identifier">attrib</span></tt> are handled
+ by <tt class="computeroutput"><span class="identifier">g</span></tt>, are left unspecified
+ in the base <tt class="computeroutput"><span class="identifier">Generator</span></tt>
concept. These are specified in subsequent, more refined concepts and
by the actual models therof.
</p>
@@ -103,69 +108,53 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Return type
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">g</span><span class="special">.</span><span class="identifier">generate</span><span class="special">(</span><span class="identifier">sink</span><span class="special">,</span> <span class="identifier">context</span><span class="special">,</span> <span class="identifier">delimit</span><span class="special">,</span> <span class="identifier">attr</span><span class="special">)</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
+</td>
+<td><p>
Generate the output sequence by inserting the generated characters/tokens
- into <code class="computeroutput"><span class="identifier">sink</span></code>. Use
- the <code class="computeroutput"><span class="identifier">delimit</span></code> generator
- for delimiting. Return <code class="computeroutput"><span class="keyword">true</span></code>
- if successful, otherwise return <code class="computeroutput"><span class="keyword">false</span></code>.
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">bool</span></code>
- </p>
- </td>
+ into <tt class="computeroutput"><span class="identifier">sink</span></tt>. Use
+ the <tt class="computeroutput"><span class="identifier">delimit</span></tt> generator
+ for delimiting. Return <tt class="computeroutput"><span class="keyword">true</span></tt>
+ if successful, otherwise return <tt class="computeroutput"><span class="keyword">false</span></tt>.
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">bool</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">what</span><span class="special">(</span><span class="identifier">context</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">what</span><span class="special">(</span><span class="identifier">context</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Get information about a Generator.
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">info</span></code>
- </p>
- </td>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">info</span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.generator_concepts.generator.type_expressions"></a><h6>
-<a name="id757897"></a>
- <a class="link" href="generator.html#spirit.karma.reference.generator_concepts.generator.type_expressions">Type
+<a name="id570600"></a>
+ <a href="generator.html#spirit.karma.reference.generator_concepts.generator.type_expressions">Type
Expressions</a>
</h6>
<div class="informaltable"><table class="table">
@@ -174,87 +163,71 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">G</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">attribute</span><span class="special"><</span><span class="identifier">Context</span><span class="special">>::</span><span class="identifier">type</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">G</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">attribute</span><span class="special"><</span><span class="identifier">Context</span><span class="special">>::</span><span class="identifier">type</span></tt>
+ </p></td>
+<td><p>
The Generator's attribute.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_generator</span><span class="special"><</span><span class="identifier">G</span><span class="special">>::</span><span class="identifier">type</span></code>
- </p>
- </td>
-<td>
- <p>
- Metafunction that evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
- if a certain type, <code class="computeroutput"><span class="identifier">G</span></code>
- is a Generator, <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_generator</span><span class="special"><</span><span class="identifier">G</span><span class="special">>::</span><span class="identifier">type</span></tt>
+ </p></td>
+<td><p>
+ Metafunction that evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
+ if a certain type, <tt class="computeroutput"><span class="identifier">G</span></tt>
+ is a Generator, <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>
otherwise (See <a href="../../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
Boolean Constant</a>).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">G</span><span class="special">::</span><span class="identifier">properties</span></code>
- </p>
- </td>
-<td>
- <p>
- A <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span></code> (See <a href="../../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
- Integral Constant</a>) holding a value from the <code class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">generator_properties</span></code> enumeration.
- The default value is <code class="computeroutput"><span class="identifier">generator_properties</span><span class="special">::</span><span class="identifier">no_properties</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">G</span><span class="special">::</span><span class="identifier">properties</span></tt>
+ </p></td>
+<td><p>
+ A <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">int_</span></tt> (See <a href="../../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
+ Integral Constant</a>) holding a value from the <tt class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">generator_properties</span></tt> enumeration.
+ The default value is <tt class="computeroutput"><span class="identifier">generator_properties</span><span class="special">::</span><span class="identifier">no_properties</span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.generator_concepts.generator.postcondition"></a><h6>
-<a name="id758162"></a>
- <a class="link" href="generator.html#spirit.karma.reference.generator_concepts.generator.postcondition">Postcondition</a>
+<a name="id570967"></a>
+ Postcondition
</h6>
<p>
- Upon return from <code class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">generate</span></code> the following post conditions
+ Upon return from <tt class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">generate</span></tt> the following post conditions
should hold:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
- On successful generation, <code class="computeroutput"><span class="identifier">sink</span></code>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ On successful generation, <tt class="computeroutput"><span class="identifier">sink</span></tt>
receives the generated characters/tokens sequence.
</li>
-<li class="listitem">
- No pre-delimits: <code class="computeroutput"><span class="identifier">delimit</span></code>
+<li>
+ No pre-delimits: <tt class="computeroutput"><span class="identifier">delimit</span></tt>
characters/tokens will not be emitted in front of any other output.
</li>
-<li class="listitem">
- The attribute <code class="computeroutput"><span class="identifier">attrib</span></code>
+<li>
+ The attribute <tt class="computeroutput"><span class="identifier">attrib</span></tt>
has not been modified.
</li>
</ul></div>
<a name="spirit.karma.reference.generator_concepts.generator.models"></a><h6>
-<a name="id758232"></a>
- <a class="link" href="generator.html#spirit.karma.reference.generator_concepts.generator.models">Models</a>
+<a name="id571072"></a>
+ Models
</h6>
<p>
All generators in <span class="emphasis"><em>Spirit.Karma</em></span> are models of the
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/narygenerator.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/narygenerator.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/narygenerator.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,12 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>NaryGenerator</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../generator_concepts.html" title="Generator Concepts">
-<link rel="prev" href="binarygenerator.html" title="BinaryGenerator">
-<link rel="next" href="../karma_basics.html" title="Basics">
+<link rel="up" href="../generator_concepts.html" title="Generator
+ Concepts">
+<link rel="previous" href="binarygenerator.html" title="BinaryGenerator">
+<link rel="next" href="../karma_basics.html" title=" Basics">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,54 +23,57 @@
<div class="spirit-nav">
<a accesskey="p" href="binarygenerator.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../generator_concepts.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../karma_basics.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="NaryGenerator">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.generator_concepts.narygenerator"></a><a class="link" href="narygenerator.html" title="NaryGenerator">NaryGenerator</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.generator_concepts.narygenerator"></a>NaryGenerator
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.generator_concepts.narygenerator.description"></a><h6>
-<a name="id761866"></a>
- <a class="link" href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.description">Description</a>
+<a name="id573704"></a>
+ Description
</h6>
<p>
<span class="emphasis"><em>NaryGenerator</em></span> is a composite generator that has
one or more subjects. The NaryGenerator allows its subjects to be treated
- in the same way as a single instance of a <a class="link" href="generator.html" title="Generator"><code class="computeroutput"><span class="identifier">Generator</span></code></a> following the Composite
+ in the same way as a single instance of a Generator following the Composite
Design Pattern.
</p>
<a name="spirit.karma.reference.generator_concepts.narygenerator.refinement_of"></a><h6>
-<a name="id761897"></a>
- <a class="link" href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.refinement_of">Refinement
+<a name="id573759"></a>
+ <a href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.refinement_of">Refinement
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="generator.html" title="Generator"><code class="computeroutput"><span class="identifier">Generator</span></code></a>
+ Generator
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">g</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">g</span></tt></span></dt>
<dd><p>
A NaryGenerator.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">G</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">G</span></tt></span></dt>
<dd><p>
A NaryGenerator type.
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.generator_concepts.narygenerator.valid_expressions"></a><h6>
-<a name="id761974"></a>
- <a class="link" href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.valid_expressions">Valid
+<a name="id573869"></a>
+ <a href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.valid_expressions">Valid
Expressions</a>
</h6>
<p>
- In addition to the requirements defined in <a class="link" href="generator.html" title="Generator"><code class="computeroutput"><span class="identifier">Generator</span></code></a>, for any NaryGenerator
+ In addition to the requirements defined in Generator, for any NaryGenerator
the following must be met:
</p>
<div class="informaltable"><table class="table">
@@ -79,44 +83,32 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Return type
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">elements</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">elements</span></tt>
+ </p></td>
+<td><p>
The tuple of elements.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
A Boost.Fusion
- Sequence of <a class="link" href="generator.html" title="Generator"><code class="computeroutput"><span class="identifier">Generator</span></code></a> types.
- </p>
- </td>
+ Sequence of Generator types.
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.karma.reference.generator_concepts.narygenerator.type_expressions"></a><h6>
-<a name="id762094"></a>
- <a class="link" href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.type_expressions">Type
+<a name="id574036"></a>
+ <a href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.type_expressions">Type
Expressions</a>
</h6>
<div class="informaltable"><table class="table">
@@ -125,78 +117,70 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">elements_type</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">elements_type</span></tt>
+ </p></td>
+<td><p>
Elements tuple type.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_nary_generator</span><span class="special"><</span><span class="identifier">G</span><span class="special">>::</span><span class="identifier">type</span></code>
- </p>
- </td>
-<td>
- <p>
- Metafunction that evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
- if a certain type, <code class="computeroutput"><span class="identifier">G</span></code>
- is a NaryGenerator, <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_nary_generator</span><span class="special"><</span><span class="identifier">G</span><span class="special">>::</span><span class="identifier">type</span></tt>
+ </p></td>
+<td><p>
+ Metafunction that evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
+ if a certain type, <tt class="computeroutput"><span class="identifier">G</span></tt>
+ is a NaryGenerator, <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>
otherwise (See <a href="../../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
Boolean Constant</a>).
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.generator_concepts.narygenerator.invariants"></a><h6>
-<a name="id762261"></a>
- <a class="link" href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.invariants">Invariants</a>
+<a name="id574263"></a>
+ Invariants
</h6>
<p>
- For each element, <code class="computeroutput"><span class="identifier">E</span></code>,
- in any NaryGenerator, <code class="computeroutput"><span class="identifier">G</span></code>,
+ For each element, <tt class="computeroutput"><span class="identifier">E</span></tt>,
+ in any NaryGenerator, <tt class="computeroutput"><span class="identifier">G</span></tt>,
the following invariant always holds:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
-<code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_generator</span><span class="special"><</span><span class="identifier">E</span><span class="special">>::</span><span class="identifier">type</span></code> evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
+<div class="itemizedlist"><ul type="disc"><li>
+<tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_generator</span><span class="special"><</span><span class="identifier">E</span><span class="special">>::</span><span class="identifier">type</span></tt> evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
</li></ul></div>
<a name="spirit.karma.reference.generator_concepts.narygenerator.models"></a><h6>
-<a name="id762346"></a>
- <a class="link" href="narygenerator.html#spirit.karma.reference.generator_concepts.narygenerator.models">Models</a>
+<a name="id574388"></a>
+ Models
</h6>
<p>
The following generators conform to this model:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
-<a class="link" href="../operator/sequence.html" title="Sequences (a << b)">Sequence (<code class="computeroutput"><span class="special"><<</span></code>)</a>,
+<div class="itemizedlist"><ul type="disc">
+<li>
+<a href="../operator/sequence.html" title=" Sequences
+ (a <<
+ b)">Sequence (<tt class="computeroutput"><span class="special"><<</span></tt>)</a>,
</li>
-<li class="listitem">
-<a class="link" href="../operator/alternative.html" title="Alternative (a | b)">Alternative
- (<code class="computeroutput"><span class="special">|</span></code>)</a>.
+<li>
+<a href="../operator/alternative.html" title=" Alternative
+ (a |
+ b)">Alternative
+ (<tt class="computeroutput"><span class="special">|</span></tt>)</a>.
</li>
</ul></div>
<p>
- <span class="bold"><strong>FIXME</strong></span> Add more links to models of NaryGenerator
+ <span class="bold"><b>FIXME</b></span> Add more links to models of NaryGenerator
concept
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/primitivegenerator.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/primitivegenerator.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/primitivegenerator.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,11 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>PrimitiveGenerator</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../generator_concepts.html" title="Generator Concepts">
-<link rel="prev" href="generator.html" title="Generator">
+<link rel="up" href="../generator_concepts.html" title="Generator
+ Concepts">
+<link rel="previous" href="generator.html" title="Generator">
<link rel="next" href="unarygenerator.html" title="UnaryGenerator">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,48 +23,51 @@
<div class="spirit-nav">
<a accesskey="p" href="generator.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../generator_concepts.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="unarygenerator.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="PrimitiveGenerator">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.generator_concepts.primitivegenerator"></a><a class="link" href="primitivegenerator.html" title="PrimitiveGenerator">PrimitiveGenerator</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.generator_concepts.primitivegenerator"></a>PrimitiveGenerator
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.generator_concepts.primitivegenerator.description"></a><h6>
-<a name="id758274"></a>
- <a class="link" href="primitivegenerator.html#spirit.karma.reference.generator_concepts.primitivegenerator.description">Description</a>
+<a name="id571135"></a>
+ Description
</h6>
<p>
<span class="emphasis"><em>PrimitiveGenerator</em></span> is the most basic building block
that the client uses to build more complex generators.
</p>
<a name="spirit.karma.reference.generator_concepts.primitivegenerator.refinement_of"></a><h6>
-<a name="id758294"></a>
- <a class="link" href="primitivegenerator.html#spirit.karma.reference.generator_concepts.primitivegenerator.refinement_of">Refinement
+<a name="id571170"></a>
+ <a href="primitivegenerator.html#spirit.karma.reference.generator_concepts.primitivegenerator.refinement_of">Refinement
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="generator.html" title="Generator"><code class="computeroutput"><span class="identifier">Generator</span></code></a>
+ Generator
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.karma.reference.generator_concepts.primitivegenerator.post_delimit"></a><h6>
-<a name="id758328"></a>
- <a class="link" href="primitivegenerator.html#spirit.karma.reference.generator_concepts.primitivegenerator.post_delimit">Post-delimit</a>
+<a name="id571227"></a>
+ Post-delimit
</h6>
<p>
- Before exiting the <code class="computeroutput"><span class="identifier">generate</span></code>
+ Before exiting the <tt class="computeroutput"><span class="identifier">generate</span></tt>
member function, a PrimitiveGenerator is required to do a post-delimit.
This will generate a single delimiting character/token sequence. Only
PrimitiveGenerator's are required to perform this post-delimit. This
- is typically carried out through a call to <code class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">delimit_out</span></code>:
+ is typically carried out through a call to <tt class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">delimit_out</span></tt>:
</p>
<pre class="programlisting"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">delimit_out</span><span class="special">(</span><span class="identifier">sink</span><span class="special">,</span> <span class="identifier">delimit</span><span class="special">);</span>
</pre>
<a name="spirit.karma.reference.generator_concepts.primitivegenerator.type_expressions"></a><h6>
-<a name="id758401"></a>
- <a class="link" href="primitivegenerator.html#spirit.karma.reference.generator_concepts.primitivegenerator.type_expressions">Type
+<a name="id571345"></a>
+ <a href="primitivegenerator.html#spirit.karma.reference.generator_concepts.primitivegenerator.type_expressions">Type
Expressions</a>
</h6>
<div class="informaltable"><table class="table">
@@ -72,58 +76,52 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_primitive_generator</span><span class="special"><</span><span class="identifier">G</span><span class="special">>::</span><span class="identifier">type</span></code>
- </p>
- </td>
-<td>
- <p>
- Metafunction that evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
- if a certain type, <code class="computeroutput"><span class="identifier">G</span></code>,
- is a PrimitiveGenerator, <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_primitive_generator</span><span class="special"><</span><span class="identifier">G</span><span class="special">>::</span><span class="identifier">type</span></tt>
+ </p></td>
+<td><p>
+ Metafunction that evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
+ if a certain type, <tt class="computeroutput"><span class="identifier">G</span></tt>,
+ is a PrimitiveGenerator, <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>
otherwise (See <a href="../../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
Boolean Constant</a>).
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.karma.reference.generator_concepts.primitivegenerator.models"></a><h6>
-<a name="id758535"></a>
- <a class="link" href="primitivegenerator.html#spirit.karma.reference.generator_concepts.primitivegenerator.models">Models</a>
+<a name="id571533"></a>
+ Models
</h6>
<p>
The following generators conform to this model:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
-<a class="link" href="../auxiliary/eol.html" title="End of Line (eol)"><code class="computeroutput"><span class="identifier">eol</span></code></a> ,
+<div class="itemizedlist"><ul type="disc">
+<li>
+<a href="../auxiliary/eol.html" title=" End of Line
+ (eol)"><tt class="computeroutput"><span class="identifier">eol</span></tt></a> ,
</li>
-<li class="listitem">
-<a class="link" href="../auxiliary/eps.html" title="Epsilon (eps)"><code class="computeroutput"><span class="identifier">eps</span></code></a>,
+<li>
+eps,
</li>
-<li class="listitem">
-<a class="link" href="../numeric.html" title="Numeric">Numeric generators</a>,
+<li>
+Numeric generators,
</li>
-<li class="listitem">
-<a class="link" href="../char/char_generator.html" title="Character Generators (char_, lit)">Character
+<li>
+<a href="../char/char_generator.html" title=" Character
+ Generators (char_, lit)">Character
generators</a>.
</li>
</ul></div>
<p>
- <span class="bold"><strong>FIXME</strong></span> Add more links to <span class="emphasis"><em>PrimitiveGenerator</em></span>
+ <span class="bold"><b>FIXME</b></span> Add more links to <span class="emphasis"><em>PrimitiveGenerator</em></span>
models here.
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/unarygenerator.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/unarygenerator.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/generator_concepts/unarygenerator.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,11 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>UnaryGenerator</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../generator_concepts.html" title="Generator Concepts">
-<link rel="prev" href="primitivegenerator.html" title="PrimitiveGenerator">
+<link rel="up" href="../generator_concepts.html" title="Generator
+ Concepts">
+<link rel="previous" href="primitivegenerator.html" title="PrimitiveGenerator">
<link rel="next" href="binarygenerator.html" title="BinaryGenerator">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,13 +23,16 @@
<div class="spirit-nav">
<a accesskey="p" href="primitivegenerator.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../generator_concepts.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="binarygenerator.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="UnaryGenerator">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.generator_concepts.unarygenerator"></a><a class="link" href="unarygenerator.html" title="UnaryGenerator">UnaryGenerator</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.generator_concepts.unarygenerator"></a>UnaryGenerator
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.generator_concepts.unarygenerator.description"></a><h6>
-<a name="id758627"></a>
- <a class="link" href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.description">Description</a>
+<a name="id571670"></a>
+ Description
</h6>
<p>
<span class="emphasis"><em>UnaryGenerator</em></span> is a composite generator that has
@@ -36,39 +40,39 @@
following the Delegate Design Pattern.
</p>
<a name="spirit.karma.reference.generator_concepts.unarygenerator.refinement_of"></a><h6>
-<a name="id758647"></a>
- <a class="link" href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.refinement_of">Refinement
+<a name="id571707"></a>
+ <a href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.refinement_of">Refinement
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="generator.html" title="Generator"><code class="computeroutput"><span class="identifier">Generator</span></code></a>
+ Generator
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">g</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">g</span></tt></span></dt>
<dd><p>
A UnaryGenerator.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">G</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">G</span></tt></span></dt>
<dd><p>
A UnaryGenerator type.
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.generator_concepts.unarygenerator.valid_expressions"></a><h6>
-<a name="id758724"></a>
- <a class="link" href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.valid_expressions">Valid
+<a name="id571815"></a>
+ <a href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.valid_expressions">Valid
Expressions</a>
</h6>
<p>
- In addition to the requirements defined in <a class="link" href="generator.html" title="Generator"><code class="computeroutput"><span class="identifier">Generator</span></code></a>, for any UnaryGenerator
+ In addition to the requirements defined in Generator, for any UnaryGenerator
the following must be met:
</p>
<div class="informaltable"><table class="table">
@@ -78,43 +82,31 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Return type
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">subject</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">subject</span></tt>
+ </p></td>
+<td><p>
Subject generator.
- </p>
- </td>
-<td>
- <p>
- <a class="link" href="generator.html" title="Generator"><code class="computeroutput"><span class="identifier">Generator</span></code></a>
- </p>
- </td>
+ </p></td>
+<td><p>
+ Generator
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.karma.reference.generator_concepts.unarygenerator.type_expressions"></a><h6>
-<a name="id758839"></a>
- <a class="link" href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.type_expressions">Type
+<a name="id571974"></a>
+ <a href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.type_expressions">Type
Expressions</a>
</h6>
<div class="informaltable"><table class="table">
@@ -123,111 +115,114 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">G</span><span class="special">::</span><span class="identifier">subject_type</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">G</span><span class="special">::</span><span class="identifier">subject_type</span></tt>
+ </p></td>
+<td><p>
The subject generator type.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_unary_generator</span><span class="special"><</span><span class="identifier">G</span><span class="special">>::</span><span class="identifier">type</span></code>
- </p>
- </td>
-<td>
- <p>
- Metafunction that evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
- if a certain type, <code class="computeroutput"><span class="identifier">G</span></code>
- is a UnaryGenerator, <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_unary_generator</span><span class="special"><</span><span class="identifier">G</span><span class="special">>::</span><span class="identifier">type</span></tt>
+ </p></td>
+<td><p>
+ Metafunction that evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
+ if a certain type, <tt class="computeroutput"><span class="identifier">G</span></tt>
+ is a UnaryGenerator, <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>
otherwise (See <a href="../../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
Boolean Constant</a>).
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.generator_concepts.unarygenerator.invariants"></a><h6>
-<a name="id759005"></a>
- <a class="link" href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.invariants">Invariants</a>
+<a name="id572201"></a>
+ Invariants
</h6>
<p>
- For any UnaryGenerator, <code class="computeroutput"><span class="identifier">G</span></code>,
+ For any UnaryGenerator, <tt class="computeroutput"><span class="identifier">G</span></tt>,
the following invariant always holds:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
-<code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_generator</span><span class="special"><</span><span class="identifier">G</span><span class="special">::</span><span class="identifier">subject_type</span><span class="special">>::</span><span class="identifier">type</span></code> evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
+<div class="itemizedlist"><ul type="disc"><li>
+<tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_generator</span><span class="special"><</span><span class="identifier">G</span><span class="special">::</span><span class="identifier">subject_type</span><span class="special">>::</span><span class="identifier">type</span></tt> evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
</li></ul></div>
<a name="spirit.karma.reference.generator_concepts.unarygenerator.models"></a><h6>
-<a name="id759090"></a>
- <a class="link" href="unarygenerator.html#spirit.karma.reference.generator_concepts.unarygenerator.models">Models</a>
+<a name="id572324"></a>
+ Models
</h6>
<p>
The following generators conform to this model:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
-<a class="link" href="../operator/kleene.html" title="Kleene Star (*a)">Kleene Star
- (unary <code class="computeroutput"><span class="special">*</span></code>)</a>,
- </li>
-<li class="listitem">
-<a class="link" href="../operator/plus.html" title="Plus (+a)">Plus (unary <code class="computeroutput"><span class="special">+</span></code>)</a> operator,
- </li>
-<li class="listitem">
-<a class="link" href="../operator/optional.html" title="Optional (-a)">Optional (unary
- <code class="computeroutput"><span class="special">-</span></code>)</a> operator,
- </li>
-<li class="listitem">
-<a class="link" href="../operator/and_predicate.html" title="And Predicate (&a)">And predicate
- (unary <code class="computeroutput"><span class="special">&</span></code>)</a> and
- <a class="link" href="../operator/not_predicate.html" title="Not Predicate (!a)">Not predicate
- (unary <code class="computeroutput"><span class="special">!</span></code>)</a> operators,
- </li>
-<li class="listitem">
-<a class="link" href="../directive/alignment.html" title="Alignment Directives (left_align[], center[], right_align[])"><code class="computeroutput"><span class="identifier">left_align</span></code></a>, <a class="link" href="../directive/alignment.html" title="Alignment Directives (left_align[], center[], right_align[])"><code class="computeroutput"><span class="identifier">center</span></code></a>, and <a class="link" href="../directive/alignment.html" title="Alignment Directives (left_align[], center[], right_align[])"><code class="computeroutput"><span class="identifier">right_align</span></code></a> directives,
- </li>
-<li class="listitem">
-<a class="link" href="../directive/repeat.html" title="Repetition Directive (repeat[])"><code class="computeroutput"><span class="identifier">repeat</span></code></a> directive,
- </li>
-<li class="listitem">
-<a class="link" href="../directive/delimit.html" title="Directives Controlling Automatic Delimiting (verbatim[], delimit[])"><code class="computeroutput"><span class="identifier">verbatim</span></code></a> directive,
- </li>
-<li class="listitem">
-<a class="link" href="../directive/delimit.html" title="Directives Controlling Automatic Delimiting (verbatim[], delimit[])"><code class="computeroutput"><span class="identifier">delimit</span></code></a> directive,
- </li>
-<li class="listitem">
-<a class="link" href="../directive/upperlower.html" title="Directives Controlling Case Sensitivity (upper[], lower[])"><code class="computeroutput"><span class="identifier">lower</span></code></a> and <a class="link" href="../directive/upperlower.html" title="Directives Controlling Case Sensitivity (upper[], lower[])"><code class="computeroutput"><span class="identifier">upper</span></code></a> directives,
- </li>
-<li class="listitem">
-<a class="link" href="../directive/maxwidth.html" title="Controlling the Maximum Field Wield (maxwidth[])"><code class="computeroutput"><span class="identifier">maxwidth</span></code></a> directive,
- </li>
-<li class="listitem">
-<a class="link" href="../directive/buffer.html" title="Temporary Output Buffering (buffer[])"><code class="computeroutput"><span class="identifier">buffer</span></code></a> directive,
- </li>
-<li class="listitem">
-<a class="link" href="../directive/omit.html" title="Consume Attribute (omit[])"><code class="computeroutput"><span class="identifier">omit</span></code></a> directive.
+<div class="itemizedlist"><ul type="disc">
+<li>
+<a href="../operator/kleene.html" title=" Kleene Star
+ (*a)">Kleene Star
+ (unary <tt class="computeroutput"><span class="special">*</span></tt>)</a>,
+ </li>
+<li>
+Plus (unary +) operator,
+ </li>
+<li>
+<a href="../operator/optional.html" title=" Optional
+ (-a)">Optional (unary
+ <tt class="computeroutput"><span class="special">-</span></tt>)</a> operator,
+ </li>
+<li>
+<a href="../operator/and_predicate.html" title=" And
+ Predicate (&a)">And predicate
+ (unary <tt class="computeroutput"><span class="special">&</span></tt>)</a> and
+ <a href="../operator/not_predicate.html" title=" Not
+ Predicate (!a)">Not predicate
+ (unary <tt class="computeroutput"><span class="special">!</span></tt>)</a> operators,
+ </li>
+<li>
+<a href="../directive/alignment.html" title=" Alignment
+ Directives (left_align[], center[], right_align[])"><tt class="computeroutput"><span class="identifier">left_align</span></tt></a>, <a href="../directive/alignment.html" title=" Alignment
+ Directives (left_align[], center[], right_align[])"><tt class="computeroutput"><span class="identifier">center</span></tt></a>, and <a href="../directive/alignment.html" title=" Alignment
+ Directives (left_align[], center[], right_align[])"><tt class="computeroutput"><span class="identifier">right_align</span></tt></a> directives,
+ </li>
+<li>
+<a href="../directive/repeat.html" title=" Repetition
+ Directive (repeat[])"><tt class="computeroutput"><span class="identifier">repeat</span></tt></a> directive,
+ </li>
+<li>
+<a href="../directive/delimit.html" title=" Directives
+ Controlling Automatic Delimiting (verbatim[], delimit[])"><tt class="computeroutput"><span class="identifier">verbatim</span></tt></a> directive,
+ </li>
+<li>
+<a href="../directive/delimit.html" title=" Directives
+ Controlling Automatic Delimiting (verbatim[], delimit[])"><tt class="computeroutput"><span class="identifier">delimit</span></tt></a> directive,
+ </li>
+<li>
+<a href="../directive/upperlower.html" title=" Directives
+ Controlling Case Sensitivity (upper[], lower[])"><tt class="computeroutput"><span class="identifier">lower</span></tt></a> and <a href="../directive/upperlower.html" title=" Directives
+ Controlling Case Sensitivity (upper[], lower[])"><tt class="computeroutput"><span class="identifier">upper</span></tt></a> directives,
+ </li>
+<li>
+<a href="../directive/maxwidth.html" title=" Controlling
+ the Maximum Field Wield (maxwidth[])"><tt class="computeroutput"><span class="identifier">maxwidth</span></tt></a> directive,
+ </li>
+<li>
+<a href="../directive/buffer.html" title=" Temporary
+ Output Buffering (buffer[])"><tt class="computeroutput"><span class="identifier">buffer</span></tt></a> directive,
+ </li>
+<li>
+<a href="../directive/omit.html" title=" Consume Attribute
+ (omit[])"><tt class="computeroutput"><span class="identifier">omit</span></tt></a> directive.
</li>
</ul></div>
<p>
- <span class="bold"><strong>FIXME</strong></span> Add more links to models of UnaryGenerator
+ <span class="bold"><b>FIXME</b></span> Add more links to models of UnaryGenerator
concept
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/karma_basics.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/karma_basics.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/karma_basics.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Basics</title>
+<title> Basics</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="generator_concepts/narygenerator.html" title="NaryGenerator">
-<link rel="next" href="char.html" title="Char">
+<link rel="previous" href="generator_concepts/narygenerator.html" title="NaryGenerator">
+<link rel="next" href="char.html" title=" Char">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,15 +22,18 @@
<div class="spirit-nav">
<a accesskey="p" href="generator_concepts/narygenerator.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="char.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Basics">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.reference.karma_basics"></a><a class="link" href="karma_basics.html" title="Basics"> Basics</a>
-</h4></div></div></div>
-<a name="spirit.karma.reference.karma_basics.lazy_argument"></a><h6>
-<a name="id762420"></a>
- <a class="link" href="karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.reference.karma_basics"></a> Basics
+</h4></div></div>
+<div></div>
+</div>
+<a name="spirit.karma.reference.karma_basics.lazy_argument"></a><h5>
+<a name="id574501"></a>
+ <a href="karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a>
- </h6>
+ </h5>
<p>
Some generators (e.g. primitives and non-terminals) may take in additional
attributes. Such generators take the form:
@@ -38,40 +41,40 @@
<pre class="programlisting"><span class="identifier">g</span><span class="special">(</span><span class="identifier">a1</span><span class="special">,</span> <span class="identifier">a2</span><span class="special">,...</span> <span class="identifier">aN</span><span class="special">)</span>
</pre>
<p>
- where <code class="computeroutput"><span class="identifier">g</span></code> is a generator.
+ where <tt class="computeroutput"><span class="identifier">g</span></tt> is a generator.
Each of the arguments (a1...aN) can either be an immediate value, or a
- function, <code class="computeroutput"><span class="identifier">f</span></code>, with signature:
+ function, <tt class="computeroutput"><span class="identifier">f</span></tt>, with signature:
</p>
<pre class="programlisting"><span class="identifier">T</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">)</span>
</pre>
<p>
- where <code class="computeroutput"><span class="identifier">T</span></code>, the function's
- return value, is compatible with the argument type expected and <code class="computeroutput"><span class="identifier">Context</span></code> is the generators's Context type
- (The first argument is <code class="computeroutput"><span class="identifier">unused</span></code>
- to make the <code class="computeroutput"><span class="identifier">Context</span></code> the
- second argument. This is done for uniformity with <a class="link" href="../tutorials/semantic_actions.html" title="Semantic Actions">Semantic
+ where <tt class="computeroutput"><span class="identifier">T</span></tt>, the function's
+ return value, is compatible with the argument type expected and <tt class="computeroutput"><span class="identifier">Context</span></tt> is the generators's Context type
+ (The first argument is <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ to make the <tt class="computeroutput"><span class="identifier">Context</span></tt> the
+ second argument. This is done for uniformity with <a href="../tutorials/semantic_actions.html" title="Semantic Actions">Semantic
Actions</a>).
</p>
-<a name="spirit.karma.reference.karma_basics.character_encoding_namespace"></a><h6>
-<a name="id762561"></a>
- <a class="link" href="karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+<a name="spirit.karma.reference.karma_basics.character_encoding_namespace"></a><h5>
+<a name="id574721"></a>
+ <a href="karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a>
- </h6>
+ </h5>
<p>
- Some generators need to know which character set a <code class="computeroutput"><span class="keyword">char</span></code>
- or <code class="computeroutput"><span class="keyword">wchar_t</span></code> is operating on.
- For example, the <code class="computeroutput"><span class="identifier">alnum</span></code>
+ Some generators need to know which character set a <tt class="computeroutput"><span class="keyword">char</span></tt>
+ or <tt class="computeroutput"><span class="keyword">wchar_t</span></tt> is operating on.
+ For example, the <tt class="computeroutput"><span class="identifier">alnum</span></tt>
generator works differently with ISO8859.1 and ASCII encodings. Where necessary,
Spirit encodes (tags) the generator with the character set.
</p>
<p>
We have a namespace for each character set Spirit will be supporting. That
- includes <code class="computeroutput"><span class="identifier">ascii</span></code>, <code class="computeroutput"><span class="identifier">iso8859_1</span></code>, <code class="computeroutput"><span class="identifier">standard</span></code>
- and <code class="computeroutput"><span class="identifier">standard_wide</span></code> (and
- in the future, <code class="computeroutput"><span class="identifier">unicode</span></code>).
+ includes <tt class="computeroutput"><span class="identifier">ascii</span></tt>, <tt class="computeroutput"><span class="identifier">iso8859_1</span></tt>, <tt class="computeroutput"><span class="identifier">standard</span></tt>
+ and <tt class="computeroutput"><span class="identifier">standard_wide</span></tt> (and
+ in the future, <tt class="computeroutput"><span class="identifier">unicode</span></tt>).
In each of the character encoding namespaces, we place tagged versions
- of generators such as <code class="computeroutput"><span class="identifier">alnum</span></code>,
- <code class="computeroutput"><span class="identifier">space</span></code> etc.
+ of generators such as <tt class="computeroutput"><span class="identifier">alnum</span></tt>,
+ <tt class="computeroutput"><span class="identifier">space</span></tt> etc.
</p>
<p>
Example:
@@ -81,17 +84,17 @@
<p>
Namespaces:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
boost::spirit::ascii
</li>
-<li class="listitem">
+<li>
boost::spirit::iso8859_1
</li>
-<li class="listitem">
+<li>
boost::spirit::standard
</li>
-<li class="listitem">
+<li>
boost::spirit::standard_wide
</li>
</ul></div>
@@ -99,24 +102,24 @@
For ease of use, the components in this namespaces are also brought into
the karma sub-namespaces with the same names:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
boost::spirit::karma::ascii
</li>
-<li class="listitem">
+<li>
boost::spirit::karma::iso8859_1
</li>
-<li class="listitem">
+<li>
boost::spirit::karma::standard
</li>
-<li class="listitem">
+<li>
boost::spirit::karma::standard_wide
</li>
</ul></div>
-<a name="spirit.karma.reference.karma_basics.examples"></a><h6>
-<a name="id762744"></a>
- <a class="link" href="karma_basics.html#spirit.karma.reference.karma_basics.examples">Examples</a>
- </h6>
+<a name="spirit.karma.reference.karma_basics.examples"></a><h5>
+<a name="id574998"></a>
+ Examples
+ </h5>
<p>
All sections in the reference present some real world examples. The examples
use a common test harness to keep the example code as minimal and direct
@@ -209,29 +212,30 @@
</p>
<p>
</p>
-<a name="spirit.karma.reference.karma_basics.models"></a><h6>
-<a name="id764939"></a>
- <a class="link" href="karma_basics.html#spirit.karma.reference.karma_basics.models">Models</a>
- </h6>
+<a name="spirit.karma.reference.karma_basics.models"></a><h5>
+<a name="id576841"></a>
+ Models
+ </h5>
<p>
Predefined models include:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
any literal string, e.g. "Hello, World",
</li>
-<li class="listitem">
+<li>
a pointer/reference to a null-terminated array of characters
</li>
-<li class="listitem">
- a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">Char</span><span class="special">></span></code>
+<li>
+ a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">Char</span><span class="special">></span></tt>
</li>
</ul></div>
<p>
- The namespace <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></code> is open for users to provide their
+ The namespace <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></tt> is open for users to provide their
own specializations. The customization points implemented by <span class="emphasis"><em>Spirit.Karma</em></span>
usable to customize the behavior of generators are described in the section
- <a class="link" href="../../abstracts/customize.html" title="Customization of Spirit's Attribute Handling">Customization of Attribute Handling</a>.
+ <a href="../../advanced/customize.html" title=" Customization of Spirit's
+ Attribute Handling">Customization of Attribute Handling</a>.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/numeric.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/numeric.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/numeric.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Numeric</title>
+<title> Numeric</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="string/string.html" title="String (string, lit)">
-<link rel="next" href="numeric/unsigned_int.html" title="Unsigned Integer Number Generators (uint_, etc.)">
+<link rel="previous" href="string/string.html" title=" String (string, lit)">
+<link rel="next" href="numeric/unsigned_int.html" title=" Unsigned
+ Integer Number Generators (uint_,
+ etc.)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,22 +24,25 @@
<div class="spirit-nav">
<a accesskey="p" href="string/string.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="numeric/unsigned_int.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Numeric">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.reference.numeric"></a><a class="link" href="numeric.html" title="Numeric"> Numeric</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.reference.numeric"></a> Numeric
+</h4></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section"><a href="numeric/unsigned_int.html"> Unsigned
- Integer Number Generators (<code class="computeroutput"><span class="identifier">uint_</span></code>,
+ Integer Number Generators (<tt class="computeroutput"><span class="identifier">uint_</span></tt>,
etc.)</a></span></dt>
<dt><span class="section"><a href="numeric/signed_int.html"> Signed
- Integer Number Generators (<code class="computeroutput"><span class="identifier">int_</span></code>,
+ Integer Number Generators (<tt class="computeroutput"><span class="identifier">int_</span></tt>,
etc.)</a></span></dt>
<dt><span class="section"><a href="numeric/real_number.html"> Real
- Number Generators (<code class="computeroutput"><span class="identifier">float_</span></code>,
- <code class="computeroutput"><span class="identifier">double_</span></code>, etc.)</a></span></dt>
+ Number Generators (<tt class="computeroutput"><span class="identifier">float_</span></tt>,
+ <tt class="computeroutput"><span class="identifier">double_</span></tt>, etc.)</a></span></dt>
<dt><span class="section"><a href="numeric/boolean.html"> Boolean
- Generators (<code class="computeroutput"><span class="identifier">bool_</span></code>)</a></span></dt>
+ Generators (<tt class="computeroutput"><span class="identifier">bool_</span></tt>)</a></span></dt>
</dl></div>
<p>
The library includes a couple of predefined objects for generating booleans,
@@ -51,21 +56,22 @@
<p>
The numeric parsers are fine tuned (employing loop unrolling and extensive
template metaprogramming) with exceptional performance that rivals the
- low level C functions such as <code class="computeroutput"><span class="identifier">ltoa</span></code>,
- <code class="computeroutput"><span class="identifier">ssprintf</span></code>, and <code class="computeroutput"><span class="identifier">_gcvt</span></code>. Benchmarks reveal up to 2X speed
- over the C counterparts (see here: <a class="link" href="../performance_measurements/numeric_performance.html" title="Performance of Numeric Generators">Performance
+ low level C functions such as <tt class="computeroutput"><span class="identifier">ltoa</span></tt>,
+ <tt class="computeroutput"><span class="identifier">ssprintf</span></tt>, and <tt class="computeroutput"><span class="identifier">_gcvt</span></tt>. Benchmarks reveal up to 2X speed
+ over the C counterparts (see here: <a href="../performance_measurements/numeric_performance.html" title="
+ Performance of Numeric Generators">Performance
of Numeric Generators</a>). This goes to show that you can write extremely
tight generic C++ code that rivals, if not surpasses C.
</p>
-<a name="spirit.karma.reference.numeric.module_header"></a><h6>
-<a name="id780153"></a>
- <a class="link" href="numeric.html#spirit.karma.reference.numeric.module_header">Module Header</a>
- </h6>
+<a name="spirit.karma.reference.numeric.module_header"></a><h5>
+<a name="id590432"></a>
+ Module Header
+ </h5>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/numeric.hpp>
</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">karma_numeric</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/boolean.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/boolean.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/boolean.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Boolean Generators (bool_)</title>
+<title> Boolean
+ Generators (bool_)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../numeric.html" title="Numeric">
-<link rel="prev" href="real_number.html" title="Real Number Generators (float_, double_, etc.)">
+<link rel="up" href="../numeric.html" title=" Numeric">
+<link rel="previous" href="real_number.html" title=" Real
+ Number Generators (float_,
+ double_, etc.)">
<link rel="next" href="../stream.html" title="Stream">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,82 +25,76 @@
<div class="spirit-nav">
<a accesskey="p" href="real_number.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../numeric.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../stream.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Boolean Generators (bool_)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.numeric.boolean"></a><a class="link" href="boolean.html" title="Boolean Generators (bool_)"> Boolean
- Generators (<code class="computeroutput"><span class="identifier">bool_</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.numeric.boolean"></a><a href="boolean.html" title=" Boolean
+ Generators (bool_)"> Boolean
+ Generators (<tt class="computeroutput"><span class="identifier">bool_</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.numeric.boolean.description"></a><h6>
-<a name="id798728"></a>
- <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.description">Description</a>
+<a name="id610648"></a>
+ Description
</h6>
<p>
- As you might expect, the <code class="computeroutput"><span class="identifier">bool_generator</span></code>
- can generate output from boolean values. The <code class="computeroutput"><span class="identifier">bool_generator</span></code>
+ As you might expect, the <tt class="computeroutput"><span class="identifier">bool_generator</span></tt>
+ can generate output from boolean values. The <tt class="computeroutput"><span class="identifier">bool_generator</span></tt>
generator can be used to generate output from ordinary primitive C/C++
- <code class="computeroutput"><span class="keyword">bool</span></code> values or user defined
+ <tt class="computeroutput"><span class="keyword">bool</span></tt> values or user defined
boolean types as long as the type follows certain expression requirements
- (for more information about the requirements, see <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.additional_requirements">below</a>)).
- The <code class="computeroutput"><span class="identifier">bool_generator</span></code> is
+ (for more information about the requirements, see below)).
+ The <tt class="computeroutput"><span class="identifier">bool_generator</span></tt> is
a template class. Template parameters fine tune its behavior.
</p>
<a name="spirit.karma.reference.numeric.boolean.header"></a><h6>
-<a name="id799874"></a>
- <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.header">Header</a>
+<a name="id610742"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/numeric/bool.hpp>
</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">karma_bool</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.numeric.boolean.namespace"></a><h6>
-<a name="id799949"></a>
- <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.namespace">Namespace</a>
+<a name="id610856"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lit</span> <span class="comment">// alias:
- boost::spirit::karma::lit</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">bool_</span> <span class="comment">// alias:
- boost::spirit::karma::bool_</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">true_</span> <span class="comment">// alias:
- boost::spirit::karma::true_</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">false_</span> <span class="comment">// alias:
- boost::spirit::karma::false_</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lit</span> <span class="comment">// alias:
+ boost::spirit::karma::lit</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">bool_</span> <span class="comment">// alias:
+ boost::spirit::karma::bool_</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">true_</span> <span class="comment">// alias:
+ boost::spirit::karma::true_</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">false_</span> <span class="comment">// alias:
+ boost::spirit::karma::false_</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- <code class="computeroutput"><span class="identifier">lit</span></code> is reused by the
- <a class="link" href="../string.html" title="String">String Generators</a>,
- the <a class="link" href="../char.html" title="Char">Character Generators</a>,
+<tr><td colspan="2" align="left" valign="top"><p>
+ <tt class="computeroutput"><span class="identifier">lit</span></tt> is reused by the
+ String Generators,
+ the Character Generators,
and the Numeric Generators. In general, a char generator is created
when you pass in a character, a string generator is created when you
pass in a string, and a numeric generator is created when you use a
@@ -105,8 +102,8 @@
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.numeric.boolean.synopsis"></a><h6>
-<a name="id800166"></a>
- <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.synopsis">Synopsis</a>
+<a name="id611151"></a>
+ Synopsis
</h6>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span>
<span class="keyword">typename</span> <span class="identifier">B</span>
@@ -114,8 +111,8 @@
<span class="keyword">struct</span> <span class="identifier">bool_generator</span><span class="special">;</span>
</pre>
<a name="spirit.karma.reference.numeric.boolean.template_parameters"></a><h6>
-<a name="id800236"></a>
- <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.template_parameters">Template
+<a name="id611246"></a>
+ <a href="boolean.html#spirit.karma.reference.numeric.boolean.template_parameters">Template
parameters</a>
</h6>
<div class="informaltable"><table class="table">
@@ -125,97 +122,79 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Parameter
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Default
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">B</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">B</span></tt>
+ </p></td>
+<td><p>
The boolean base type of the boolean generator.
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">bool</span></code>
- </p>
- </td>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">bool</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Policies</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Policies</span></tt>
+ </p></td>
+<td><p>
The policies to use while converting the boolean.
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">bool_policies</span><span class="special"><</span><span class="identifier">B</span><span class="special">></span></code>
- </p>
- </td>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">bool_policies</span><span class="special"><</span><span class="identifier">B</span><span class="special">></span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.numeric.boolean.model_of"></a><h6>
-<a name="id800376"></a>
- <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.model_of">Model
+<a name="id611426"></a>
+ <a href="boolean.html#spirit.karma.reference.numeric.boolean.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>
+ PrimitiveGenerator
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">b</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">b</span></tt></span></dt>
<dd><p>
- Boolean literal, or a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
- Argument</a> that evaluates to a boolean value of type <code class="computeroutput"><span class="identifier">B</span></code>
+ Boolean literal, or a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ Argument</a> that evaluates to a boolean value of type <tt class="computeroutput"><span class="identifier">B</span></tt>
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">B</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">B</span></tt></span></dt>
<dd><p>
- Type of <code class="computeroutput"><span class="identifier">b</span></code>: any type
- usable as a boolean, or in case of a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ Type of <tt class="computeroutput"><span class="identifier">b</span></tt>: any type
+ usable as a boolean, or in case of a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a>, its return value
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.numeric.boolean.expression_semantics"></a><h6>
-<a name="id800482"></a>
- <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.expression_semantics">Expression
+<a name="id611578"></a>
+ <a href="boolean.html#spirit.karma.reference.numeric.boolean.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>.
+ is not defined in PrimitiveGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -223,110 +202,86 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate the boolean literal <code class="computeroutput"><span class="identifier">b</span></code>
- using the default formatting (<code class="computeroutput"><span class="keyword">false</span></code>
- is generated as <code class="computeroutput"><span class="string">"false"</span></code>,
- and <code class="computeroutput"><span class="keyword">true</span></code> is generated
- as <code class="computeroutput"><span class="string">"true"</span></code>).
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Generate the boolean literal <tt class="computeroutput"><span class="identifier">b</span></tt>
+ using the default formatting (<tt class="computeroutput"><span class="keyword">false</span></tt>
+ is generated as <tt class="computeroutput"><span class="string">"false"</span></tt>,
+ and <tt class="computeroutput"><span class="keyword">true</span></tt> is generated
+ as <tt class="computeroutput"><span class="string">"true"</span></tt>).
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">bool_</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">bool_</span></tt>
+ </p></td>
+<td><p>
Generate the boolean value provided by a mandatory attribute
- using the default formatting (<code class="computeroutput"><span class="keyword">false</span></code>
- is generated as <code class="computeroutput"><span class="string">"false"</span></code>,
- and <code class="computeroutput"><span class="keyword">true</span></code> is generated
- as <code class="computeroutput"><span class="string">"true"</span></code>).
+ using the default formatting (<tt class="computeroutput"><span class="keyword">false</span></tt>
+ is generated as <tt class="computeroutput"><span class="string">"false"</span></tt>,
+ and <tt class="computeroutput"><span class="keyword">true</span></tt> is generated
+ as <tt class="computeroutput"><span class="string">"true"</span></tt>).
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">bool_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">bool_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Generate the booelan value provided by the immediate literal
value the generator is initialized from using the default formatting
- (<code class="computeroutput"><span class="keyword">false</span></code> is generated
- as <code class="computeroutput"><span class="string">"false"</span></code>,
- and <code class="computeroutput"><span class="keyword">true</span></code> is generated
- as <code class="computeroutput"><span class="string">"true"</span></code>).
+ (<tt class="computeroutput"><span class="keyword">false</span></tt> is generated
+ as <tt class="computeroutput"><span class="string">"false"</span></tt>,
+ and <tt class="computeroutput"><span class="keyword">true</span></tt> is generated
+ as <tt class="computeroutput"><span class="string">"true"</span></tt>).
If this generator has an associated attribute it succeeds only
as long as the attribute is equal to the immediate literal (unless
the underlying output stream reports an error). Otherwise this
generator fails and does not generate any output.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">true_</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="string">"true"</span></code>.
+<td><p>
+ <tt class="computeroutput"><span class="identifier">true_</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="string">"true"</span></tt>.
If this generator has an associated attribute it succeeds only
- as long as the attribute is <code class="computeroutput"><span class="keyword">true</span></code>
+ as long as the attribute is <tt class="computeroutput"><span class="keyword">true</span></tt>
as well (unless the underlying output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">false_</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate <code class="computeroutput"><span class="string">"false"</span></code>.
+<td><p>
+ <tt class="computeroutput"><span class="identifier">false_</span></tt>
+ </p></td>
+<td><p>
+ Generate <tt class="computeroutput"><span class="string">"false"</span></tt>.
If this generator has an associated attribute it succeeds only
- as long as the attribute is <code class="computeroutput"><span class="keyword">false</span></code>
+ as long as the attribute is <tt class="computeroutput"><span class="keyword">false</span></tt>
as well (unless the underlying output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<p>
- All generators listed in the table above (except <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>) are predefined specializations of the
- <code class="computeroutput"><span class="identifier">bool_generator</span><span class="special"><</span><span class="identifier">B</span><span class="special">,</span> <span class="identifier">Policies</span><span class="special">></span></code>
+ All generators listed in the table above (except <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>) are predefined specializations of the
+ <tt class="computeroutput"><span class="identifier">bool_generator</span><span class="special"><</span><span class="identifier">B</span><span class="special">,</span> <span class="identifier">Policies</span><span class="special">></span></tt>
basic boolean generator type described below. It is possible to directly
use this type to create boolean generators using a wide range of formatting
options.
@@ -337,21 +292,17 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">bool_generator</span><span class="special"><</span>
@@ -359,18 +310,16 @@
<span class="special">>()</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
- Generate the boolean of type <code class="computeroutput"><span class="identifier">B</span></code>
- provided by a mandatory attribute using the specified <code class="computeroutput"><span class="identifier">Policies</span></code> This generator never
+</td>
+<td><p>
+ Generate the boolean of type <tt class="computeroutput"><span class="identifier">B</span></tt>
+ provided by a mandatory attribute using the specified <tt class="computeroutput"><span class="identifier">Policies</span></tt> This generator never
fails (unless the underlying output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">bool_generator</span><span class="special"><</span>
@@ -378,49 +327,49 @@
<span class="special">>()</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
- Generate the boolean of type <code class="computeroutput"><span class="identifier">B</span></code>
+</td>
+<td><p>
+ Generate the boolean of type <tt class="computeroutput"><span class="identifier">B</span></tt>
provided by the immediate literal value the generator is initialized
- from, using the specified <code class="computeroutput"><span class="identifier">Policies</span></code>.
+ from, using the specified <tt class="computeroutput"><span class="identifier">Policies</span></tt>.
If this generator has an associated attribute it succeeds only
as long as the attribute is equal to the immediate literal (unless
the underlying output stream reports an error). Otherwise this
generator fails and does not generate any output.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- All boolean generators properly respect the <a class="link" href="../directive/upperlower.html" title="Directives Controlling Case Sensitivity (upper[], lower[])"><code class="computeroutput"><span class="identifier">upper</span></code></a> and <a class="link" href="../directive/upperlower.html" title="Directives Controlling Case Sensitivity (upper[], lower[])"><code class="computeroutput"><span class="identifier">lower</span></code></a> directives.
+<tr><td colspan="2" align="left" valign="top"><p>
+ All boolean generators properly respect the <a href="../directive/upperlower.html" title=" Directives
+ Controlling Case Sensitivity (upper[], lower[])"><tt class="computeroutput"><span class="identifier">upper</span></tt></a> and <a href="../directive/upperlower.html" title=" Directives
+ Controlling Case Sensitivity (upper[], lower[])"><tt class="computeroutput"><span class="identifier">lower</span></tt></a> directives.
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.numeric.boolean.additional_requirements"></a><h6>
-<a name="id801043"></a>
- <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.additional_requirements">Additional
+<a name="id612393"></a>
+ <a href="boolean.html#spirit.karma.reference.numeric.boolean.additional_requirements">Additional
Requirements</a>
</h6>
<p>
The following lists enumerate the requirements which must be met in order
- to use a certain type <code class="computeroutput"><span class="identifier">B</span></code>
- to instantiate and use a <code class="computeroutput"><span class="identifier">bool_generator</span><span class="special"><</span><span class="identifier">B</span><span class="special">,</span> <span class="identifier">Policies</span><span class="special">></span></code>.
+ to use a certain type <tt class="computeroutput"><span class="identifier">B</span></tt>
+ to instantiate and use a <tt class="computeroutput"><span class="identifier">bool_generator</span><span class="special"><</span><span class="identifier">B</span><span class="special">,</span> <span class="identifier">Policies</span><span class="special">></span></tt>.
</p>
<p>
- The type <code class="computeroutput"><span class="identifier">B</span></code>:
+ The type <tt class="computeroutput"><span class="identifier">B</span></tt>:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
- must be (safely) convertible to <code class="computeroutput"><span class="keyword">bool</span></code>
+<div class="itemizedlist"><ul type="disc"><li>
+ must be (safely) convertible to <tt class="computeroutput"><span class="keyword">bool</span></tt>
</li></ul></div>
<a name="spirit.karma.reference.numeric.boolean.attributes"></a><h6>
-<a name="id801121"></a>
- <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.attributes">Attributes</a>
+<a name="id612510"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -428,61 +377,45 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">bool_</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">bool_</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">bool_</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">bool</span></code>, attribute
+<td><p>
+ <tt class="computeroutput"><span class="identifier">bool_</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">bool</span></tt>, attribute
is mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">bool_</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">bool</span></code>, attribute
+<td><p>
+ <tt class="computeroutput"><span class="identifier">bool_</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">bool</span></tt>, attribute
is optional, if it is supplied, the generator compares the attribute
- with <code class="computeroutput"><span class="identifier">b</span></code> and succeeds
+ with <tt class="computeroutput"><span class="identifier">b</span></tt> and succeeds
only if both are equal, failing otherwise.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">bool_generator</span><span class="special"><</span>
@@ -490,17 +423,15 @@
<span class="special">>()</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">B</span></code>, attribute
+</td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">B</span></tt>, attribute
is mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">bool_generator</span><span class="special"><</span>
@@ -508,40 +439,38 @@
<span class="special">>()(</span><span class="identifier">b</span><span class="special">)</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">B</span></code>, attribute
+</td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">B</span></tt>, attribute
is optional, if it is supplied, the generator compares the attribute
- with <code class="computeroutput"><span class="identifier">b</span></code> and succeeds
+ with <tt class="computeroutput"><span class="identifier">b</span></tt> and succeeds
only if both are equal, failing otherwise.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- In addition to their usual attribute of type <code class="computeroutput"><span class="identifier">B</span></code>
- all listed generators accept an instance of a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">B</span><span class="special">></span></code> as well. If the <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></code> is initialized (holds a value)
- the generators behave as if their attribute was an instance of <code class="computeroutput"><span class="identifier">B</span></code> and emit the value stored in the
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></code>.
+<tr><td colspan="2" align="left" valign="top"><p>
+ In addition to their usual attribute of type <tt class="computeroutput"><span class="identifier">B</span></tt>
+ all listed generators accept an instance of a <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">B</span><span class="special">></span></tt> as well. If the <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></tt> is initialized (holds a value)
+ the generators behave as if their attribute was an instance of <tt class="computeroutput"><span class="identifier">B</span></tt> and emit the value stored in the
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></tt>.
Otherwise the generators will fail.
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.numeric.boolean.boolean_formatting_policies"></a><h6>
-<a name="id801496"></a>
- <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.boolean_formatting_policies">Boolean
+<a name="id613028"></a>
+ <a href="boolean.html#spirit.karma.reference.numeric.boolean.boolean_formatting_policies">Boolean
Formatting Policies</a>
</h6>
<p>
If special formatting of a boolean is needed, overload the policy class
- <code class="computeroutput"><span class="identifier">bool_policies</span><span class="special"><</span><span class="identifier">B</span><span class="special">></span></code>
- and use it as a template parameter to the <code class="computeroutput"><span class="identifier">bool_generator</span><span class="special"><></span></code> boolean generator. For instance:
+ <tt class="computeroutput"><span class="identifier">bool_policies</span><span class="special"><</span><span class="identifier">B</span><span class="special">></span></tt>
+ and use it as a template parameter to the <tt class="computeroutput"><span class="identifier">bool_generator</span><span class="special"><></span></tt> boolean generator. For instance:
</p>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">special_bool_policy</span> <span class="special">:</span> <span class="identifier">karma</span><span class="special">::</span><span class="identifier">bool_policies</span><span class="special"><></span>
<span class="special">{</span>
@@ -561,15 +490,15 @@
</span><span class="identifier">karma</span><span class="special">::</span><span class="identifier">generate</span><span class="special">(</span><span class="identifier">sink</span><span class="special">,</span> <span class="identifier">backwards_bool</span><span class="special">(</span><span class="keyword">false</span><span class="special">));</span> <span class="comment">// will output: uert
</span></pre>
<p>
- The template parameter <code class="computeroutput"><span class="identifier">B</span></code>
+ The template parameter <tt class="computeroutput"><span class="identifier">B</span></tt>
should be the type to be formatted using the overloaded policy type.
- At the same time <code class="computeroutput"><span class="identifier">B</span></code> will
+ At the same time <tt class="computeroutput"><span class="identifier">B</span></tt> will
be used as the attribute type of the created real number generator. The
- default for <code class="computeroutput"><span class="identifier">B</span></code> is <code class="computeroutput"><span class="keyword">bool</span></code>.
+ default for <tt class="computeroutput"><span class="identifier">B</span></tt> is <tt class="computeroutput"><span class="keyword">bool</span></tt>.
</p>
<a name="spirit.karma.reference.numeric.boolean.booelan_formatting_policy_expression_semantics"></a><h6>
-<a name="id801918"></a>
- <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.booelan_formatting_policy_expression_semantics">Booelan
+<a name="id613628"></a>
+ <a href="boolean.html#spirit.karma.reference.numeric.boolean.booelan_formatting_policy_expression_semantics">Booelan
Formatting Policy Expression Semantics</a>
</h6>
<p>
@@ -581,21 +510,17 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Inserter</span>
@@ -606,14 +531,14 @@
</pre>
<p>
</p>
- </td>
+</td>
<td>
- <p>
+<p>
This is the main function used to generate the output for a boolean.
It is called by the boolean generator in order to perform the
conversion. In theory all of the work can be implemented here,
but it is the easiest to use existing functionality provided
- by the type specified by the template parameter <code class="computeroutput"><span class="identifier">Inserter</span></code>. The default implementation
+ by the type specified by the template parameter <tt class="computeroutput"><span class="identifier">Inserter</span></tt>. The default implementation
of this functions is:
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Inserter</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">OutputIterator</span>
@@ -625,22 +550,22 @@
<span class="special">}</span>
</pre>
<p>
- <code class="computeroutput"><span class="identifier">sink</span></code>: is the
+ <tt class="computeroutput"><span class="identifier">sink</span></tt>: is the
output iterator to use for generation
</p>
- <p>
- <code class="computeroutput"><span class="identifier">b</span></code>: is the boolean
+<p>
+ <tt class="computeroutput"><span class="identifier">b</span></tt>: is the boolean
to convert
</p>
- <p>
- <code class="computeroutput"><span class="identifier">p</span></code>: the instance
+<p>
+ <tt class="computeroutput"><span class="identifier">p</span></tt>: the instance
of the policy type used to instantiate this real number generator.
</p>
- </td>
+</td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">CharEncoding</span><span class="special">,</span>
@@ -650,36 +575,36 @@
</pre>
<p>
</p>
- </td>
+</td>
<td>
- <p>
- This function is called to generate the boolean if it is <code class="computeroutput"><span class="keyword">false</span></code>.
+<p>
+ This function is called to generate the boolean if it is <tt class="computeroutput"><span class="keyword">false</span></tt>.
</p>
- <p>
- <code class="computeroutput"><span class="identifier">sink</span></code>: is the
+<p>
+ <tt class="computeroutput"><span class="identifier">sink</span></tt>: is the
output iterator to use for generation
</p>
- <p>
- <code class="computeroutput"><span class="identifier">b</span></code>: The boolean
- to convert (the value is <code class="computeroutput"><span class="keyword">false</span></code>).
- </p>
- <p>
- The template parameters <code class="computeroutput"><span class="identifier">CharEncoding</span></code>
- and <code class="computeroutput"><span class="identifier">Tag</span></code> are either
- of the type <code class="computeroutput"><span class="identifier">unused_type</span></code>
+<p>
+ <tt class="computeroutput"><span class="identifier">b</span></tt>: The boolean
+ to convert (the value is <tt class="computeroutput"><span class="keyword">false</span></tt>).
+ </p>
+<p>
+ The template parameters <tt class="computeroutput"><span class="identifier">CharEncoding</span></tt>
+ and <tt class="computeroutput"><span class="identifier">Tag</span></tt> are either
+ of the type <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
or describe the character class and conversion to be applied
- to any output possibly influenced by either the <code class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></code>
- or <code class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></code>
+ to any output possibly influenced by either the <tt class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></tt>
+ or <tt class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></tt>
directives.
</p>
- <p>
+<p>
The return value defines the outcome of the whole generator.
</p>
- </td>
+</td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">CharEncoding</span><span class="special">,</span>
@@ -689,52 +614,52 @@
</pre>
<p>
</p>
- </td>
+</td>
<td>
- <p>
- This function is called to generate the boolean if it is <code class="computeroutput"><span class="keyword">true</span></code>.
+<p>
+ This function is called to generate the boolean if it is <tt class="computeroutput"><span class="keyword">true</span></tt>.
</p>
- <p>
- <code class="computeroutput"><span class="identifier">sink</span></code>: is the
+<p>
+ <tt class="computeroutput"><span class="identifier">sink</span></tt>: is the
output iterator to use for generation
</p>
- <p>
- <code class="computeroutput"><span class="identifier">b</span></code>: The boolean
- to convert (the value is <code class="computeroutput"><span class="keyword">true</span></code>).
- </p>
- <p>
- The template parameters <code class="computeroutput"><span class="identifier">CharEncoding</span></code>
- and <code class="computeroutput"><span class="identifier">Tag</span></code> are either
- of the type <code class="computeroutput"><span class="identifier">unused_type</span></code>
+<p>
+ <tt class="computeroutput"><span class="identifier">b</span></tt>: The boolean
+ to convert (the value is <tt class="computeroutput"><span class="keyword">true</span></tt>).
+ </p>
+<p>
+ The template parameters <tt class="computeroutput"><span class="identifier">CharEncoding</span></tt>
+ and <tt class="computeroutput"><span class="identifier">Tag</span></tt> are either
+ of the type <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
or describe the character class and conversion to be applied
- to any output possibly influenced by either the <code class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></code>
- or <code class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></code>
+ to any output possibly influenced by either the <tt class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></tt>
+ or <tt class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></tt>
directives.
</p>
- <p>
+<p>
The return value defines the outcome of the whole generator.
</p>
- </td>
+</td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.numeric.boolean.complexity"></a><h6>
-<a name="id802866"></a>
- <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.complexity">Complexity</a>
+<a name="id614749"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- O(N), where <code class="computeroutput"><span class="identifier">N</span></code> is
+ O(N), where <tt class="computeroutput"><span class="identifier">N</span></tt> is
the number of characters needed to represent the generated boolean.
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.karma.reference.numeric.boolean.example"></a><h6>
-<a name="id802897"></a>
- <a class="link" href="boolean.html#spirit.karma.reference.numeric.boolean.example">Example</a>
+<a name="id614798"></a>
+ Example
</h6>
<p>
Some includes:
@@ -812,7 +737,7 @@
<p>
</p>
<p>
- Basic usage of an <code class="computeroutput"><span class="identifier">bool_</span></code>
+ Basic usage of an <tt class="computeroutput"><span class="identifier">bool_</span></tt>
generator:
</p>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/real_number.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/real_number.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/real_number.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,18 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Real Number Generators (float_, double_, etc.)</title>
+<title> Real
+ Number Generators (float_,
+ double_, etc.)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../numeric.html" title="Numeric">
-<link rel="prev" href="signed_int.html" title="Signed Integer Number Generators (int_, etc.)">
-<link rel="next" href="boolean.html" title="Boolean Generators (bool_)">
+<link rel="up" href="../numeric.html" title=" Numeric">
+<link rel="previous" href="signed_int.html" title=" Signed
+ Integer Number Generators (int_,
+ etc.)">
+<link rel="next" href="boolean.html" title=" Boolean
+ Generators (bool_)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,83 +27,78 @@
<div class="spirit-nav">
<a accesskey="p" href="signed_int.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../numeric.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="boolean.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Real Number Generators (float_, double_, etc.)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.numeric.real_number"></a><a class="link" href="real_number.html" title="Real Number Generators (float_, double_, etc.)"> Real
- Number Generators (<code class="computeroutput"><span class="identifier">float_</span></code>,
- <code class="computeroutput"><span class="identifier">double_</span></code>, etc.)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.numeric.real_number"></a><a href="real_number.html" title=" Real
+ Number Generators (float_,
+ double_, etc.)"> Real
+ Number Generators (<tt class="computeroutput"><span class="identifier">float_</span></tt>,
+ <tt class="computeroutput"><span class="identifier">double_</span></tt>, etc.)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.numeric.real_number.description"></a><h6>
-<a name="id789693"></a>
- <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.description">Description</a>
+<a name="id601771"></a>
+ Description
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">real_generator</span></code> can
+ The <tt class="computeroutput"><span class="identifier">real_generator</span></tt> can
generate real numbers of arbitrary length and size limited by its template
- parameter, <code class="computeroutput"><span class="identifier">Num</span></code>. The numeric
- base type <code class="computeroutput"><span class="identifier">Num</span></code> can be
+ parameter, <tt class="computeroutput"><span class="identifier">Num</span></tt>. The numeric
+ base type <tt class="computeroutput"><span class="identifier">Num</span></tt> can be
a user defined numeric type such as fixed_point (fixed point reals) and
bignum (unlimited precision numbers) as long as the type follows certain
expression requirements (for more information about the requirements,
- see <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.additional_requirements">below</a>).
+ see below).
</p>
<a name="spirit.karma.reference.numeric.real_number.header"></a><h6>
-<a name="id789736"></a>
- <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.header">Header</a>
+<a name="id601854"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/numeric/real.hpp>
</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">karma_real</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.numeric.real_number.namespace"></a><h6>
-<a name="id789810"></a>
- <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.namespace">Namespace</a>
+<a name="id601970"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lit</span> <span class="comment">// alias:
- boost::spirit::karma::lit</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">float_</span> <span class="comment">// alias:
- boost::spirit::karma::float_</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">double_</span> <span class="comment">//
- alias: boost::spirit::karma::double_</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">long_double</span> <span class="comment">//
- alias: boost::spirit::karma::long_double</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lit</span> <span class="comment">// alias:
+ boost::spirit::karma::lit</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">float_</span> <span class="comment">// alias:
+ boost::spirit::karma::float_</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">double_</span> <span class="comment">//
+ alias: boost::spirit::karma::double_</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">long_double</span> <span class="comment">//
+ alias: boost::spirit::karma::long_double</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- <code class="computeroutput"><span class="identifier">lit</span></code> is reused by the
- <a class="link" href="../string.html" title="String">String Generators</a>,
- the <a class="link" href="../char.html" title="Char">Character Generators</a>,
+<tr><td colspan="2" align="left" valign="top"><p>
+ <tt class="computeroutput"><span class="identifier">lit</span></tt> is reused by the
+ String Generators,
+ the Character Generators,
and the Numeric Generators. In general, a char generator is created
when you pass in a character, a string generator is created when you
pass in a string, and a numeric generator is created when you use a
@@ -106,15 +106,15 @@
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.numeric.real_number.synopsis"></a><h6>
-<a name="id790027"></a>
- <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.synopsis">Synopsis</a>
+<a name="id602264"></a>
+ Synopsis
</h6>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Num</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">RealPolicies</span><span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">real_generator</span><span class="special">;</span>
</pre>
<a name="spirit.karma.reference.numeric.real_number.template_parameters"></a><h6>
-<a name="id790095"></a>
- <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.template_parameters">Template
+<a name="id602359"></a>
+ <a href="real_number.html#spirit.karma.reference.numeric.real_number.template_parameters">Template
parameters</a>
</h6>
<div class="informaltable"><table class="table">
@@ -124,100 +124,82 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Parameter
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Default
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Num</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Num</span></tt>
+ </p></td>
+<td><p>
The type of the real number to generate.
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">double</span></code>
- </p>
- </td>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">double</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">RealPolicies</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">RealPolicies</span></tt>
+ </p></td>
+<td><p>
The policies to use while converting the real number.
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">real_policies</span><span class="special"><</span><span class="identifier">Num</span><span class="special">></span></code>
- </p>
- </td>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">real_policies</span><span class="special"><</span><span class="identifier">Num</span><span class="special">></span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
<p>
- For more information about the type <code class="computeroutput"><span class="identifier">RealPolicies</span></code>
- see <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.real_number_formatting_policies">below</a>).
+ For more information about the type <tt class="computeroutput"><span class="identifier">RealPolicies</span></tt>
+ see below).
</p>
<a name="spirit.karma.reference.numeric.real_number.model_of"></a><h6>
-<a name="id790251"></a>
- <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.model_of">Model
+<a name="id602569"></a>
+ <a href="real_number.html#spirit.karma.reference.numeric.real_number.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>
+ PrimitiveGenerator
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">num</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">num</span></tt></span></dt>
<dd><p>
- Numeric literal, any real number value, or a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
- Argument</a> that evaluates to a real number value of type <code class="computeroutput"><span class="identifier">Num</span></code>
+ Numeric literal, any real number value, or a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ Argument</a> that evaluates to a real number value of type <tt class="computeroutput"><span class="identifier">Num</span></tt>
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Num</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Num</span></tt></span></dt>
<dd><p>
- Type of <code class="computeroutput"><span class="identifier">num</span></code>: any
+ Type of <tt class="computeroutput"><span class="identifier">num</span></tt>: any
real number type
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.numeric.real_number.expression_semantics"></a><h6>
-<a name="id790353"></a>
- <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.expression_semantics">Expression
+<a name="id602710"></a>
+ <a href="real_number.html#spirit.karma.reference.numeric.real_number.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>.
+ is not defined in PrimitiveGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -225,41 +207,33 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate the real number literal <code class="computeroutput"><span class="identifier">num</span></code>
- using the default formatting (no trailing zeros, <code class="computeroutput"><span class="identifier">fixed</span></code> representation for numbers
- <code class="computeroutput"><span class="identifier">fabs</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Generate the real number literal <tt class="computeroutput"><span class="identifier">num</span></tt>
+ using the default formatting (no trailing zeros, <tt class="computeroutput"><span class="identifier">fixed</span></tt> representation for numbers
+ <tt class="computeroutput"><span class="identifier">fabs</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span>
<span class="special"><=</span> <span class="number">1e5</span>
<span class="special">&&</span> <span class="identifier">fabs</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">></span>
- <span class="number">1e-3</span></code>, scientific representation
+ <span class="number">1e-3</span></tt>, scientific representation
otherwise, 3 fractional digits, sign is only printed for negative
literals). This generator never fails (unless the underlying
output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">float_</span>
@@ -267,24 +241,22 @@
<span class="identifier">long_double</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
+</td>
+<td><p>
Generate the real number provided by a mandatory attribute using
- the default formatting (no trailing zeros, <code class="computeroutput"><span class="identifier">fixed</span></code>
- representation for numbers <code class="computeroutput"><span class="identifier">fabs</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special"><=</span>
+ the default formatting (no trailing zeros, <tt class="computeroutput"><span class="identifier">fixed</span></tt>
+ representation for numbers <tt class="computeroutput"><span class="identifier">fabs</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special"><=</span>
<span class="number">1e5</span> <span class="special">&&</span>
<span class="identifier">fabs</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span>
- <span class="special">></span> <span class="number">1e-3</span></code>,
+ <span class="special">></span> <span class="number">1e-3</span></tt>,
scientific representation otherwise, 3 fractional digits, sign
is only printed for negative literals). This generator never
fails (unless the underlying output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">float_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
@@ -292,30 +264,28 @@
<span class="identifier">long_double</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
+</td>
+<td><p>
Generate the real point number provided by the immediate literal
value the generator is initialized from using the default formatting
- (no trailing zeros, <code class="computeroutput"><span class="identifier">fixed</span></code>
- representation for numbers <code class="computeroutput"><span class="identifier">fabs</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special"><=</span>
+ (no trailing zeros, <tt class="computeroutput"><span class="identifier">fixed</span></tt>
+ representation for numbers <tt class="computeroutput"><span class="identifier">fabs</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special"><=</span>
<span class="number">1e5</span> <span class="special">&&</span>
<span class="identifier">fabs</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span>
- <span class="special">></span> <span class="number">1e-3</span></code>,
+ <span class="special">></span> <span class="number">1e-3</span></tt>,
scientific representation otherwise, 3 fractional digits, sign
is only printed for negative literals). If this generator has
an associated attribute it succeeds only as long as the attribute
is equal to the immediate literal (except if the underlying output
stream reports an error). Otherwise this generator fails and
does not generate any output.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<p>
- All generators listed in the table above (except <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>) are predefined specializations of the
- <code class="computeroutput"><span class="identifier">real_generator</span><span class="special"><</span><span class="identifier">Num</span><span class="special">,</span> <span class="identifier">RealPolicies</span><span class="special">></span></code>
+ All generators listed in the table above (except <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>) are predefined specializations of the
+ <tt class="computeroutput"><span class="identifier">real_generator</span><span class="special"><</span><span class="identifier">Num</span><span class="special">,</span> <span class="identifier">RealPolicies</span><span class="special">></span></tt>
basic real number generator type described below. It is possible to directly
use this type to create real number generators using a wide range of
formatting options.
@@ -326,20 +296,16 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">real_generator</span><span class="special"><</span>
@@ -347,58 +313,56 @@
<span class="special">>()</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
- Generate the real number of type <code class="computeroutput"><span class="identifier">Num</span></code>
- provided by a mandatory attribute using the specified <code class="computeroutput"><span class="identifier">RealPolicies</span></code>. This generator
+</td>
+<td><p>
+ Generate the real number of type <tt class="computeroutput"><span class="identifier">Num</span></tt>
+ provided by a mandatory attribute using the specified <tt class="computeroutput"><span class="identifier">RealPolicies</span></tt>. This generator
never fails (unless the underlying output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.karma.reference.numeric.real_number.additional_requirements"></a><h6>
-<a name="id790896"></a>
- <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.additional_requirements">Additional
+<a name="id603470"></a>
+ <a href="real_number.html#spirit.karma.reference.numeric.real_number.additional_requirements">Additional
Requirements</a>
</h6>
<p>
The following list enumerate the requirements which must be met in order
- to use a certain type <code class="computeroutput"><span class="identifier">Num</span></code>
- to instantiate a <code class="computeroutput"><span class="identifier">real_generator</span><span class="special"><</span><span class="identifier">Num</span><span class="special">,</span> <span class="identifier">Policies</span><span class="special">></span></code>.
+ to use a certain type <tt class="computeroutput"><span class="identifier">Num</span></tt>
+ to instantiate a <tt class="computeroutput"><span class="identifier">real_generator</span><span class="special"><</span><span class="identifier">Num</span><span class="special">,</span> <span class="identifier">Policies</span><span class="special">></span></tt>.
</p>
<p>
- In order to be usable as the first template parameter for <code class="computeroutput"><span class="identifier">real_generator</span><span class="special"><></span></code>
- the type <code class="computeroutput"><span class="identifier">Num</span></code> must have
+ In order to be usable as the first template parameter for <tt class="computeroutput"><span class="identifier">real_generator</span><span class="special"><></span></tt>
+ the type <tt class="computeroutput"><span class="identifier">Num</span></tt> must have
defined:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
- comparison operators for: <code class="computeroutput"><span class="special"><</span></code>,
- <code class="computeroutput"><span class="special"><=</span></code>, <code class="computeroutput"><span class="special">==</span></code>,
- <code class="computeroutput"><span class="special">!=</span></code>, <code class="computeroutput"><span class="special">></span></code>,
- and <code class="computeroutput"><span class="special">>=</span></code>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ comparison operators for: <tt class="computeroutput"><span class="special"><</span></tt>,
+ <tt class="computeroutput"><span class="special"><=</span></tt>, <tt class="computeroutput"><span class="special">==</span></tt>,
+ <tt class="computeroutput"><span class="special">!=</span></tt>, <tt class="computeroutput"><span class="special">></span></tt>,
+ and <tt class="computeroutput"><span class="special">>=</span></tt>
</li>
-<li class="listitem">
- numeric operators for: <code class="computeroutput"><span class="special">+</span></code>,
- <code class="computeroutput"><span class="special">-</span></code>, <code class="computeroutput"><span class="special">/</span></code>,
- <code class="computeroutput"><span class="special">*</span></code>, and <code class="computeroutput"><span class="special">%</span></code>
+<li>
+ numeric operators for: <tt class="computeroutput"><span class="special">+</span></tt>,
+ <tt class="computeroutput"><span class="special">-</span></tt>, <tt class="computeroutput"><span class="special">/</span></tt>,
+ <tt class="computeroutput"><span class="special">*</span></tt>, and <tt class="computeroutput"><span class="special">%</span></tt>
</li>
-<li class="listitem">
- functions implementing the interface and the semantics of: <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">fmod</span></code>, <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pow</span></code>,
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">log10</span></code>, <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">lround</span></code>,
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ltrunc</span></code>, <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">modf</span></code>,
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">floor</span></code>, and <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ceil</span></code>.
+<li>
+ functions implementing the interface and the semantics of: <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">fmod</span></tt>, <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pow</span></tt>,
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">log10</span></tt>, <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">lround</span></tt>,
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ltrunc</span></tt>, <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">modf</span></tt>,
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">floor</span></tt>, and <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ceil</span></tt>.
These need to be defined in a way so that they will be found using
argument dependent lookup (ADL).
</li>
-<li class="listitem">
- a valid specialization of the type <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">Num</span><span class="special">></span></code> allowing for numeric property inspection.
+<li>
+ a valid specialization of the type <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">Num</span><span class="special">></span></tt> allowing for numeric property inspection.
</li>
</ul></div>
<a name="spirit.karma.reference.numeric.real_number.attributes"></a><h6>
-<a name="id791206"></a>
- <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.attributes">Attributes</a>
+<a name="id603944"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -406,117 +370,85 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">float_</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">float</span></code>, attribute
+<td><p>
+ <tt class="computeroutput"><span class="identifier">float_</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">float</span></tt>, attribute
is mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">float_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">float_</span></code>, attribute
+<td><p>
+ <tt class="computeroutput"><span class="identifier">float_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">float_</span></tt>, attribute
is optional, if it is supplied, the generator compares the attribute
- with <code class="computeroutput"><span class="identifier">num</span></code> and
+ with <tt class="computeroutput"><span class="identifier">num</span></tt> and
succeeds only if both are equal, failing otherwise.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">double_</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">double</span></code>, attribute
+<td><p>
+ <tt class="computeroutput"><span class="identifier">double_</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">double</span></tt>, attribute
is mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">double_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">double</span></code>, attribute
+<td><p>
+ <tt class="computeroutput"><span class="identifier">double_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">double</span></tt>, attribute
is optional, if it is supplied, the generator compares the attribute
- with <code class="computeroutput"><span class="identifier">num</span></code> and
+ with <tt class="computeroutput"><span class="identifier">num</span></tt> and
succeeds only if both are equal, failing otherwise.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">long_double</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>,
+<td><p>
+ <tt class="computeroutput"><span class="identifier">long_double</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></tt>,
attribute is mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">long_double</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>,
+<td><p>
+ <tt class="computeroutput"><span class="identifier">long_double</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></tt>,
attribute is optional, if it is supplied, the generator compares
- the attribute with <code class="computeroutput"><span class="identifier">num</span></code>
+ the attribute with <tt class="computeroutput"><span class="identifier">num</span></tt>
and succeeds only if both are equal, failing otherwise.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">real_generator</span><span class="special"><</span>
@@ -524,17 +456,15 @@
<span class="special">>()</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Num</span></code>, attribute
+</td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Num</span></tt>, attribute
is mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">real_generator</span><span class="special"><</span>
@@ -542,40 +472,38 @@
<span class="special">>()(</span><span class="identifier">num</span><span class="special">)</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Num</span></code>, attribute
+</td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Num</span></tt>, attribute
is optional, if it is supplied, the generator compares the attribute
- with <code class="computeroutput"><span class="identifier">num</span></code> and
+ with <tt class="computeroutput"><span class="identifier">num</span></tt> and
succeeds only if both are equal, failing otherwise.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- In addition to their usual attribute of type <code class="computeroutput"><span class="identifier">Num</span></code>
- all listed generators accept an instance of a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Num</span><span class="special">></span></code> as well. If the <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></code> is initialized (holds a value)
- the generators behave as if their attribute was an instance of <code class="computeroutput"><span class="identifier">Num</span></code> and emit the value stored in
- the <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></code>.
+<tr><td colspan="2" align="left" valign="top"><p>
+ In addition to their usual attribute of type <tt class="computeroutput"><span class="identifier">Num</span></tt>
+ all listed generators accept an instance of a <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Num</span><span class="special">></span></tt> as well. If the <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></tt> is initialized (holds a value)
+ the generators behave as if their attribute was an instance of <tt class="computeroutput"><span class="identifier">Num</span></tt> and emit the value stored in
+ the <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></tt>.
Otherwise the generators will fail.
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.numeric.real_number.real_number_formatting_policies"></a><h6>
-<a name="id793809"></a>
- <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.real_number_formatting_policies">Real
+<a name="id604698"></a>
+ <a href="real_number.html#spirit.karma.reference.numeric.real_number.real_number_formatting_policies">Real
Number Formatting Policies</a>
</h6>
<p>
If special formatting of a real number is needed, overload the policy
- class <code class="computeroutput"><span class="identifier">real_policies</span><span class="special"><</span><span class="identifier">Num</span><span class="special">></span></code>
- and use it as a template parameter to the <code class="computeroutput"><span class="identifier">real_generator</span><span class="special"><></span></code> real number generator. For instance:
+ class <tt class="computeroutput"><span class="identifier">real_policies</span><span class="special"><</span><span class="identifier">Num</span><span class="special">></span></tt>
+ and use it as a template parameter to the <tt class="computeroutput"><span class="identifier">real_generator</span><span class="special"><></span></tt> real number generator. For instance:
</p>
<pre class="programlisting"><span class="comment">// define a new real number formatting policy
</span><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Num</span><span class="special">></span>
@@ -594,14 +522,14 @@
</span><span class="identifier">generate</span><span class="special">(</span><span class="identifier">sink</span><span class="special">,</span> <span class="identifier">scientific</span><span class="special">,</span> <span class="number">0.1</span><span class="special">);</span> <span class="comment">// will output: 1.0e-01
</span></pre>
<p>
- The template parameter <code class="computeroutput"><span class="identifier">Num</span></code>
+ The template parameter <tt class="computeroutput"><span class="identifier">Num</span></tt>
should be the type to be formatted using the overloaded policy type.
- At the same time <code class="computeroutput"><span class="identifier">Num</span></code>
+ At the same time <tt class="computeroutput"><span class="identifier">Num</span></tt>
will be used as the attribute type of the created real number generator.
</p>
<a name="spirit.karma.reference.numeric.real_number.real_number_formatting_policy_expression_semantics"></a><h6>
-<a name="id794163"></a>
- <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.real_number_formatting_policy_expression_semantics">Real
+<a name="id605201"></a>
+ <a href="real_number.html#spirit.karma.reference.numeric.real_number.real_number_formatting_policy_expression_semantics">Real
Number Formatting Policy Expression Semantics</a>
</h6>
<p>
@@ -614,21 +542,17 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Inserter</span>
@@ -639,14 +563,14 @@
</pre>
<p>
</p>
- </td>
+</td>
<td>
- <p>
+<p>
This is the main function used to generate the output for a real
number. It is called by the real generator in order to perform
the conversion. In theory all of the work can be implemented
here, but it is the easiest to use existing functionality provided
- by the type specified by the template parameter <code class="computeroutput"><span class="identifier">Inserter</span></code>. The default implementation
+ by the type specified by the template parameter <tt class="computeroutput"><span class="identifier">Inserter</span></tt>. The default implementation
of this functions is:
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Inserter</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">OutputIterator</span>
@@ -658,141 +582,141 @@
<span class="special">}</span>
</pre>
<p>
- <code class="computeroutput"><span class="identifier">sink</span></code>: is the
+ <tt class="computeroutput"><span class="identifier">sink</span></tt>: is the
output iterator to use for generation
</p>
- <p>
- <code class="computeroutput"><span class="identifier">n</span></code>: is the real
+<p>
+ <tt class="computeroutput"><span class="identifier">n</span></tt>: is the real
number to convert
</p>
- <p>
- <code class="computeroutput"><span class="identifier">p</span></code>: the instance
+<p>
+ <tt class="computeroutput"><span class="identifier">p</span></tt>: the instance
of the policy type used to instantiate this real number generator.
</p>
- </td>
+</td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">bool</span> <span class="identifier">force_sign</span><span class="special">(</span><span class="identifier">Num</span> <span class="identifier">n</span><span class="special">);</span>
</pre>
<p>
</p>
- </td>
+</td>
<td>
- <p>
+<p>
The default behavior is to not to require generating a sign.
- If the function <code class="computeroutput"><span class="identifier">force_sign</span><span class="special">()</span></code> returns true, then all generated
- numbers will have a sign (<code class="computeroutput"><span class="char">'+'</span></code>
- or <code class="computeroutput"><span class="char">'-'</span></code>, zeros will
+ If the function <tt class="computeroutput"><span class="identifier">force_sign</span><span class="special">()</span></tt> returns true, then all generated
+ numbers will have a sign (<tt class="computeroutput"><span class="char">'+'</span></tt>
+ or <tt class="computeroutput"><span class="char">'-'</span></tt>, zeros will
have a space instead of a sign).
</p>
- <p>
- <code class="computeroutput"><span class="identifier">n</span></code> is the real
+<p>
+ <tt class="computeroutput"><span class="identifier">n</span></tt> is the real
number to output. This can be used to adjust the required behavior
depending on the value of this number.
</p>
- </td>
+</td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">bool</span> <span class="identifier">trailing_zeros</span><span class="special">(</span><span class="identifier">Num</span> <span class="identifier">n</span><span class="special">);</span>
</pre>
<p>
</p>
- </td>
+</td>
<td>
- <p>
+<p>
Return whether trailing zero digits have to be emitted in the
fractional part of the output. If set, this flag instructs the
real number generator to emit trailing zeros up to the required
- precision digits (as returned by the <code class="computeroutput"><span class="identifier">precision</span><span class="special">()</span></code> function).
+ precision digits (as returned by the <tt class="computeroutput"><span class="identifier">precision</span><span class="special">()</span></tt> function).
</p>
- <p>
- <code class="computeroutput"><span class="identifier">n</span></code> is the real
+<p>
+ <tt class="computeroutput"><span class="identifier">n</span></tt> is the real
number to output. This can be used to adjust the required behavior
depending on the value of this number.
</p>
- </td>
+</td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">int</span> <span class="identifier">floatfield</span><span class="special">(</span><span class="identifier">Num</span> <span class="identifier">n</span><span class="special">);</span>
</pre>
<p>
</p>
- </td>
+</td>
<td>
- <p>
+<p>
Decide, which representation type to use in the generated output.
</p>
- <p>
+<p>
By default all numbers having an absolute value of zero or in
- between <code class="computeroutput"><span class="number">0.001</span></code> and
- <code class="computeroutput"><span class="number">100000</span></code> will be generated
+ between <tt class="computeroutput"><span class="number">0.001</span></tt> and
+ <tt class="computeroutput"><span class="number">100000</span></tt> will be generated
using the fixed format, all others will be generated using the
scientific representation.
</p>
- <p>
- The <code class="computeroutput"><span class="identifier">trailing_zeros</span><span class="special">()</span></code> can be used to force the output
+<p>
+ The <tt class="computeroutput"><span class="identifier">trailing_zeros</span><span class="special">()</span></tt> can be used to force the output
of trailing zeros in the fractional part up to the number of
- digits returned by the <code class="computeroutput"><span class="identifier">precision</span><span class="special">()</span></code> member function. The default
+ digits returned by the <tt class="computeroutput"><span class="identifier">precision</span><span class="special">()</span></tt> member function. The default
is not to generate the trailing zeros.
</p>
- <p>
- <code class="computeroutput"><span class="identifier">n</span></code>: is the real
+<p>
+ <tt class="computeroutput"><span class="identifier">n</span></tt>: is the real
number to output. This can be used to adjust the formatting flags
depending on the value of this number.
</p>
- <p>
- The return value has to be either <code class="computeroutput"><span class="identifier">fmtflags</span><span class="special">::</span><span class="identifier">scientific</span></code>
- (generate real number values in scientific notation) or <code class="computeroutput"><span class="identifier">fmtflags</span><span class="special">::</span><span class="identifier">fixed</span></code> (generate real number
+<p>
+ The return value has to be either <tt class="computeroutput"><span class="identifier">fmtflags</span><span class="special">::</span><span class="identifier">scientific</span></tt>
+ (generate real number values in scientific notation) or <tt class="computeroutput"><span class="identifier">fmtflags</span><span class="special">::</span><span class="identifier">fixed</span></tt> (generate real number
values in fixed-point notation).
</p>
- </td>
+</td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">unsigned</span> <span class="identifier">precision</span><span class="special">(</span><span class="identifier">Num</span> <span class="identifier">n</span><span class="special">);</span>
</pre>
<p>
</p>
- </td>
+</td>
<td>
- <p>
+<p>
Return the maximum number of decimal digits to generate in the
fractional part of the output.
</p>
- <p>
- <code class="computeroutput"><span class="identifier">n</span></code>: is the real
+<p>
+ <tt class="computeroutput"><span class="identifier">n</span></tt>: is the real
number to output. This can be used to adjust the required precision
depending on the value of this number. If the trailing zeros
flag is specified the fractional part of the output will be 'filled'
with zeros, if appropriate.
</p>
- <p>
- <span class="bold"><strong>Note:</strong></span> If the trailing_zeros
+<p>
+ <span class="bold"><b>Note:</b></span> If the trailing_zeros
flag is not in effect additional semantics apply. See the description
- for the <code class="computeroutput"><span class="identifier">fraction_part</span><span class="special">()</span></code> function below. Moreover, this
- precision will be limited to the value of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">digits10</span>
- <span class="special">+</span> <span class="number">1</span></code>.
+ for the <tt class="computeroutput"><span class="identifier">fraction_part</span><span class="special">()</span></tt> function below. Moreover, this
+ precision will be limited to the value of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">digits10</span>
+ <span class="special">+</span> <span class="number">1</span></tt>.
</p>
- </td>
+</td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">bool</span> <span class="identifier">ForceSign</span><span class="special">,</span>
@@ -802,44 +726,44 @@
</pre>
<p>
</p>
- </td>
+</td>
<td>
- <p>
+<p>
This function is called to generate the integer part of the real
number.
</p>
- <p>
- <code class="computeroutput"><span class="identifier">sink</span></code>: is the
+<p>
+ <tt class="computeroutput"><span class="identifier">sink</span></tt>: is the
output iterator to use for generation
</p>
- <p>
- <code class="computeroutput"><span class="identifier">n</span></code>: is the absolute
+<p>
+ <tt class="computeroutput"><span class="identifier">n</span></tt>: is the absolute
value of the integer part of the real number to convert (always
non-negative)
</p>
- <p>
- <code class="computeroutput"><span class="identifier">sign</span></code>: is the
+<p>
+ <tt class="computeroutput"><span class="identifier">sign</span></tt>: is the
sign of the overall real number to convert.
</p>
- <p>
- <code class="computeroutput"><span class="identifier">force_sign</span></code>: is
+<p>
+ <tt class="computeroutput"><span class="identifier">force_sign</span></tt>: is
a flag whether a sign has to be generated even for non- negative
numbers (this is the same as has been returned from the function
- <code class="computeroutput"><span class="identifier">force_sign</span><span class="special">()</span></code>
+ <tt class="computeroutput"><span class="identifier">force_sign</span><span class="special">()</span></tt>
described above)
</p>
- <p>
+<p>
The return value defines the outcome of the whole generator.
- If it is <code class="computeroutput"><span class="keyword">false</span></code>,
- no further output is generated, immediatly returning <code class="computeroutput"><span class="keyword">false</span></code> from the calling <code class="computeroutput"><span class="identifier">real_generator</span></code> as well. If
- it is <code class="computeroutput"><span class="keyword">true</span></code>, normal
+ If it is <tt class="computeroutput"><span class="keyword">false</span></tt>,
+ no further output is generated, immediatly returning <tt class="computeroutput"><span class="keyword">false</span></tt> from the calling <tt class="computeroutput"><span class="identifier">real_generator</span></tt> as well. If
+ it is <tt class="computeroutput"><span class="keyword">true</span></tt>, normal
output generation continues.
</p>
- </td>
+</td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">OutputIterator</span><span class="special">></span>
@@ -848,50 +772,50 @@
</pre>
<p>
</p>
- </td>
+</td>
<td>
- <p>
+<p>
This function is called to generate the decimal point.
</p>
- <p>
- <code class="computeroutput"><span class="identifier">sink</span></code>: is the
+<p>
+ <tt class="computeroutput"><span class="identifier">sink</span></tt>: is the
output iterator to use for generation
</p>
- <p>
- <code class="computeroutput"><span class="identifier">n</span></code>: The fractional
+<p>
+ <tt class="computeroutput"><span class="identifier">n</span></tt>: The fractional
part of the real number to convert. Note that this number is
scaled such, that it represents the number of units which correspond
- to the value returned from the <code class="computeroutput"><span class="identifier">precision</span><span class="special">()</span></code> function earlier. I.e. a fractional
- part of <code class="computeroutput"><span class="number">0.01234</span></code> is
- represented as <code class="computeroutput"><span class="number">1234</span></code>
- when the function <code class="computeroutput"><span class="identifier">precision</span><span class="special">()</span></code> returned <code class="computeroutput"><span class="number">5</span></code>.
- </p>
- <p>
- <code class="computeroutput"><span class="identifier">precision</span></code>: The
- number of digits to emit as returned by the function <code class="computeroutput"><span class="identifier">precision</span><span class="special">()</span></code>
+ to the value returned from the <tt class="computeroutput"><span class="identifier">precision</span><span class="special">()</span></tt> function earlier. I.e. a fractional
+ part of <tt class="computeroutput"><span class="number">0.01234</span></tt> is
+ represented as <tt class="computeroutput"><span class="number">1234</span></tt>
+ when the function <tt class="computeroutput"><span class="identifier">precision</span><span class="special">()</span></tt> returned <tt class="computeroutput"><span class="number">5</span></tt>.
+ </p>
+<p>
+ <tt class="computeroutput"><span class="identifier">precision</span></tt>: The
+ number of digits to emit as returned by the function <tt class="computeroutput"><span class="identifier">precision</span><span class="special">()</span></tt>
described above
</p>
- <p>
+<p>
This is given to allow to decide, whether a decimal point has
to be generated at all.
</p>
- <p>
- <span class="bold"><strong>Note:</strong></span> If the <code class="computeroutput"><span class="identifier">trailing_zeros</span></code>
+<p>
+ <span class="bold"><b>Note:</b></span> If the <tt class="computeroutput"><span class="identifier">trailing_zeros</span></tt>
flag is not in effect additional comments apply. See the description
- for the <code class="computeroutput"><span class="identifier">fraction_part</span><span class="special">()</span></code> function below.
+ for the <tt class="computeroutput"><span class="identifier">fraction_part</span><span class="special">()</span></tt> function below.
</p>
- <p>
+<p>
The return value defines the outcome of the whole generator.
- If it is <code class="computeroutput"><span class="keyword">false</span></code>,
- no further output is generated, immediatly returning <code class="computeroutput"><span class="keyword">false</span></code> from the calling <code class="computeroutput"><span class="identifier">real_generator</span></code> as well. If
- it is <code class="computeroutput"><span class="keyword">true</span></code>, normal
+ If it is <tt class="computeroutput"><span class="keyword">false</span></tt>,
+ no further output is generated, immediatly returning <tt class="computeroutput"><span class="keyword">false</span></tt> from the calling <tt class="computeroutput"><span class="identifier">real_generator</span></tt> as well. If
+ it is <tt class="computeroutput"><span class="keyword">true</span></tt>, normal
output generation continues.
</p>
- </td>
+</td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">OutputIterator</span><span class="special">></span>
@@ -900,69 +824,69 @@
</pre>
<p>
</p>
- </td>
+</td>
<td>
- <p>
+<p>
This function is called to generate the fractional part of the
number.
</p>
- <p>
- <code class="computeroutput"><span class="identifier">sink</span></code>: is the
+<p>
+ <tt class="computeroutput"><span class="identifier">sink</span></tt>: is the
output iterator to use for generation
</p>
- <p>
- <code class="computeroutput"><span class="identifier">n</span></code>: The fractional
+<p>
+ <tt class="computeroutput"><span class="identifier">n</span></tt>: The fractional
part of the real number to convert. Note that this number is
scaled such, that it represents the number of units which correspond
- to the value returned from the <code class="computeroutput"><span class="identifier">precision</span><span class="special">()</span></code> function earlier. I.e. a fractional
- part of <code class="computeroutput"><span class="number">0.01234</span></code> is
- represented as <code class="computeroutput"><span class="number">1234</span></code>
- when the function <code class="computeroutput"><span class="identifier">precision</span><span class="special">()</span></code> returned <code class="computeroutput"><span class="number">5</span></code>.
+ to the value returned from the <tt class="computeroutput"><span class="identifier">precision</span><span class="special">()</span></tt> function earlier. I.e. a fractional
+ part of <tt class="computeroutput"><span class="number">0.01234</span></tt> is
+ represented as <tt class="computeroutput"><span class="number">1234</span></tt>
+ when the function <tt class="computeroutput"><span class="identifier">precision</span><span class="special">()</span></tt> returned <tt class="computeroutput"><span class="number">5</span></tt>.
</p>
- <p>
- <code class="computeroutput"><span class="identifier">adjprec</span></code>: The
+<p>
+ <tt class="computeroutput"><span class="identifier">adjprec</span></tt>: The
corrected number of digits to emit (see note below)
</p>
- <p>
- <code class="computeroutput"><span class="identifier">precision</span></code>: The
- number of digits to emit as returned by the function <code class="computeroutput"><span class="identifier">precision</span><span class="special">()</span></code>
+<p>
+ <tt class="computeroutput"><span class="identifier">precision</span></tt>: The
+ number of digits to emit as returned by the function <tt class="computeroutput"><span class="identifier">precision</span><span class="special">()</span></tt>
described above
</p>
- <p>
- <span class="bold"><strong>Note:</strong></span> If <code class="computeroutput"><span class="identifier">trailing_zeros</span><span class="special">()</span></code> returns <code class="computeroutput"><span class="keyword">false</span></code>
- the <code class="computeroutput"><span class="identifier">adjprec</span></code> parameter
- will have been corrected from the value the <code class="computeroutput"><span class="identifier">precision</span><span class="special">()</span></code> function returned earlier (defining
+<p>
+ <span class="bold"><b>Note:</b></span> If <tt class="computeroutput"><span class="identifier">trailing_zeros</span><span class="special">()</span></tt> returns <tt class="computeroutput"><span class="keyword">false</span></tt>
+ the <tt class="computeroutput"><span class="identifier">adjprec</span></tt> parameter
+ will have been corrected from the value the <tt class="computeroutput"><span class="identifier">precision</span><span class="special">()</span></tt> function returned earlier (defining
the maximal number of fractional digits) in the sense, that it
- takes into account trailing zeros. I.e. a real number <code class="computeroutput"><span class="number">0.0123</span></code> and a value of <code class="computeroutput"><span class="number">5</span></code> returned from <code class="computeroutput"><span class="identifier">precision</span><span class="special">()</span></code> will result in:
+ takes into account trailing zeros. I.e. a real number <tt class="computeroutput"><span class="number">0.0123</span></tt> and a value of <tt class="computeroutput"><span class="number">5</span></tt> returned from <tt class="computeroutput"><span class="identifier">precision</span><span class="special">()</span></tt> will result in:
</p>
- <p>
- <code class="computeroutput"><span class="identifier">trailing_zeros</span><span class="special">()</span></code> returned <code class="computeroutput"><span class="keyword">false</span></code>:
- <code class="computeroutput"><span class="identifier">n</span></code> will be <code class="computeroutput"><span class="number">123</span></code>, and <code class="computeroutput"><span class="identifier">adjprec</span></code>
- will be <code class="computeroutput"><span class="number">4</span></code> (as we
- need to print <code class="computeroutput"><span class="number">0123</span></code>)
- </p>
- <p>
- <code class="computeroutput"><span class="identifier">trailing_zeros</span><span class="special">()</span></code> returned <code class="computeroutput"><span class="keyword">true</span></code>:
- <code class="computeroutput"><span class="identifier">n</span></code> will be <code class="computeroutput"><span class="number">1230</span></code>, and <code class="computeroutput"><span class="identifier">adjprec</span></code>
- will be <code class="computeroutput"><span class="number">5</span></code> (as we
- need to print <code class="computeroutput"><span class="number">01230</span></code>)
+<p>
+ <tt class="computeroutput"><span class="identifier">trailing_zeros</span><span class="special">()</span></tt> returned <tt class="computeroutput"><span class="keyword">false</span></tt>:
+ <tt class="computeroutput"><span class="identifier">n</span></tt> will be <tt class="computeroutput"><span class="number">123</span></tt>, and <tt class="computeroutput"><span class="identifier">adjprec</span></tt>
+ will be <tt class="computeroutput"><span class="number">4</span></tt> (as we
+ need to print <tt class="computeroutput"><span class="number">0123</span></tt>)
</p>
- <p>
+<p>
+ <tt class="computeroutput"><span class="identifier">trailing_zeros</span><span class="special">()</span></tt> returned <tt class="computeroutput"><span class="keyword">true</span></tt>:
+ <tt class="computeroutput"><span class="identifier">n</span></tt> will be <tt class="computeroutput"><span class="number">1230</span></tt>, and <tt class="computeroutput"><span class="identifier">adjprec</span></tt>
+ will be <tt class="computeroutput"><span class="number">5</span></tt> (as we
+ need to print <tt class="computeroutput"><span class="number">01230</span></tt>)
+ </p>
+<p>
The missing preceding zeros in the fractional part have to be
supplied by the implementation of this policy function.
</p>
- <p>
+<p>
The return value defines the outcome of the whole generator.
- If it is <code class="computeroutput"><span class="keyword">false</span></code>,
- no further output is generated, immediatly returning <code class="computeroutput"><span class="keyword">false</span></code> from the calling <code class="computeroutput"><span class="identifier">real_generator</span></code> as well. If
- it is <code class="computeroutput"><span class="keyword">true</span></code>, normal
+ If it is <tt class="computeroutput"><span class="keyword">false</span></tt>,
+ no further output is generated, immediatly returning <tt class="computeroutput"><span class="keyword">false</span></tt> from the calling <tt class="computeroutput"><span class="identifier">real_generator</span></tt> as well. If
+ it is <tt class="computeroutput"><span class="keyword">true</span></tt>, normal
output generation continues.
</p>
- </td>
+</td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">CharEncoding</span><span class="special">,</span>
@@ -972,41 +896,41 @@
</pre>
<p>
</p>
- </td>
+</td>
<td>
- <p>
+<p>
This function is called to generate the exponential part of the
- number (this is called only if the <code class="computeroutput"><span class="identifier">floatfield</span><span class="special">()</span></code> function returned the <code class="computeroutput"><span class="identifier">fmtflags</span><span class="special">::</span><span class="identifier">scientific</span></code> flag).
+ number (this is called only if the <tt class="computeroutput"><span class="identifier">floatfield</span><span class="special">()</span></tt> function returned the <tt class="computeroutput"><span class="identifier">fmtflags</span><span class="special">::</span><span class="identifier">scientific</span></tt> flag).
</p>
- <p>
- <code class="computeroutput"><span class="identifier">sink</span></code>: is the
+<p>
+ <tt class="computeroutput"><span class="identifier">sink</span></tt>: is the
output iterator to use for generation
</p>
- <p>
- <code class="computeroutput"><span class="identifier">n</span></code>: The (signed)
+<p>
+ <tt class="computeroutput"><span class="identifier">n</span></tt>: The (signed)
exponential part of the real number to convert.
</p>
- <p>
- The template parameters <code class="computeroutput"><span class="identifier">CharEncoding</span></code>
- and <code class="computeroutput"><span class="identifier">Tag</span></code> are either
- of the type <code class="computeroutput"><span class="identifier">unused_type</span></code>
+<p>
+ The template parameters <tt class="computeroutput"><span class="identifier">CharEncoding</span></tt>
+ and <tt class="computeroutput"><span class="identifier">Tag</span></tt> are either
+ of the type <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
or describe the character class and conversion to be applied
- to any output possibly influenced by either the <code class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></code>
- or <code class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></code>
+ to any output possibly influenced by either the <tt class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></tt>
+ or <tt class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></tt>
directives.
</p>
- <p>
+<p>
The return value defines the outcome of the whole generator.
- If it is <code class="computeroutput"><span class="keyword">false</span></code>,
- no further output is generated, immediatly returning <code class="computeroutput"><span class="keyword">false</span></code> from the calling <code class="computeroutput"><span class="identifier">real_generator</span></code> as well. If
- it is <code class="computeroutput"><span class="keyword">true</span></code>, normal
+ If it is <tt class="computeroutput"><span class="keyword">false</span></tt>,
+ no further output is generated, immediatly returning <tt class="computeroutput"><span class="keyword">false</span></tt> from the calling <tt class="computeroutput"><span class="identifier">real_generator</span></tt> as well. If
+ it is <tt class="computeroutput"><span class="keyword">true</span></tt>, normal
output generation continues.
</p>
- </td>
+</td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">CharEncoding</span>
@@ -1016,48 +940,48 @@
</pre>
<p>
</p>
- </td>
+</td>
<td>
- <p>
+<p>
This function is called whenever the number to print is a non-normal
- real number of type <code class="computeroutput"><span class="identifier">NaN</span></code>.
+ real number of type <tt class="computeroutput"><span class="identifier">NaN</span></tt>.
</p>
- <p>
- <code class="computeroutput"><span class="identifier">sink</span></code>: is the
+<p>
+ <tt class="computeroutput"><span class="identifier">sink</span></tt>: is the
output iterator to use for generation
</p>
- <p>
- <code class="computeroutput"><span class="identifier">n</span></code>: is the (signed)
+<p>
+ <tt class="computeroutput"><span class="identifier">n</span></tt>: is the (signed)
real number to convert
</p>
- <p>
- <code class="computeroutput"><span class="identifier">force_sign</span></code>: is
+<p>
+ <tt class="computeroutput"><span class="identifier">force_sign</span></tt>: is
a flag whether a sign has to be generated even for non- negative
numbers (this is the same as has been returned from the function
- <code class="computeroutput"><span class="identifier">force_sign</span><span class="special">()</span></code>
+ <tt class="computeroutput"><span class="identifier">force_sign</span><span class="special">()</span></tt>
described above)
</p>
- <p>
- The template parameters <code class="computeroutput"><span class="identifier">CharEncoding</span></code>
- and <code class="computeroutput"><span class="identifier">Tag</span></code> are either
- of the type <code class="computeroutput"><span class="identifier">unused_type</span></code>
+<p>
+ The template parameters <tt class="computeroutput"><span class="identifier">CharEncoding</span></tt>
+ and <tt class="computeroutput"><span class="identifier">Tag</span></tt> are either
+ of the type <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
or describe the character class and conversion to be applied
- to any output possibly influenced by either the <code class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></code>
- or <code class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></code>
+ to any output possibly influenced by either the <tt class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></tt>
+ or <tt class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></tt>
directives.
</p>
- <p>
+<p>
The return value defines the outcome of the whole generator.
- If it is <code class="computeroutput"><span class="keyword">false</span></code>,
- no further output is generated, immediatly returning <code class="computeroutput"><span class="keyword">false</span></code> from the calling <code class="computeroutput"><span class="identifier">real_generator</span></code> as well. If
- it is <code class="computeroutput"><span class="keyword">true</span></code>, normal
+ If it is <tt class="computeroutput"><span class="keyword">false</span></tt>,
+ no further output is generated, immediatly returning <tt class="computeroutput"><span class="keyword">false</span></tt> from the calling <tt class="computeroutput"><span class="identifier">real_generator</span></tt> as well. If
+ it is <tt class="computeroutput"><span class="keyword">true</span></tt>, normal
output generation continues.
</p>
- </td>
+</td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">CharEncoding</span>
@@ -1067,75 +991,75 @@
</pre>
<p>
</p>
- </td>
+</td>
<td>
- <p>
+<p>
This function is called whenever the number to print is a non-normal
- real number of type <code class="computeroutput"><span class="identifier">Inf</span></code>.
+ real number of type <tt class="computeroutput"><span class="identifier">Inf</span></tt>.
</p>
- <p>
- <code class="computeroutput"><span class="identifier">sink</span></code>: is the
+<p>
+ <tt class="computeroutput"><span class="identifier">sink</span></tt>: is the
output iterator to use for generation
</p>
- <p>
- <code class="computeroutput"><span class="identifier">n</span></code>: is the (signed)
+<p>
+ <tt class="computeroutput"><span class="identifier">n</span></tt>: is the (signed)
real number to convert
</p>
- <p>
- <code class="computeroutput"><span class="identifier">force_sign</span></code>: is
+<p>
+ <tt class="computeroutput"><span class="identifier">force_sign</span></tt>: is
a flag whether a sign has to be generated even for non- negative
numbers (this is the same as has been returned from the function
- <code class="computeroutput"><span class="identifier">force_sign</span><span class="special">()</span></code>
+ <tt class="computeroutput"><span class="identifier">force_sign</span><span class="special">()</span></tt>
described above)
</p>
- <p>
- The template parameters <code class="computeroutput"><span class="identifier">CharEncoding</span></code>
- and <code class="computeroutput"><span class="identifier">Tag</span></code> are either
- of the type <code class="computeroutput"><span class="identifier">unused_type</span></code>
+<p>
+ The template parameters <tt class="computeroutput"><span class="identifier">CharEncoding</span></tt>
+ and <tt class="computeroutput"><span class="identifier">Tag</span></tt> are either
+ of the type <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
or describe the character class and conversion to be applied
- to any output possibly influenced by either the <code class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></code>
- or <code class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></code>
+ to any output possibly influenced by either the <tt class="computeroutput"><span class="identifier">lower</span><span class="special">[]</span></tt>
+ or <tt class="computeroutput"><span class="identifier">upper</span><span class="special">[]</span></tt>
directives.
</p>
- <p>
+<p>
The return value defines the outcome of the whole generator.
- If it is <code class="computeroutput"><span class="keyword">false</span></code>,
- no further output is generated, immediatly returning <code class="computeroutput"><span class="keyword">false</span></code> from the calling <code class="computeroutput"><span class="identifier">real_generator</span></code> as well. If
- it is <code class="computeroutput"><span class="keyword">true</span></code>, normal
+ If it is <tt class="computeroutput"><span class="keyword">false</span></tt>,
+ no further output is generated, immediatly returning <tt class="computeroutput"><span class="keyword">false</span></tt> from the calling <tt class="computeroutput"><span class="identifier">real_generator</span></tt> as well. If
+ it is <tt class="computeroutput"><span class="keyword">true</span></tt>, normal
output generation continues.
</p>
- </td>
+</td>
</tr>
</tbody>
</table></div>
-<div class="tip" title="Tip"><table border="0" summary="Tip">
+<div class="tip"><table border="0" summary="Tip">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../../images/tip.png"></td>
<th align="left">Tip</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
The easiest way to implement a proper real number formatting policy
- is to derive a new type from the the type <code class="computeroutput"><span class="identifier">real_policies</span><span class="special"><></span></code> while overriding the aspects
+ is to derive a new type from the the type <tt class="computeroutput"><span class="identifier">real_policies</span><span class="special"><></span></tt> while overriding the aspects
of the formatting which need to be changed.
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.numeric.real_number.complexity"></a><h6>
-<a name="id797382"></a>
- <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.complexity">Complexity</a>
+<a name="id608819"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- O(N), where <code class="computeroutput"><span class="identifier">N</span></code> is
+ O(N), where <tt class="computeroutput"><span class="identifier">N</span></tt> is
the number of digits needed to represent the generated real number.
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.karma.reference.numeric.real_number.example"></a><h6>
-<a name="id797414"></a>
- <a class="link" href="real_number.html#spirit.karma.reference.numeric.real_number.example">Example</a>
+<a name="id608868"></a>
+ Example
</h6>
<p>
Some includes:
@@ -1213,7 +1137,7 @@
<p>
</p>
<p>
- Basic usage of an <code class="computeroutput"><span class="identifier">double_</span></code>
+ Basic usage of an <tt class="computeroutput"><span class="identifier">double_</span></tt>
generator:
</p>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/signed_int.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/signed_int.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/signed_int.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,19 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Signed Integer Number Generators (int_, etc.)</title>
+<title> Signed
+ Integer Number Generators (int_,
+ etc.)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../numeric.html" title="Numeric">
-<link rel="prev" href="unsigned_int.html" title="Unsigned Integer Number Generators (uint_, etc.)">
-<link rel="next" href="real_number.html" title="Real Number Generators (float_, double_, etc.)">
+<link rel="up" href="../numeric.html" title=" Numeric">
+<link rel="previous" href="unsigned_int.html" title=" Unsigned
+ Integer Number Generators (uint_,
+ etc.)">
+<link rel="next" href="real_number.html" title=" Real
+ Number Generators (float_,
+ double_, etc.)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,107 +28,100 @@
<div class="spirit-nav">
<a accesskey="p" href="unsigned_int.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../numeric.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="real_number.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Signed Integer Number Generators (int_, etc.)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.numeric.signed_int"></a><a class="link" href="signed_int.html" title="Signed Integer Number Generators (int_, etc.)"> Signed
- Integer Number Generators (<code class="computeroutput"><span class="identifier">int_</span></code>,
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.numeric.signed_int"></a><a href="signed_int.html" title=" Signed
+ Integer Number Generators (int_,
+ etc.)"> Signed
+ Integer Number Generators (<tt class="computeroutput"><span class="identifier">int_</span></tt>,
etc.)</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.numeric.signed_int.description"></a><h6>
-<a name="id785486"></a>
- <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.description">Description</a>
+<a name="id596243"></a>
+ Description
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">int_generator</span></code> can
+ The <tt class="computeroutput"><span class="identifier">int_generator</span></tt> can
generate signed integers of arbitrary length and size. This is almost
- the same as the <code class="computeroutput"><span class="identifier">int_generator</span></code>.
- The only difference is the additional task of generating the <code class="computeroutput"><span class="char">'+'</span></code> or <code class="computeroutput"><span class="char">'-'</span></code>
+ the same as the <tt class="computeroutput"><span class="identifier">int_generator</span></tt>.
+ The only difference is the additional task of generating the <tt class="computeroutput"><span class="char">'+'</span></tt> or <tt class="computeroutput"><span class="char">'-'</span></tt>
sign preceding the number. The class interface is the same as that of
- the <code class="computeroutput"><span class="identifier">int_generator</span></code>.
+ the <tt class="computeroutput"><span class="identifier">int_generator</span></tt>.
</p>
<p>
- The <code class="computeroutput"><span class="identifier">int_generator</span></code> generator
+ The <tt class="computeroutput"><span class="identifier">int_generator</span></tt> generator
can be used to emit ordinary primitive C/C++ integers or even user defined
scalars such as bigints (unlimited precision integers) as long as the
type follows certain expression requirements (for more information about
- the requirements, see <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.additional_requirements">below</a>).
+ the requirements, see below).
</p>
<a name="spirit.karma.reference.numeric.signed_int.header"></a><h6>
-<a name="id785554"></a>
- <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.header">Header</a>
+<a name="id596369"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/numeric/int.hpp>
</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">karma_int</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.numeric.signed_int.namespace"></a><h6>
-<a name="id785628"></a>
- <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.namespace">Namespace</a>
+<a name="id596484"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lit</span> <span class="comment">// alias:
- boost::spirit::karma::lit</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">short_</span> <span class="comment">// alias:
- boost::spirit::karma::short_</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">int_</span> <span class="comment">// alias:
- boost::spirit::karma::int_</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">long_</span> <span class="comment">// alias:
- boost::spirit::karma::long_</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">long_long</span> <span class="comment">//
- alias: boost::spirit::karma::long_long</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lit</span> <span class="comment">// alias:
+ boost::spirit::karma::lit</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">short_</span> <span class="comment">// alias:
+ boost::spirit::karma::short_</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">int_</span> <span class="comment">// alias:
+ boost::spirit::karma::int_</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">long_</span> <span class="comment">// alias:
+ boost::spirit::karma::long_</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">long_long</span> <span class="comment">//
+ alias: boost::spirit::karma::long_long</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
-<div class="important" title="Important"><table border="0" summary="Important">
+<div class="important"><table border="0" summary="Important">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../images/important.png"></td>
<th align="left">Important</th>
</tr>
-<tr><td align="left" valign="top"><p>
- The generators <code class="computeroutput"><span class="identifier">long_long</span></code>
- and <code class="computeroutput"><span class="identifier">long_long</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
- are only available on platforms where the preprocessor constant <code class="computeroutput"><span class="identifier">BOOST_HAS_LONG_LONG</span></code> is defined (i.e.
- on platforms having native support for <code class="computeroutput"><span class="keyword">long</span>
- <span class="keyword">long</span></code> (64 bit) integer types).
+<tr><td colspan="2" align="left" valign="top"><p>
+ The generators <tt class="computeroutput"><span class="identifier">long_long</span></tt>
+ and <tt class="computeroutput"><span class="identifier">long_long</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>
+ are only available on platforms where the preprocessor constant <tt class="computeroutput"><span class="identifier">BOOST_HAS_LONG_LONG</span></tt> is defined (i.e.
+ on platforms having native support for <tt class="computeroutput"><span class="keyword">long</span>
+ <span class="keyword">long</span></tt> (64 bit) integer types).
</p></td></tr>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- <code class="computeroutput"><span class="identifier">lit</span></code> is reused by the
- <a class="link" href="../string.html" title="String">String Generators</a>,
- the <a class="link" href="../char.html" title="Char">Character Generators</a>,
+<tr><td colspan="2" align="left" valign="top"><p>
+ <tt class="computeroutput"><span class="identifier">lit</span></tt> is reused by the
+ String Generators,
+ the Character Generators,
and the Numeric Generators. In general, a char generator is created
when you pass in a character, a string generator is created when you
pass in a string, and a numeric generator is created when you use a
@@ -130,8 +129,8 @@
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.numeric.signed_int.synopsis"></a><h6>
-<a name="id785936"></a>
- <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.synopsis">Synopsis</a>
+<a name="id596906"></a>
+ Synopsis
</h6>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span>
<span class="keyword">typename</span> <span class="identifier">T</span>
@@ -140,8 +139,8 @@
<span class="keyword">struct</span> <span class="identifier">int_generator</span><span class="special">;</span>
</pre>
<a name="spirit.karma.reference.numeric.signed_int.template_parameters"></a><h6>
-<a name="id786020"></a>
- <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.template_parameters">Template
+<a name="id597022"></a>
+ <a href="signed_int.html#spirit.karma.reference.numeric.signed_int.template_parameters">Template
parameters</a>
</h6>
<div class="informaltable"><table class="table">
@@ -151,130 +150,106 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Parameter
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Default
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">T</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">T</span></tt>
+ </p></td>
+<td><p>
The numeric base type of the numeric parser.
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">int</span></code>
- </p>
- </td>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">int</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Radix</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Radix</span></tt>
+ </p></td>
+<td><p>
The radix base. This can be either 2: binary, 8: octal, 10: decimal
and 16: hexadecimal.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
10
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">force_sign</span></code>
- </p>
- </td>
-<td>
- <p>
- If <code class="computeroutput"><span class="keyword">true</span></code>, all numbers
+<td><p>
+ <tt class="computeroutput"><span class="identifier">force_sign</span></tt>
+ </p></td>
+<td><p>
+ If <tt class="computeroutput"><span class="keyword">true</span></tt>, all numbers
will have a sign (space for zero)
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">false</span></code>
- </p>
- </td>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">false</span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.numeric.signed_int.model_of"></a><h6>
-<a name="id786186"></a>
- <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.model_of">Model
+<a name="id597236"></a>
+ <a href="signed_int.html#spirit.karma.reference.numeric.signed_int.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>
+ PrimitiveGenerator
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">num</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">num</span></tt></span></dt>
<dd><p>
- Numeric literal, any signed integer value, or a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ Numeric literal, any signed integer value, or a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a> that evaluates to a signed integer value of type
- <code class="computeroutput"><span class="identifier">Num</span></code>
+ <tt class="computeroutput"><span class="identifier">Num</span></tt>
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Num</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Num</span></tt></span></dt>
<dd><p>
- Type of <code class="computeroutput"><span class="identifier">num</span></code>: any
+ Type of <tt class="computeroutput"><span class="identifier">num</span></tt>: any
signed integer type
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Radix</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Radix</span></tt></span></dt>
<dd><p>
A constant integer literal specifying the required radix for the
- output conversion. Valid values are <code class="computeroutput"><span class="number">2</span></code>,
- <code class="computeroutput"><span class="number">8</span></code>, <code class="computeroutput"><span class="number">10</span></code>,
- and <code class="computeroutput"><span class="number">16</span></code>.
+ output conversion. Valid values are <tt class="computeroutput"><span class="number">2</span></tt>,
+ <tt class="computeroutput"><span class="number">8</span></tt>, <tt class="computeroutput"><span class="number">10</span></tt>,
+ and <tt class="computeroutput"><span class="number">16</span></tt>.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">force_sign</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">force_sign</span></tt></span></dt>
<dd><p>
A constant boolean literal specifying whether the generated number
- should always have a sign (<code class="computeroutput"><span class="char">'+'</span></code>
- for positive numbers, <code class="computeroutput"><span class="char">'-'</span></code>
- for negative numbers and a '<code class="computeroutput"> </code>' for zero).
+ should always have a sign (<tt class="computeroutput"><span class="char">'+'</span></tt>
+ for positive numbers, <tt class="computeroutput"><span class="char">'-'</span></tt>
+ for negative numbers and a '<tt class="computeroutput"> </tt>' for zero).
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.numeric.signed_int.expression_semantics"></a><h6>
-<a name="id786372"></a>
- <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.expression_semantics">Expression
+<a name="id597506"></a>
+ <a href="signed_int.html#spirit.karma.reference.numeric.signed_int.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>.
+ is not defined in PrimitiveGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -282,36 +257,28 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate the integer literal <code class="computeroutput"><span class="identifier">num</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Generate the integer literal <tt class="computeroutput"><span class="identifier">num</span></tt>
using the default formatting (radix is 10, sign is only printed
for negative literals). This generator never fails (except if
the underlying output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">short_</span>
@@ -320,19 +287,17 @@
<span class="identifier">long_long</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
+</td>
+<td><p>
Generate the integer provided by a mandatory attribute using
the default formatting (radix is 10, sign is only printed for
negative literals). This generator never fails (unless the underlying
output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">short_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
@@ -341,9 +306,8 @@
<span class="identifier">long_long</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
+</td>
+<td><p>
Generate the integer provided by the immediate literal value
the generator is initialized from using the default formatting
(radix is 10, sign is only printed for negative literals). If
@@ -351,14 +315,13 @@
long as the attribute is equal to the immediate literal (unless
the underlying output stream reports an error). Otherwise this
generator fails and does not generate any output.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<p>
- All generators listed in the table above (except <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>) are predefined specializations of the
- <code class="computeroutput"><span class="identifier">int_generator</span><span class="special"><</span><span class="identifier">Num</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">force_sign</span><span class="special">></span></code>
+ All generators listed in the table above (except <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>) are predefined specializations of the
+ <tt class="computeroutput"><span class="identifier">int_generator</span><span class="special"><</span><span class="identifier">Num</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">force_sign</span><span class="special">></span></tt>
basic integer number generator type described below. It is possible to
directly use this type to create integer generators using a wide range
of formatting options.
@@ -369,21 +332,17 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">int_generator</span><span class="special"><</span>
@@ -391,28 +350,26 @@
<span class="special">>()</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
- Generate the integer of type <code class="computeroutput"><span class="identifier">Num</span></code>
- provided by a mandatory attribute using the specified <code class="computeroutput"><span class="identifier">Radix</span></code> (possible values are
- <code class="computeroutput"><span class="number">2</span></code>, <code class="computeroutput"><span class="number">8</span></code>, <code class="computeroutput"><span class="number">10</span></code>,
- and <code class="computeroutput"><span class="number">16</span></code>, the default
- value is <code class="computeroutput"><span class="number">10</span></code>). If
- <code class="computeroutput"><span class="identifier">force_sign</span></code> is
- <code class="computeroutput"><span class="keyword">false</span></code> (the default),
- a sign is only printed for negative literals. If <code class="computeroutput"><span class="identifier">force_sign</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>, all numbers will be printed
- using a sign, i.e. <code class="computeroutput"><span class="char">'-'</span></code>
- for negative numbers, <code class="computeroutput"><span class="char">'+'</span></code>
- for positive numbers, and <code class="computeroutput"><span class="char">' '</span></code>
+</td>
+<td><p>
+ Generate the integer of type <tt class="computeroutput"><span class="identifier">Num</span></tt>
+ provided by a mandatory attribute using the specified <tt class="computeroutput"><span class="identifier">Radix</span></tt> (possible values are
+ <tt class="computeroutput"><span class="number">2</span></tt>, <tt class="computeroutput"><span class="number">8</span></tt>, <tt class="computeroutput"><span class="number">10</span></tt>,
+ and <tt class="computeroutput"><span class="number">16</span></tt>, the default
+ value is <tt class="computeroutput"><span class="number">10</span></tt>). If
+ <tt class="computeroutput"><span class="identifier">force_sign</span></tt> is
+ <tt class="computeroutput"><span class="keyword">false</span></tt> (the default),
+ a sign is only printed for negative literals. If <tt class="computeroutput"><span class="identifier">force_sign</span></tt> is <tt class="computeroutput"><span class="keyword">true</span></tt>, all numbers will be printed
+ using a sign, i.e. <tt class="computeroutput"><span class="char">'-'</span></tt>
+ for negative numbers, <tt class="computeroutput"><span class="char">'+'</span></tt>
+ for positive numbers, and <tt class="computeroutput"><span class="char">' '</span></tt>
for zeros. This generator never fails (unless the underlying
output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">int_generator</span><span class="special"><</span>
@@ -420,89 +377,87 @@
<span class="special">>()(</span><span class="identifier">num</span><span class="special">)</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
- Generate the integer of type <code class="computeroutput"><span class="identifier">Num</span></code>
+</td>
+<td><p>
+ Generate the integer of type <tt class="computeroutput"><span class="identifier">Num</span></tt>
provided by the immediate literal value the generator is initialized
- from, using the specified <code class="computeroutput"><span class="identifier">Radix</span></code>
- (possible values are <code class="computeroutput"><span class="number">2</span></code>,
- <code class="computeroutput"><span class="number">8</span></code>, <code class="computeroutput"><span class="number">10</span></code>, and <code class="computeroutput"><span class="number">16</span></code>,
- the default value is <code class="computeroutput"><span class="number">10</span></code>).
- If <code class="computeroutput"><span class="identifier">force_sign</span></code>
- is <code class="computeroutput"><span class="keyword">false</span></code> (the default),
- a sign is only printed for negative literals. If <code class="computeroutput"><span class="identifier">force_sign</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>, all numbers will be printed
- using a sign, i.e. <code class="computeroutput"><span class="char">'-'</span></code>
- for negative numbers, <code class="computeroutput"><span class="char">'+'</span></code>
- for positive numbers, and <code class="computeroutput"><span class="char">' '</span></code>
+ from, using the specified <tt class="computeroutput"><span class="identifier">Radix</span></tt>
+ (possible values are <tt class="computeroutput"><span class="number">2</span></tt>,
+ <tt class="computeroutput"><span class="number">8</span></tt>, <tt class="computeroutput"><span class="number">10</span></tt>, and <tt class="computeroutput"><span class="number">16</span></tt>,
+ the default value is <tt class="computeroutput"><span class="number">10</span></tt>).
+ If <tt class="computeroutput"><span class="identifier">force_sign</span></tt>
+ is <tt class="computeroutput"><span class="keyword">false</span></tt> (the default),
+ a sign is only printed for negative literals. If <tt class="computeroutput"><span class="identifier">force_sign</span></tt> is <tt class="computeroutput"><span class="keyword">true</span></tt>, all numbers will be printed
+ using a sign, i.e. <tt class="computeroutput"><span class="char">'-'</span></tt>
+ for negative numbers, <tt class="computeroutput"><span class="char">'+'</span></tt>
+ for positive numbers, and <tt class="computeroutput"><span class="char">' '</span></tt>
for zeros. If this generator has an associated attribute it succeeds
only as long as the attribute is equal to the immediate literal
(unless the underlying output stream reports an error). Otherwise
this generator fails and does not generate any output.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.numeric.signed_int.additional_requirements"></a><h6>
-<a name="id787165"></a>
- <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.additional_requirements">Additional
+<a name="id598438"></a>
+ <a href="signed_int.html#spirit.karma.reference.numeric.signed_int.additional_requirements">Additional
Requirements</a>
</h6>
<p>
The following lists enumerate the requirements which must be met in order
- to use a certain type <code class="computeroutput"><span class="identifier">Num</span></code>
- to instantiate and use a <code class="computeroutput"><span class="identifier">int_generator</span><span class="special"><</span><span class="identifier">Num</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">force_sign</span><span class="special">></span></code>.
+ to use a certain type <tt class="computeroutput"><span class="identifier">Num</span></tt>
+ to instantiate and use a <tt class="computeroutput"><span class="identifier">int_generator</span><span class="special"><</span><span class="identifier">Num</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">,</span> <span class="identifier">force_sign</span><span class="special">></span></tt>.
</p>
<p>
- If <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_integral</span><span class="special"><</span><span class="identifier">Num</span><span class="special">>::</span><span class="identifier">value</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>
- the type <code class="computeroutput"><span class="identifier">Num</span></code> must have
+ If <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_integral</span><span class="special"><</span><span class="identifier">Num</span><span class="special">>::</span><span class="identifier">value</span></tt> is <tt class="computeroutput"><span class="keyword">true</span></tt>
+ the type <tt class="computeroutput"><span class="identifier">Num</span></tt> must have
defined:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
- comparison operators for: <code class="computeroutput"><span class="special"><</span></code>,
- <code class="computeroutput"><span class="special"><=</span></code>, <code class="computeroutput"><span class="special">==</span></code>,
- <code class="computeroutput"><span class="special">!=</span></code>, <code class="computeroutput"><span class="special">></span></code>,
- and <code class="computeroutput"><span class="special">>=</span></code>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ comparison operators for: <tt class="computeroutput"><span class="special"><</span></tt>,
+ <tt class="computeroutput"><span class="special"><=</span></tt>, <tt class="computeroutput"><span class="special">==</span></tt>,
+ <tt class="computeroutput"><span class="special">!=</span></tt>, <tt class="computeroutput"><span class="special">></span></tt>,
+ and <tt class="computeroutput"><span class="special">>=</span></tt>
</li>
-<li class="listitem">
- numeric operators for: <code class="computeroutput"><span class="special">+</span></code>,
- <code class="computeroutput"><span class="special">-</span></code>, <code class="computeroutput"><span class="special">/</span></code>,
- <code class="computeroutput"><span class="special">*</span></code>, <code class="computeroutput"><span class="special">%</span></code>,
- and unary <code class="computeroutput"><span class="special">-</span></code>
+<li>
+ numeric operators for: <tt class="computeroutput"><span class="special">+</span></tt>,
+ <tt class="computeroutput"><span class="special">-</span></tt>, <tt class="computeroutput"><span class="special">/</span></tt>,
+ <tt class="computeroutput"><span class="special">*</span></tt>, <tt class="computeroutput"><span class="special">%</span></tt>,
+ and unary <tt class="computeroutput"><span class="special">-</span></tt>
</li>
</ul></div>
<p>
- If <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_integral</span><span class="special"><</span><span class="identifier">Num</span><span class="special">>::</span><span class="identifier">value</span></code> is <code class="computeroutput"><span class="keyword">false</span></code>
- the type <code class="computeroutput"><span class="identifier">Num</span></code> must have
+ If <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_integral</span><span class="special"><</span><span class="identifier">Num</span><span class="special">>::</span><span class="identifier">value</span></tt> is <tt class="computeroutput"><span class="keyword">false</span></tt>
+ the type <tt class="computeroutput"><span class="identifier">Num</span></tt> must have
defined:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
- comparison operators for: <code class="computeroutput"><span class="special"><</span></code>,
- <code class="computeroutput"><span class="special"><=</span></code>, <code class="computeroutput"><span class="special">==</span></code>,
- <code class="computeroutput"><span class="special">!=</span></code>, <code class="computeroutput"><span class="special">></span></code>,
- and <code class="computeroutput"><span class="special">>=</span></code>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ comparison operators for: <tt class="computeroutput"><span class="special"><</span></tt>,
+ <tt class="computeroutput"><span class="special"><=</span></tt>, <tt class="computeroutput"><span class="special">==</span></tt>,
+ <tt class="computeroutput"><span class="special">!=</span></tt>, <tt class="computeroutput"><span class="special">></span></tt>,
+ and <tt class="computeroutput"><span class="special">>=</span></tt>
</li>
-<li class="listitem">
- numeric operators for: <code class="computeroutput"><span class="special">+</span></code>,
- <code class="computeroutput"><span class="special">-</span></code>, <code class="computeroutput"><span class="special">/</span></code>,
- <code class="computeroutput"><span class="special">*</span></code>, <code class="computeroutput"><span class="special">%</span></code>,
- and unary <code class="computeroutput"><span class="special">-</span></code>
+<li>
+ numeric operators for: <tt class="computeroutput"><span class="special">+</span></tt>,
+ <tt class="computeroutput"><span class="special">-</span></tt>, <tt class="computeroutput"><span class="special">/</span></tt>,
+ <tt class="computeroutput"><span class="special">*</span></tt>, <tt class="computeroutput"><span class="special">%</span></tt>,
+ and unary <tt class="computeroutput"><span class="special">-</span></tt>
</li>
-<li class="listitem">
+<li>
helper functions implementing the interface and the semantics of:
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">fmod</span></code>, <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">fabs</span></code>,
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pow</span></code>, <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">lround</span></code>,
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ltrunc</span></code>, <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">floor</span></code>,
- and <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ceil</span></code>. These need to be defined in
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">fmod</span></tt>, <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">fabs</span></tt>,
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pow</span></tt>, <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">lround</span></tt>,
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ltrunc</span></tt>, <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">floor</span></tt>,
+ and <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ceil</span></tt>. These need to be defined in
a way so that they will be found using argument dependent lookup (ADL).
</li>
</ul></div>
<a name="spirit.karma.reference.numeric.signed_int.attributes"></a><h6>
-<a name="id787616"></a>
- <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.attributes">Attributes</a>
+<a name="id599128"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -510,145 +465,105 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">short_</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">short</span></code>, attribute
+<td><p>
+ <tt class="computeroutput"><span class="identifier">short_</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">short</span></tt>, attribute
is mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">short_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">short</span></code>, attribute
+<td><p>
+ <tt class="computeroutput"><span class="identifier">short_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">short</span></tt>, attribute
is optional, if it is supplied, the generator compares the attribute
- with <code class="computeroutput"><span class="identifier">num</span></code> and
+ with <tt class="computeroutput"><span class="identifier">num</span></tt> and
succeeds only if both are equal, failing otherwise.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">int_</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">int</span></code>, attribute is
+<td><p>
+ <tt class="computeroutput"><span class="identifier">int_</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">int</span></tt>, attribute is
mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">int_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">int</span></code>, attribute is
+<td><p>
+ <tt class="computeroutput"><span class="identifier">int_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">int</span></tt>, attribute is
optional, if it is supplied, the generator compares the attribute
- with <code class="computeroutput"><span class="identifier">num</span></code> and
+ with <tt class="computeroutput"><span class="identifier">num</span></tt> and
succeeds only if both are equal, failing otherwise.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">long_</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">long</span></code>, attribute
+<td><p>
+ <tt class="computeroutput"><span class="identifier">long_</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">long</span></tt>, attribute
is mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">long_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">long</span></code>, attribute
+<td><p>
+ <tt class="computeroutput"><span class="identifier">long_</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">long</span></tt>, attribute
is optional, if it is supplied, the generator compares the attribute
- with <code class="computeroutput"><span class="identifier">num</span></code> and
+ with <tt class="computeroutput"><span class="identifier">num</span></tt> and
succeeds only if both are equal, failing otherwise.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">long_long</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">long</span></code>,
+<td><p>
+ <tt class="computeroutput"><span class="identifier">long_long</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">long</span> <span class="keyword">long</span></tt>,
attribute is mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">long_long</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">long</span></code>,
+<td><p>
+ <tt class="computeroutput"><span class="identifier">long_long</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">long</span> <span class="keyword">long</span></tt>,
attribute is optional, if it is supplied, the generator compares
- the attribute with <code class="computeroutput"><span class="identifier">num</span></code>
+ the attribute with <tt class="computeroutput"><span class="identifier">num</span></tt>
and succeeds only if both are equal, failing otherwise.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">int_generator</span><span class="special"><</span>
@@ -656,17 +571,15 @@
<span class="special">>()</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Num</span></code>, attribute
+</td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Num</span></tt>, attribute
is mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">int_generator</span><span class="special"><</span>
@@ -674,48 +587,46 @@
<span class="special">>()(</span><span class="identifier">num</span><span class="special">)</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Num</span></code>, attribute
+</td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Num</span></tt>, attribute
is optional, if it is supplied, the generator compares the attribute
- with <code class="computeroutput"><span class="identifier">num</span></code> and
+ with <tt class="computeroutput"><span class="identifier">num</span></tt> and
succeeds only if both are equal, failing otherwise.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- In addition to their usual attribute of type <code class="computeroutput"><span class="identifier">Num</span></code>
- all listed generators accept an instance of a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Num</span><span class="special">></span></code> as well. If the <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></code> is initialized (holds a value)
- the generators behave as if their attribute was an instance of <code class="computeroutput"><span class="identifier">Num</span></code> and emit the value stored in
- the <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></code>.
+<tr><td colspan="2" align="left" valign="top"><p>
+ In addition to their usual attribute of type <tt class="computeroutput"><span class="identifier">Num</span></tt>
+ all listed generators accept an instance of a <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Num</span><span class="special">></span></tt> as well. If the <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></tt> is initialized (holds a value)
+ the generators behave as if their attribute was an instance of <tt class="computeroutput"><span class="identifier">Num</span></tt> and emit the value stored in
+ the <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></tt>.
Otherwise the generators will fail.
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.numeric.signed_int.complexity"></a><h6>
-<a name="id788258"></a>
- <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.complexity">Complexity</a>
+<a name="id600012"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- O(N), where <code class="computeroutput"><span class="identifier">N</span></code> is
+ O(N), where <tt class="computeroutput"><span class="identifier">N</span></tt> is
the number of digits needed to represent the generated integer number
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.karma.reference.numeric.signed_int.example"></a><h6>
-<a name="id788289"></a>
- <a class="link" href="signed_int.html#spirit.karma.reference.numeric.signed_int.example">Example</a>
+<a name="id600062"></a>
+ Example
</h6>
<p>
Some includes:
@@ -793,7 +704,7 @@
<p>
</p>
<p>
- Basic usage of an <code class="computeroutput"><span class="identifier">int_</span></code>
+ Basic usage of an <tt class="computeroutput"><span class="identifier">int_</span></tt>
generator:
</p>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/unsigned_int.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/unsigned_int.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/numeric/unsigned_int.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,17 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Unsigned Integer Number Generators (uint_, etc.)</title>
+<title> Unsigned
+ Integer Number Generators (uint_,
+ etc.)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../numeric.html" title="Numeric">
-<link rel="prev" href="../numeric.html" title="Numeric">
-<link rel="next" href="signed_int.html" title="Signed Integer Number Generators (int_, etc.)">
+<link rel="up" href="../numeric.html" title=" Numeric">
+<link rel="previous" href="../numeric.html" title=" Numeric">
+<link rel="next" href="signed_int.html" title=" Signed
+ Integer Number Generators (int_,
+ etc.)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,122 +26,109 @@
<div class="spirit-nav">
<a accesskey="p" href="../numeric.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../numeric.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="signed_int.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Unsigned Integer Number Generators (uint_, etc.)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.numeric.unsigned_int"></a><a class="link" href="unsigned_int.html" title="Unsigned Integer Number Generators (uint_, etc.)"> Unsigned
- Integer Number Generators (<code class="computeroutput"><span class="identifier">uint_</span></code>,
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.numeric.unsigned_int"></a><a href="unsigned_int.html" title=" Unsigned
+ Integer Number Generators (uint_,
+ etc.)"> Unsigned
+ Integer Number Generators (<tt class="computeroutput"><span class="identifier">uint_</span></tt>,
etc.)</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.numeric.unsigned_int.description"></a><h6>
-<a name="id780245"></a>
- <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.description">Description</a>
+<a name="id590577"></a>
+ Description
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">uint_generator</span></code> class
- is the simplest among the members of the numerics package. The <code class="computeroutput"><span class="identifier">uint_generator</span></code> can generate unsigned
- integers of arbitrary length and size. The <code class="computeroutput"><span class="identifier">uint_generator</span></code>
+ The <tt class="computeroutput"><span class="identifier">uint_generator</span></tt> class
+ is the simplest among the members of the numerics package. The <tt class="computeroutput"><span class="identifier">uint_generator</span></tt> can generate unsigned
+ integers of arbitrary length and size. The <tt class="computeroutput"><span class="identifier">uint_generator</span></tt>
generator can be used to generate ordinary primitive C/C++ integers or
even user defined scalars such as bigints (unlimited precision integers)
as long as the type follows certain expression requirements (for more
- information about the requirements, see <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.additional_requirements">below</a>)).
- The <code class="computeroutput"><span class="identifier">uint_generator</span></code> is
+ information about the requirements, see below)).
+ The <tt class="computeroutput"><span class="identifier">uint_generator</span></tt> is
a template class. Template parameters fine tune its behavior.
</p>
<a name="spirit.karma.reference.numeric.unsigned_int.header"></a><h6>
-<a name="id780295"></a>
- <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.header">Header</a>
+<a name="id590675"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/numeric/uint.hpp>
</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">karma_uint</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.numeric.unsigned_int.namespace"></a><h6>
-<a name="id780369"></a>
- <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.namespace">Namespace</a>
+<a name="id590789"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lit</span> <span class="comment">// alias:
- boost::spirit::karma::lit</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">bin</span> <span class="comment">// alias:
- boost::spirit::karma::bin</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">oct</span> <span class="comment">// alias:
- boost::spirit::karma::oct</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">hex</span> <span class="comment">// alias:
- boost::spirit::karma::hex</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ushort_</span> <span class="comment">//
- alias: boost::spirit::karma::ushort_</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ulong_</span> <span class="comment">// alias:
- boost::spirit::karma::ulong_</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">uint_</span> <span class="comment">// alias:
- boost::spirit::karma::uint_</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ulong_long</span> <span class="comment">//
- alias: boost::spirit::karma::ulong_long</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lit</span> <span class="comment">// alias:
+ boost::spirit::karma::lit</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">bin</span> <span class="comment">// alias:
+ boost::spirit::karma::bin</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">oct</span> <span class="comment">// alias:
+ boost::spirit::karma::oct</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">hex</span> <span class="comment">// alias:
+ boost::spirit::karma::hex</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ushort_</span> <span class="comment">//
+ alias: boost::spirit::karma::ushort_</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ulong_</span> <span class="comment">// alias:
+ boost::spirit::karma::ulong_</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">uint_</span> <span class="comment">// alias:
+ boost::spirit::karma::uint_</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ulong_long</span> <span class="comment">//
+ alias: boost::spirit::karma::ulong_long</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
-<div class="important" title="Important"><table border="0" summary="Important">
+<div class="important"><table border="0" summary="Important">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../images/important.png"></td>
<th align="left">Important</th>
</tr>
-<tr><td align="left" valign="top"><p>
- The generators <code class="computeroutput"><span class="identifier">ulong_long</span></code>
- and <code class="computeroutput"><span class="identifier">ulong_long</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
- are only available on platforms where the preprocessor constant <code class="computeroutput"><span class="identifier">BOOST_HAS_LONG_LONG</span></code> is defined (i.e.
- on platforms having native support for <code class="computeroutput"><span class="keyword">unsigned</span>
- <span class="keyword">long</span> <span class="keyword">long</span></code>
+<tr><td colspan="2" align="left" valign="top"><p>
+ The generators <tt class="computeroutput"><span class="identifier">ulong_long</span></tt>
+ and <tt class="computeroutput"><span class="identifier">ulong_long</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>
+ are only available on platforms where the preprocessor constant <tt class="computeroutput"><span class="identifier">BOOST_HAS_LONG_LONG</span></tt> is defined (i.e.
+ on platforms having native support for <tt class="computeroutput"><span class="keyword">unsigned</span>
+ <span class="keyword">long</span> <span class="keyword">long</span></tt>
(64 bit) unsigned integer types).
</p></td></tr>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- <code class="computeroutput"><span class="identifier">lit</span></code> is reused by the
- <a class="link" href="../string.html" title="String">String Generators</a>,
- the <a class="link" href="../char.html" title="Char">Character Generators</a>,
+<tr><td colspan="2" align="left" valign="top"><p>
+ <tt class="computeroutput"><span class="identifier">lit</span></tt> is reused by the
+ String Generators,
+ the Character Generators,
and the Numeric Generators. In general, a char generator is created
when you pass in a character, a string generator is created when you
pass in a string, and a numeric generator is created when you use a
@@ -145,8 +136,8 @@
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.numeric.unsigned_int.synopsis"></a><h6>
-<a name="id780794"></a>
- <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.synopsis">Synopsis</a>
+<a name="id591365"></a>
+ Synopsis
</h6>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span>
<span class="keyword">typename</span> <span class="identifier">Num</span>
@@ -154,8 +145,8 @@
<span class="keyword">struct</span> <span class="identifier">uint_generator</span><span class="special">;</span>
</pre>
<a name="spirit.karma.reference.numeric.unsigned_int.template_parameters"></a><h6>
-<a name="id780864"></a>
- <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.template_parameters">Template
+<a name="id591462"></a>
+ <a href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.template_parameters">Template
parameters</a>
</h6>
<div class="informaltable"><table class="table">
@@ -165,106 +156,88 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Parameter
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Default
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Num</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Num</span></tt>
+ </p></td>
+<td><p>
The numeric base type of the numeric generator.
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></code>
- </p>
- </td>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Radix</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Radix</span></tt>
+ </p></td>
+<td><p>
The radix base. This can be either 2: binary, 8: octal, 10: decimal
and 16: hexadecimal.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
10
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.numeric.unsigned_int.model_of"></a><h6>
-<a name="id780991"></a>
- <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.model_of">Model
+<a name="id591624"></a>
+ <a href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>
+ PrimitiveGenerator
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">num</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">num</span></tt></span></dt>
<dd><p>
- Numeric literal, any unsigned integer value, or a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ Numeric literal, any unsigned integer value, or a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a> that evaluates to an unsigned integer value of type
- <code class="computeroutput"><span class="identifier">Num</span></code>
+ <tt class="computeroutput"><span class="identifier">Num</span></tt>
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Num</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Num</span></tt></span></dt>
<dd><p>
- Type of <code class="computeroutput"><span class="identifier">num</span></code>: any
- unsigned integer type, or in case of a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ Type of <tt class="computeroutput"><span class="identifier">num</span></tt>: any
+ unsigned integer type, or in case of a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a>, its return value
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Radix</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Radix</span></tt></span></dt>
<dd><p>
A integer literal specifying the required radix for the output conversion.
- Valid values are <code class="computeroutput"><span class="number">2</span></code>,
- <code class="computeroutput"><span class="number">8</span></code>, <code class="computeroutput"><span class="number">10</span></code>,
- and <code class="computeroutput"><span class="number">16</span></code>.
+ Valid values are <tt class="computeroutput"><span class="number">2</span></tt>,
+ <tt class="computeroutput"><span class="number">8</span></tt>, <tt class="computeroutput"><span class="number">10</span></tt>,
+ and <tt class="computeroutput"><span class="number">16</span></tt>.
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.numeric.unsigned_int.expression_semantics"></a><h6>
-<a name="id781142"></a>
- <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.expression_semantics">Expression
+<a name="id591849"></a>
+ <a href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>.
+ is not defined in PrimitiveGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -272,36 +245,28 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate the integer literal <code class="computeroutput"><span class="identifier">num</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Generate the integer literal <tt class="computeroutput"><span class="identifier">num</span></tt>
using the default formatting (radix is 10, sign is only printed
for negative literals). This generator never fails (except if
the underlying output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">ushort</span>
@@ -310,18 +275,16 @@
<span class="identifier">ulong_long</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
+</td>
+<td><p>
Generate the unsigned integer provided by a mandatory attribute
using the default formatting (radix is 10). This generator never
fails (unless the underlying output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">ushort</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
@@ -330,21 +293,19 @@
<span class="identifier">ulong_long</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
+</td>
+<td><p>
Generate the unsigned integer provided by the immediate literal
value the generator is initialized from using the default formatting
(radix is 10). If this generator has an associated attribute
it succeeds only as long as the attribute is equal to the immediate
literal (unless the underlying output stream reports an error).
Otherwise this generator fails and does not generate any output.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">bin</span>
@@ -352,19 +313,17 @@
<span class="identifier">hex</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
+</td>
+<td><p>
Generate the unsigned integer provided by a mandatory attribute
- using the default formatting and the corresponding radix (<code class="computeroutput"><span class="identifier">bin</span></code>: radix is 2, <code class="computeroutput"><span class="identifier">oct</span></code>: radix is 8, <code class="computeroutput"><span class="identifier">hex</span></code>: radix is 16). This generator
+ using the default formatting and the corresponding radix (<tt class="computeroutput"><span class="identifier">bin</span></tt>: radix is 2, <tt class="computeroutput"><span class="identifier">oct</span></tt>: radix is 8, <tt class="computeroutput"><span class="identifier">hex</span></tt>: radix is 16). This generator
never fails (except if the underlying output stream reports an
error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">bin</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
@@ -372,26 +331,24 @@
<span class="identifier">hex</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
+</td>
+<td><p>
Generate the unsigned integer provided by the immediate literal
value the generator is initialized from using the default formatting
- and the corresponding radix (<code class="computeroutput"><span class="identifier">bin</span></code>:
- radix is 2, <code class="computeroutput"><span class="identifier">oct</span></code>:
- radix is 8, <code class="computeroutput"><span class="identifier">hex</span></code>:
+ and the corresponding radix (<tt class="computeroutput"><span class="identifier">bin</span></tt>:
+ radix is 2, <tt class="computeroutput"><span class="identifier">oct</span></tt>:
+ radix is 8, <tt class="computeroutput"><span class="identifier">hex</span></tt>:
radix is 16). If this generator has an associated attribute it
succeeds only as long as the attribute is equal to the immediate
literal (unless the underlying output stream reports an error).
Otherwise this generator fails and does not generate any output.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<p>
- All generators listed in the table above (except <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>) are predefined specializations of the
- <code class="computeroutput"><span class="identifier">uint_generator</span><span class="special"><</span><span class="identifier">Num</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">></span></code>
+ All generators listed in the table above (except <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>) are predefined specializations of the
+ <tt class="computeroutput"><span class="identifier">uint_generator</span><span class="special"><</span><span class="identifier">Num</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">></span></tt>
basic unsigned integer number generator type described below. It is possible
to directly use this type to create unsigned integer generators using
a wide range of formatting options.
@@ -402,21 +359,17 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">uint_generator</span><span class="special"><</span>
@@ -424,22 +377,20 @@
<span class="special">>()</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
- Generate the unsigned integer of type <code class="computeroutput"><span class="identifier">Num</span></code>
- provided by a mandatory attribute using the specified <code class="computeroutput"><span class="identifier">Radix</span></code> (possible values are
- <code class="computeroutput"><span class="number">2</span></code>, <code class="computeroutput"><span class="number">8</span></code>, <code class="computeroutput"><span class="number">10</span></code>,
- and <code class="computeroutput"><span class="number">16</span></code>, the default
- value is <code class="computeroutput"><span class="number">10</span></code>).This
+</td>
+<td><p>
+ Generate the unsigned integer of type <tt class="computeroutput"><span class="identifier">Num</span></tt>
+ provided by a mandatory attribute using the specified <tt class="computeroutput"><span class="identifier">Radix</span></tt> (possible values are
+ <tt class="computeroutput"><span class="number">2</span></tt>, <tt class="computeroutput"><span class="number">8</span></tt>, <tt class="computeroutput"><span class="number">10</span></tt>,
+ and <tt class="computeroutput"><span class="number">16</span></tt>, the default
+ value is <tt class="computeroutput"><span class="number">10</span></tt>).This
generator never fails (unless the underlying output stream reports
an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">uint_generator</span><span class="special"><</span>
@@ -447,81 +398,79 @@
<span class="special">>()(</span><span class="identifier">num</span><span class="special">)</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
- Generate the unsigned integer of type <code class="computeroutput"><span class="identifier">Num</span></code>
+</td>
+<td><p>
+ Generate the unsigned integer of type <tt class="computeroutput"><span class="identifier">Num</span></tt>
provided by the immediate literal value the generator is initialized
- from, using the specified <code class="computeroutput"><span class="identifier">Radix</span></code>
- (possible values are <code class="computeroutput"><span class="number">2</span></code>,
- <code class="computeroutput"><span class="number">8</span></code>, <code class="computeroutput"><span class="number">10</span></code>, and <code class="computeroutput"><span class="number">16</span></code>,
- the default value is <code class="computeroutput"><span class="number">10</span></code>).
+ from, using the specified <tt class="computeroutput"><span class="identifier">Radix</span></tt>
+ (possible values are <tt class="computeroutput"><span class="number">2</span></tt>,
+ <tt class="computeroutput"><span class="number">8</span></tt>, <tt class="computeroutput"><span class="number">10</span></tt>, and <tt class="computeroutput"><span class="number">16</span></tt>,
+ the default value is <tt class="computeroutput"><span class="number">10</span></tt>).
If this generator has an associated attribute it succeeds only
as long as the attribute is equal to the immediate literal (unless
the underlying output stream reports an error). Otherwise this
generator fails and does not generate any output.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.numeric.unsigned_int.additional_requirements"></a><h6>
-<a name="id781818"></a>
- <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.additional_requirements">Additional
+<a name="id592784"></a>
+ <a href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.additional_requirements">Additional
Requirements</a>
</h6>
<p>
The following lists enumerate the requirements which must be met in order
- to use a certain type <code class="computeroutput"><span class="identifier">Num</span></code>
- to instantiate and use a <code class="computeroutput"><span class="identifier">uint_generator</span><span class="special"><</span><span class="identifier">Num</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">></span></code>.
+ to use a certain type <tt class="computeroutput"><span class="identifier">Num</span></tt>
+ to instantiate and use a <tt class="computeroutput"><span class="identifier">uint_generator</span><span class="special"><</span><span class="identifier">Num</span><span class="special">,</span> <span class="identifier">Radix</span><span class="special">></span></tt>.
</p>
<p>
- If <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_integral</span><span class="special"><</span><span class="identifier">Num</span><span class="special">>::</span><span class="identifier">value</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>
- the type <code class="computeroutput"><span class="identifier">Num</span></code> must have
+ If <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_integral</span><span class="special"><</span><span class="identifier">Num</span><span class="special">>::</span><span class="identifier">value</span></tt> is <tt class="computeroutput"><span class="keyword">true</span></tt>
+ the type <tt class="computeroutput"><span class="identifier">Num</span></tt> must have
defined:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
- comparison operators for: <code class="computeroutput"><span class="special"><</span></code>,
- <code class="computeroutput"><span class="special"><=</span></code>, <code class="computeroutput"><span class="special">==</span></code>,
- <code class="computeroutput"><span class="special">!=</span></code>, <code class="computeroutput"><span class="special">></span></code>,
- and <code class="computeroutput"><span class="special">>=</span></code>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ comparison operators for: <tt class="computeroutput"><span class="special"><</span></tt>,
+ <tt class="computeroutput"><span class="special"><=</span></tt>, <tt class="computeroutput"><span class="special">==</span></tt>,
+ <tt class="computeroutput"><span class="special">!=</span></tt>, <tt class="computeroutput"><span class="special">></span></tt>,
+ and <tt class="computeroutput"><span class="special">>=</span></tt>
</li>
-<li class="listitem">
- numeric operators for: <code class="computeroutput"><span class="special">+</span></code>,
- <code class="computeroutput"><span class="special">-</span></code>, <code class="computeroutput"><span class="special">/</span></code>,
- <code class="computeroutput"><span class="special">*</span></code>, and <code class="computeroutput"><span class="special">%</span></code>
+<li>
+ numeric operators for: <tt class="computeroutput"><span class="special">+</span></tt>,
+ <tt class="computeroutput"><span class="special">-</span></tt>, <tt class="computeroutput"><span class="special">/</span></tt>,
+ <tt class="computeroutput"><span class="special">*</span></tt>, and <tt class="computeroutput"><span class="special">%</span></tt>
</li>
</ul></div>
<p>
- If <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_integral</span><span class="special"><</span><span class="identifier">Num</span><span class="special">>::</span><span class="identifier">value</span></code> is <code class="computeroutput"><span class="keyword">false</span></code>
- the type <code class="computeroutput"><span class="identifier">Num</span></code> must have
+ If <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_integral</span><span class="special"><</span><span class="identifier">Num</span><span class="special">>::</span><span class="identifier">value</span></tt> is <tt class="computeroutput"><span class="keyword">false</span></tt>
+ the type <tt class="computeroutput"><span class="identifier">Num</span></tt> must have
defined:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
- comparison operators for: <code class="computeroutput"><span class="special"><</span></code>,
- <code class="computeroutput"><span class="special"><=</span></code>, <code class="computeroutput"><span class="special">==</span></code>,
- <code class="computeroutput"><span class="special">!=</span></code>, <code class="computeroutput"><span class="special">></span></code>,
- and <code class="computeroutput"><span class="special">>=</span></code>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ comparison operators for: <tt class="computeroutput"><span class="special"><</span></tt>,
+ <tt class="computeroutput"><span class="special"><=</span></tt>, <tt class="computeroutput"><span class="special">==</span></tt>,
+ <tt class="computeroutput"><span class="special">!=</span></tt>, <tt class="computeroutput"><span class="special">></span></tt>,
+ and <tt class="computeroutput"><span class="special">>=</span></tt>
</li>
-<li class="listitem">
- numeric operators for: <code class="computeroutput"><span class="special">+</span></code>,
- <code class="computeroutput"><span class="special">-</span></code>, <code class="computeroutput"><span class="special">/</span></code>,
- <code class="computeroutput"><span class="special">*</span></code>, and <code class="computeroutput"><span class="special">%</span></code>
+<li>
+ numeric operators for: <tt class="computeroutput"><span class="special">+</span></tt>,
+ <tt class="computeroutput"><span class="special">-</span></tt>, <tt class="computeroutput"><span class="special">/</span></tt>,
+ <tt class="computeroutput"><span class="special">*</span></tt>, and <tt class="computeroutput"><span class="special">%</span></tt>
</li>
-<li class="listitem">
+<li>
helper functions implementing the interface and the semantics of:
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">fmod</span></code>, <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pow</span></code>,
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">lround</span></code>, <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ltrunc</span></code>,
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">floor</span></code>, and <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ceil</span></code>.
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">fmod</span></tt>, <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pow</span></tt>,
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">lround</span></tt>, <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ltrunc</span></tt>,
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">floor</span></tt>, and <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ceil</span></tt>.
These need to be defined in a way so that they will be found using
argument dependent lookup (ADL).
</li>
</ul></div>
<a name="spirit.karma.reference.numeric.unsigned_int.attributes"></a><h6>
-<a name="id782232"></a>
- <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.attributes">Attributes</a>
+<a name="id593418"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -529,147 +478,107 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ushort</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">short</span></code>,
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ushort</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">short</span></tt>,
attribute is mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ushort</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">short</span></code>,
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ushort</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">short</span></tt>,
attribute is optional, if it is supplied, the generator compares
- the attribute with <code class="computeroutput"><span class="identifier">num</span></code>
+ the attribute with <tt class="computeroutput"><span class="identifier">num</span></tt>
and succeeds only if both are equal, failing otherwise.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">uint</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></code>,
+<td><p>
+ <tt class="computeroutput"><span class="identifier">uint</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></tt>,
attribute is mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">uint</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></code>,
+<td><p>
+ <tt class="computeroutput"><span class="identifier">uint</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></tt>,
attribute is optional, if it is supplied, the generator compares
- the attribute with <code class="computeroutput"><span class="identifier">num</span></code>
+ the attribute with <tt class="computeroutput"><span class="identifier">num</span></tt>
and succeeds only if both are equal, failing otherwise.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ulong</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span></code>,
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ulong</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span></tt>,
attribute is mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ulong</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span></code>,
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ulong</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span></tt>,
attribute is optional, if it is supplied, the generator compares
- the attribute with <code class="computeroutput"><span class="identifier">num</span></code>
+ the attribute with <tt class="computeroutput"><span class="identifier">num</span></tt>
and succeeds only if both are equal, failing otherwise.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ulong_long</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span>
- <span class="keyword">long</span></code>, attribute is mandatory
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ulong_long</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span>
+ <span class="keyword">long</span></tt>, attribute is mandatory
(otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ulong_long</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span>
- <span class="keyword">long</span></code>, attribute is optional,
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ulong_long</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span>
+ <span class="keyword">long</span></tt>, attribute is optional,
if it is supplied, the generator compares the attribute with
- <code class="computeroutput"><span class="identifier">num</span></code> and succeeds
+ <tt class="computeroutput"><span class="identifier">num</span></tt> and succeeds
only if both are equal, failing otherwise.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">bin</span>
@@ -677,17 +586,15 @@
<span class="identifier">hex</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></code>,
+</td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></tt>,
attribute is mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">bin</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span>
@@ -695,19 +602,17 @@
<span class="identifier">hex</span><span class="special">(</span><span class="identifier">num</span><span class="special">)</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></code>,
+</td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></tt>,
attribute is optional, if it is supplied, the generator compares
- the attribute with <code class="computeroutput"><span class="identifier">num</span></code>
+ the attribute with <tt class="computeroutput"><span class="identifier">num</span></tt>
and succeeds only if both are equal, failing otherwise.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">uint_generator</span><span class="special"><</span>
@@ -715,17 +620,15 @@
<span class="special">>()</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Num</span></code>, attribute
+</td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Num</span></tt>, attribute
is mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">uint_generator</span><span class="special"><</span>
@@ -733,48 +636,46 @@
<span class="special">>()(</span><span class="identifier">num</span><span class="special">)</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Num</span></code>, attribute
+</td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Num</span></tt>, attribute
is optional, if it is supplied, the generator compares the attribute
- with <code class="computeroutput"><span class="identifier">num</span></code> and
+ with <tt class="computeroutput"><span class="identifier">num</span></tt> and
succeeds only if both are equal, failing otherwise.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- In addition to their usual attribute of type <code class="computeroutput"><span class="identifier">Num</span></code>
- all listed generators accept an instance of a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Num</span><span class="special">></span></code> as well. If the <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></code> is initialized (holds a value)
- the generators behave as if their attribute was an instance of <code class="computeroutput"><span class="identifier">Num</span></code> and emit the value stored in
- the <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></code>.
+<tr><td colspan="2" align="left" valign="top"><p>
+ In addition to their usual attribute of type <tt class="computeroutput"><span class="identifier">Num</span></tt>
+ all listed generators accept an instance of a <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Num</span><span class="special">></span></tt> as well. If the <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></tt> is initialized (holds a value)
+ the generators behave as if their attribute was an instance of <tt class="computeroutput"><span class="identifier">Num</span></tt> and emit the value stored in
+ the <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></tt>.
Otherwise the generators will fail.
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.numeric.unsigned_int.complexity"></a><h6>
-<a name="id783027"></a>
- <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.complexity">Complexity</a>
+<a name="id594507"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- O(N), where <code class="computeroutput"><span class="identifier">N</span></code> is
+ O(N), where <tt class="computeroutput"><span class="identifier">N</span></tt> is
the number of digits needed to represent the generated integer number
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.karma.reference.numeric.unsigned_int.example"></a><h6>
-<a name="id783058"></a>
- <a class="link" href="unsigned_int.html#spirit.karma.reference.numeric.unsigned_int.example">Example</a>
+<a name="id594556"></a>
+ Example
</h6>
<p>
Some includes:
@@ -852,7 +753,7 @@
<p>
</p>
<p>
- Basic usage of an <code class="computeroutput"><span class="identifier">uint</span></code>
+ Basic usage of an <tt class="computeroutput"><span class="identifier">uint</span></tt>
generator:
</p>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/operator.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/operator.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/operator.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,14 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Operator</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="directive/omit.html" title="Consume Attribute (omit[])">
-<link rel="next" href="operator/sequence.html" title="Sequences (a << b)">
+<link rel="previous" href="directive/omit.html" title=" Consume Attribute
+ (omit[])">
+<link rel="next" href="operator/sequence.html" title=" Sequences
+ (a <<
+ b)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,60 +25,64 @@
<div class="spirit-nav">
<a accesskey="p" href="directive/omit.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="operator/sequence.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Operator">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.reference.operator"></a><a class="link" href="operator.html" title="Operator">Operator</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.reference.operator"></a>Operator
+</h4></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section"><a href="operator/sequence.html"> Sequences
- (<code class="computeroutput"><span class="identifier">a</span> <span class="special"><<</span>
- <span class="identifier">b</span></code>)</a></span></dt>
+ (<tt class="computeroutput"><span class="identifier">a</span> <span class="special"><<</span>
+ <span class="identifier">b</span></tt>)</a></span></dt>
<dt><span class="section"><a href="operator/alternative.html"> Alternative
- (<code class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
- <span class="identifier">b</span></code>)</a></span></dt>
+ (<tt class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
+ <span class="identifier">b</span></tt>)</a></span></dt>
<dt><span class="section"><a href="operator/kleene.html"> Kleene Star
- (<code class="computeroutput"><span class="special">*</span><span class="identifier">a</span></code>)</a></span></dt>
-<dt><span class="section"> Plus (+a
)</span></dt>
-<dt><span class="section"> Lists (a % b
)</span></dt>
+ (<tt class="computeroutput"><span class="special">*</span><span class="identifier">a</span></tt>)</a></span></dt>
+<dt><span class="section"> Plus (+a)</span></dt>
+<dt><span class="section"> Lists (a % b)</span></dt>
<dt><span class="section"><a href="operator/optional.html"> Optional
- (<code class="computeroutput"><span class="special">-</span><span class="identifier">a</span></code>)</a></span></dt>
+ (<tt class="computeroutput"><span class="special">-</span><span class="identifier">a</span></tt>)</a></span></dt>
<dt><span class="section"><a href="operator/and_predicate.html"> And
- Predicate (<code class="computeroutput"><span class="special">&</span><span class="identifier">a</span></code>)</a></span></dt>
+ Predicate (<tt class="computeroutput"><span class="special">&</span><span class="identifier">a</span></tt>)</a></span></dt>
<dt><span class="section"><a href="operator/not_predicate.html"> Not
- Predicate (<code class="computeroutput"><span class="special">!</span><span class="identifier">a</span></code>)</a></span></dt>
+ Predicate (<tt class="computeroutput"><span class="special">!</span><span class="identifier">a</span></tt>)</a></span></dt>
</dl></div>
<p>
Operators are used as a means for object composition and embedding. Simple
generators may be composed to form composites through operator overloading,
- crafted to approximate the syntax of <a class="link" href="../../abstracts/parsing_expression_grammar.html" title="Parsing Expression Grammar">Parsing
+ crafted to approximate the syntax of <a href="../../abstracts/parsing_expression_grammar.html" title="Parsing
+ Expression Grammar">Parsing
Expression Grammar</a> (PEG). An expression such as:
</p>
<pre class="programlisting"><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span>
</pre>
<p>
- yields a new generator type which is a composite of its operands, <code class="computeroutput"><span class="identifier">a</span></code> and <code class="computeroutput"><span class="identifier">b</span></code>.
+ yields a new generator type which is a composite of its operands, <tt class="computeroutput"><span class="identifier">a</span></tt> and <tt class="computeroutput"><span class="identifier">b</span></tt>.
</p>
<p>
This module includes different generators which get instantiated if one
of the overloaded operators is used with more primitive generator constructs.
- It includes sequences (<code class="computeroutput"><span class="identifier">a</span> <span class="special"><<</span> <span class="identifier">b</span></code>),
- alternatives (<code class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
- <span class="identifier">b</span></code>), Kleene star (unary <code class="computeroutput"><span class="special">*</span></code>), plus (unary <code class="computeroutput"><span class="special">+</span></code>),
- optional (unary <code class="computeroutput"><span class="special">-</span></code>), lists
- (<code class="computeroutput"><span class="identifier">a</span> <span class="special">%</span>
- <span class="identifier">b</span></code>), and the two predicates, the
- <span class="emphasis"><em>and</em></span> predicate (unary <code class="computeroutput"><span class="special">&</span></code>)
- and the <span class="emphasis"><em>not</em></span> predicate (unary <code class="computeroutput"><span class="special">!</span></code>).
+ It includes sequences (<tt class="computeroutput"><span class="identifier">a</span> <span class="special"><<</span> <span class="identifier">b</span></tt>),
+ alternatives (<tt class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
+ <span class="identifier">b</span></tt>), Kleene star (unary <tt class="computeroutput"><span class="special">*</span></tt>), plus (unary <tt class="computeroutput"><span class="special">+</span></tt>),
+ optional (unary <tt class="computeroutput"><span class="special">-</span></tt>), lists
+ (<tt class="computeroutput"><span class="identifier">a</span> <span class="special">%</span>
+ <span class="identifier">b</span></tt>), and the two predicates, the
+ <span class="emphasis"><em>and</em></span> predicate (unary <tt class="computeroutput"><span class="special">&</span></tt>)
+ and the <span class="emphasis"><em>not</em></span> predicate (unary <tt class="computeroutput"><span class="special">!</span></tt>).
</p>
-<a name="spirit.karma.reference.operator.module_header"></a><h6>
-<a name="id854283"></a>
- <a class="link" href="operator.html#spirit.karma.reference.operator.module_header">Module Header</a>
- </h6>
+<a name="spirit.karma.reference.operator.module_header"></a><h5>
+<a name="id664916"></a>
+ Module Header
+ </h5>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/operator.hpp>
</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">karma_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/operator/alternative.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/operator/alternative.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/operator/alternative.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,18 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Alternative (a | b)</title>
+<title> Alternative
+ (a |
+ b)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../operator.html" title="Operator">
-<link rel="prev" href="sequence.html" title="Sequences (a << b)">
-<link rel="next" href="kleene.html" title="Kleene Star (*a)">
+<link rel="previous" href="sequence.html" title=" Sequences
+ (a <<
+ b)">
+<link rel="next" href="kleene.html" title=" Kleene Star
+ (*a)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,15 +27,20 @@
<div class="spirit-nav">
<a accesskey="p" href="sequence.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="kleene.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Alternative (a | b)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.operator.alternative"></a><a class="link" href="alternative.html" title="Alternative (a | b)"> Alternative
- (<code class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
- <span class="identifier">b</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.operator.alternative"></a><a href="alternative.html" title=" Alternative
+ (a |
+ b)"> Alternative
+ (<tt class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
+ <span class="identifier">b</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.operator.alternative.description"></a><h6>
-<a name="id856345"></a>
- <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.description">Description</a>
+<a name="id667740"></a>
+ Description
</h6>
<p>
Generator alternatives are used to combine different, more primitive
@@ -38,37 +48,37 @@
from left to right until one of them succeeds.
</p>
<a name="spirit.karma.reference.operator.alternative.header"></a><h6>
-<a name="id856362"></a>
- <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.header">Header</a>
+<a name="id667772"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/operator/alternative.hpp>
</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">karma_alternative</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.operator.alternative.model_of"></a><h6>
-<a name="id856436"></a>
- <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.model_of">Model
+<a name="id667888"></a>
+ <a href="alternative.html#spirit.karma.reference.operator.alternative.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/narygenerator.html" title="NaryGenerator"><code class="computeroutput"><span class="identifier">NaryGenerator</span></code></a>
+ NaryGenerator
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.karma.reference.operator.alternative.expression_semantics"></a><h6>
-<a name="id856470"></a>
- <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.expression_semantics">Expression
+<a name="id667941"></a>
+ <a href="alternative.html#spirit.karma.reference.operator.alternative.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/narygenerator.html" title="NaryGenerator"><code class="computeroutput"><span class="identifier">NaryGenerator</span></code></a>.
+ is not defined in NaryGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -76,35 +86,27 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
- The generators <code class="computeroutput"><span class="identifier">a</span></code>
- and <code class="computeroutput"><span class="identifier">b</span></code> are executed
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
+ <span class="identifier">b</span></tt>
+ </p></td>
+<td><p>
+ The generators <tt class="computeroutput"><span class="identifier">a</span></tt>
+ and <tt class="computeroutput"><span class="identifier">b</span></tt> are executed
sequentially from left to right and until one of them succeeds.
A failed generator forces the alternative generator to try the
next one. The alternative fails as a whole only if all elements
of the alternative fail. Each element of the alternative gets
passed the whole attribute of the alternative.
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<p>
@@ -114,11 +116,11 @@
an element succeeded.
</p>
<a name="spirit.karma.reference.operator.alternative.attributes"></a><h6>
-<a name="id856582"></a>
- <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.attributes">Attributes</a>
+<a name="id668109"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -127,26 +129,20 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
+ <span class="identifier">b</span></tt> (alternative)
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
- <span class="identifier">b</span></code> (alternative)
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</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">B</span> <span class="special">--></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">variant</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span>
@@ -156,18 +152,18 @@
<span class="identifier">a</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">A</span> <span class="special">--></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">A</span></pre>
<p>
</p>
- </td>
+</td>
</tr></tbody>
</table></div>
-<div class="important" title="Important"><table border="0" summary="Important">
+<div class="important"><table border="0" summary="Important">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../images/important.png"></td>
<th align="left">Important</th>
</tr>
-<tr><td align="left" valign="top"><p>
- The table above uses <code class="computeroutput"><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></code> as a placeholder only. The notation
- <code class="computeroutput"><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></code>
- stands for the type <code class="computeroutput"><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></code>.
+<tr><td colspan="2" align="left" valign="top"><p>
+ The table above uses <tt class="computeroutput"><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></tt> as a placeholder only. The notation
+ <tt class="computeroutput"><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></tt>
+ stands for the type <tt class="computeroutput"><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></tt>.
</p></td></tr>
</table></div>
<p>
@@ -181,8 +177,8 @@
an example of this behavior.
</p>
<a name="spirit.karma.reference.operator.alternative.complexity"></a><h6>
-<a name="id857113"></a>
- <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.complexity">Complexity</a>
+<a name="id668806"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -197,8 +193,8 @@
</p>
</blockquote></div>
<a name="spirit.karma.reference.operator.alternative.example"></a><h6>
-<a name="id857137"></a>
- <a class="link" href="alternative.html#spirit.karma.reference.operator.alternative.example">Example</a>
+<a name="id668846"></a>
+ Example
</h6>
<p>
Some includes:
@@ -259,9 +255,9 @@
</p>
<p>
Basic usage of an alternative. While being only the second alternative,
- the <code class="computeroutput"><span class="identifier">double_</span></code> generator
+ the <tt class="computeroutput"><span class="identifier">double_</span></tt> generator
is chosen for output formatting because the supplied attribute type is
- not compatible (i.e. not convertible) to the attribute type of the <code class="computeroutput"><span class="identifier">string</span></code> alternative.
+ not compatible (i.e. not convertible) to the attribute type of the <tt class="computeroutput"><span class="identifier">string</span></tt> alternative.
</p>
<p>
</p>
@@ -278,7 +274,7 @@
</p>
<p>
The same formatting rules may be used to output a string. This time we
- supply the string <code class="computeroutput"><span class="string">"example"</span></code>,
+ supply the string <tt class="computeroutput"><span class="string">"example"</span></tt>,
resulting in the first alternative to be chosen for the generated output.
</p>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/operator/and_predicate.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/operator/and_predicate.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/operator/and_predicate.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>And Predicate (&a)</title>
+<title> And
+ Predicate (&a)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../operator.html" title="Operator">
-<link rel="prev" href="optional.html" title="Optional (-a)">
-<link rel="next" href="not_predicate.html" title="Not Predicate (!a)">
+<link rel="previous" href="optional.html" title=" Optional
+ (-a)">
+<link rel="next" href="not_predicate.html" title=" Not
+ Predicate (!a)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,14 +25,18 @@
<div class="spirit-nav">
<a accesskey="p" href="optional.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="not_predicate.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="And Predicate (&a)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.operator.and_predicate"></a><a class="link" href="and_predicate.html" title="And Predicate (&a)"> And
- Predicate (<code class="computeroutput"><span class="special">&</span><span class="identifier">a</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.operator.and_predicate"></a><a href="and_predicate.html" title=" And
+ Predicate (&a)"> And
+ Predicate (<tt class="computeroutput"><span class="special">&</span><span class="identifier">a</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.operator.and_predicate.description"></a><h6>
-<a name="id868555"></a>
- <a class="link" href="and_predicate.html#spirit.karma.reference.operator.and_predicate.description">Description</a>
+<a name="id679472"></a>
+ Description
</h6>
<p>
The and predicate generator is used to test, whether the embedded generator
@@ -37,37 +44,37 @@
succeeds.
</p>
<a name="spirit.karma.reference.operator.and_predicate.header"></a><h6>
-<a name="id868574"></a>
- <a class="link" href="and_predicate.html#spirit.karma.reference.operator.and_predicate.header">Header</a>
+<a name="id679506"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/operator/and_predicate.hpp>
</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">karma_and_predicate</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.operator.and_predicate.model_of"></a><h6>
-<a name="id868648"></a>
- <a class="link" href="and_predicate.html#spirit.karma.reference.operator.and_predicate.model_of">Model
+<a name="id679621"></a>
+ <a href="and_predicate.html#spirit.karma.reference.operator.and_predicate.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>
+ UnaryGenerator
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.karma.reference.operator.and_predicate.expression_semantics"></a><h6>
-<a name="id868684"></a>
- <a class="link" href="and_predicate.html#spirit.karma.reference.operator.and_predicate.expression_semantics">Expression
+<a name="id679676"></a>
+ <a href="and_predicate.html#spirit.karma.reference.operator.and_predicate.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>.
+ is not defined in UnaryGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -75,32 +82,24 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">&</span><span class="identifier">a</span></code>
- </p>
- </td>
-<td>
- <p>
- The generator <code class="computeroutput"><span class="identifier">a</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="special">&</span><span class="identifier">a</span></tt>
+ </p></td>
+<td><p>
+ The generator <tt class="computeroutput"><span class="identifier">a</span></tt>
is executed for the sole purpose of testing whether it succeeds.
The and predicate generator succeeds as long as its embedded
generator succeeds (unless the underlying output stream reports
an error). The and predicate never produces any output.
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<p>
@@ -108,11 +107,11 @@
its embedded generator into a discarding device.
</p>
<a name="spirit.karma.reference.operator.and_predicate.attributes"></a><h6>
-<a name="id868788"></a>
- <a class="link" href="and_predicate.html#spirit.karma.reference.operator.and_predicate.attributes">Attributes</a>
+<a name="id679821"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -121,48 +120,40 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">&</span><span class="identifier">a</span></code>
- (and predicate, unary <code class="computeroutput"><span class="special">&</span></code>)
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+<td><p>
+ <tt class="computeroutput"><span class="special">&</span><span class="identifier">a</span></tt>
+ (and predicate, unary <tt class="computeroutput"><span class="special">&</span></tt>)
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
<span class="identifier">A</span> <span class="special">--></span>
- <span class="special">&</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span></code>
- </p>
- </td>
+ <span class="special">&</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span></tt>
+ </p></td>
</tr></tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- The attribute of the and predicate is not always <code class="computeroutput"><span class="identifier">Unused</span></code>,
+<tr><td colspan="2" align="left" valign="top"><p>
+ The attribute of the and predicate is not always <tt class="computeroutput"><span class="identifier">Unused</span></tt>,
which is different from Qi's and predicate. This is necessary as the
generator the and predicate is attached to most of the time needs an
attribute.
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.operator.and_predicate.complexity"></a><h6>
-<a name="id868936"></a>
- <a class="link" href="and_predicate.html#spirit.karma.reference.operator.and_predicate.complexity">Complexity</a>
+<a name="id680017"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -176,8 +167,8 @@
</p>
</blockquote></div>
<a name="spirit.karma.reference.operator.and_predicate.example"></a><h6>
-<a name="id868963"></a>
- <a class="link" href="and_predicate.html#spirit.karma.reference.operator.and_predicate.example">Example</a>
+<a name="id680058"></a>
+ Example
</h6>
<p>
Some includes:
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/operator/kleene.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/operator/kleene.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/operator/kleene.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Kleene Star (*a)</title>
+<title> Kleene Star
+ (*a)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../operator.html" title="Operator">
-<link rel="prev" href="alternative.html" title="Alternative (a | b)">
-<link rel="next" href="plus.html" title="Plus (+a)">
+<link rel="previous" href="alternative.html" title=" Alternative
+ (a |
+ b)">
+<link rel="next" href="plus.html" title=" Plus (+a)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,14 +25,18 @@
<div class="spirit-nav">
<a accesskey="p" href="alternative.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="plus.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Kleene Star (*a)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.operator.kleene"></a><a class="link" href="kleene.html" title="Kleene Star (*a)"> Kleene Star
- (<code class="computeroutput"><span class="special">*</span><span class="identifier">a</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.operator.kleene"></a><a href="kleene.html" title=" Kleene Star
+ (*a)"> Kleene Star
+ (<tt class="computeroutput"><span class="special">*</span><span class="identifier">a</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.operator.kleene.description"></a><h6>
-<a name="id858196"></a>
- <a class="link" href="kleene.html#spirit.karma.reference.operator.kleene.description">Description</a>
+<a name="id670295"></a>
+ Description
</h6>
<p>
Kleene star generators are used to repeat the execution of an embedded
@@ -37,37 +44,37 @@
generator, the Kleene star generator always succeeds.
</p>
<a name="spirit.karma.reference.operator.kleene.header"></a><h6>
-<a name="id858212"></a>
- <a class="link" href="kleene.html#spirit.karma.reference.operator.kleene.header">Header</a>
+<a name="id670328"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/operator/kleene.hpp>
</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">karma_kleene</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.operator.kleene.model_of"></a><h6>
-<a name="id858287"></a>
- <a class="link" href="kleene.html#spirit.karma.reference.operator.kleene.model_of">Model
+<a name="id670442"></a>
+ <a href="kleene.html#spirit.karma.reference.operator.kleene.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>
+ UnaryGenerator
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.karma.reference.operator.kleene.expression_semantics"></a><h6>
-<a name="id858325"></a>
- <a class="link" href="kleene.html#spirit.karma.reference.operator.kleene.expression_semantics">Expression
+<a name="id670495"></a>
+ <a href="kleene.html#spirit.karma.reference.operator.kleene.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>.
+ is not defined in UnaryGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -75,51 +82,43 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">*</span><span class="identifier">a</span></code>
- </p>
- </td>
-<td>
- <p>
- The generator <code class="computeroutput"><span class="identifier">a</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="special">*</span><span class="identifier">a</span></tt>
+ </p></td>
+<td><p>
+ The generator <tt class="computeroutput"><span class="identifier">a</span></tt>
is executed zero or more times depending on the availability
- of an attribute. The execution of <code class="computeroutput"><span class="identifier">a</span></code>
+ of an attribute. The execution of <tt class="computeroutput"><span class="identifier">a</span></tt>
stops after the attribute values passed to the Kleene star generator
are exhausted. The Kleene star always succeeds (unless the underlying
output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
All failing iterations of the embedded generator will consume one element
from the supplied attribute.
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.operator.kleene.attributes"></a><h6>
-<a name="id858439"></a>
- <a class="link" href="kleene.html#spirit.karma.reference.operator.kleene.attributes">Attributes</a>
+<a name="id670654"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -128,45 +127,39 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="special">*</span><span class="identifier">a</span></tt>
+ (Kleene star, unary <tt class="computeroutput"><span class="special">*</span></tt>)
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="special">*</span><span class="identifier">a</span></code>
- (Kleene star, unary <code class="computeroutput"><span class="special">*</span></code>)
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="special">*</span><span class="identifier">a</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">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">*</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr></tbody>
</table></div>
-<div class="important" title="Important"><table border="0" summary="Important">
+<div class="important"><table border="0" summary="Important">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../images/important.png"></td>
<th align="left">Important</th>
</tr>
-<tr><td align="left" valign="top"><p>
- The table above uses <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code> as a placeholder only. The notation
- of <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>
+<tr><td colspan="2" align="left" valign="top"><p>
+ The table above uses <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt> as a placeholder only. The notation
+ of <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>
stands for <span class="emphasis"><em>any STL container</em></span> holding elements
- of type <code class="computeroutput"><span class="identifier">A</span></code>.
+ of type <tt class="computeroutput"><span class="identifier">A</span></tt>.
</p></td></tr>
</table></div>
<p>
@@ -184,15 +177,16 @@
failing element generator might have already generated some output, which
is <span class="emphasis"><em>not</em></span> rolled back.
</p>
-<div class="tip" title="Tip"><table border="0" summary="Tip">
+<div class="tip"><table border="0" summary="Tip">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../../images/tip.png"></td>
<th align="left">Tip</th>
</tr>
-<tr><td align="left" valign="top">
+<tr><td colspan="2" align="left" valign="top">
<p>
The simplest way to force a Kleene star to behave as if it did buffering
- is to wrap it into a buffering directive (see <a class="link" href="../directive/buffer.html" title="Temporary Output Buffering (buffer[])"><code class="computeroutput"><span class="identifier">buffer</span></code></a>):
+ is to wrap it into a buffering directive (see <a href="../directive/buffer.html" title=" Temporary
+ Output Buffering (buffer[])"><tt class="computeroutput"><span class="identifier">buffer</span></tt></a>):
</p>
<p>
@@ -202,7 +196,7 @@
</p>
<p>
which will <span class="emphasis"><em>not</em></span> generate any output in case of
- a failing generator <code class="computeroutput"><span class="special">*</span><span class="identifier">a</span></code>. The expression:
+ a failing generator <tt class="computeroutput"><span class="special">*</span><span class="identifier">a</span></tt>. The expression:
</p>
<p>
@@ -211,15 +205,15 @@
<p>
</p>
<p>
- will not generate any partial output from a generator <code class="computeroutput"><span class="identifier">a</span></code> if it fails generating in the middle
+ will not generate any partial output from a generator <tt class="computeroutput"><span class="identifier">a</span></tt> if it fails generating in the middle
of its output. The overall expression will still generate the output
- as produced by all succeeded invocations of the generator <code class="computeroutput"><span class="identifier">a</span></code>.
+ as produced by all succeeded invocations of the generator <tt class="computeroutput"><span class="identifier">a</span></tt>.
</p>
</td></tr>
</table></div>
<a name="spirit.karma.reference.operator.kleene.complexity"></a><h6>
-<a name="id858779"></a>
- <a class="link" href="kleene.html#spirit.karma.reference.operator.kleene.complexity">Complexity</a>
+<a name="id671141"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -235,8 +229,8 @@
</p>
</blockquote></div>
<a name="spirit.karma.reference.operator.kleene.example"></a><h6>
-<a name="id858803"></a>
- <a class="link" href="kleene.html#spirit.karma.reference.operator.kleene.example">Example</a>
+<a name="id671184"></a>
+ Example
</h6>
<p>
Some includes:
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/operator/list.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/operator/list.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/operator/list.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Lists (a % b)</title>
+<title> Lists (a % b)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../operator.html" title="Operator">
-<link rel="prev" href="plus.html" title="Plus (+a)">
-<link rel="next" href="optional.html" title="Optional (-a)">
+<link rel="previous" href="plus.html" title=" Plus (+a)">
+<link rel="next" href="optional.html" title=" Optional
+ (-a)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,13 +23,16 @@
<div class="spirit-nav">
<a accesskey="p" href="plus.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="optional.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Lists (a % b)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.operator.list"></a><a class="link" href="list.html" title="Lists (a % b)"> Lists (<code class="computeroutput"><span class="identifier">a</span> <span class="special">%</span> <span class="identifier">b</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.operator.list"></a> Lists (a % b)
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.operator.list.description"></a><h6>
-<a name="id864399"></a>
- <a class="link" href="list.html#spirit.karma.reference.operator.list.description">Description</a>
+<a name="id675236"></a>
+ Description
</h6>
<p>
The list generator is used to repeat the execution of an embedded generator
@@ -37,36 +41,36 @@
at least once.
</p>
<a name="spirit.karma.reference.operator.list.header"></a><h6>
-<a name="id864416"></a>
- <a class="link" href="list.html#spirit.karma.reference.operator.list.header">Header</a>
+<a name="id675270"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/operator/list.hpp>
</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">karma_list</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.operator.list.model_of"></a><h6>
-<a name="id864490"></a>
- <a class="link" href="list.html#spirit.karma.reference.operator.list.model_of">Model of</a>
+<a name="id675384"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/binarygenerator.html" title="BinaryGenerator"><code class="computeroutput"><span class="identifier">BinaryGenerator</span></code></a>
+ BinaryGenerator
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.karma.reference.operator.list.expression_semantics"></a><h6>
-<a name="id864529"></a>
- <a class="link" href="list.html#spirit.karma.reference.operator.list.expression_semantics">Expression
+<a name="id675436"></a>
+ <a href="list.html#spirit.karma.reference.operator.list.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/binarygenerator.html" title="BinaryGenerator"><code class="computeroutput"><span class="identifier">BinaryGenerator</span></code></a>.
+ is not defined in BinaryGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -74,64 +78,56 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">%</span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
- The generator <code class="computeroutput"><span class="identifier">a</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">%</span>
+ <span class="identifier">b</span></tt>
+ </p></td>
+<td><p>
+ The generator <tt class="computeroutput"><span class="identifier">a</span></tt>
is executed one or more times depending on the availability of
- an attribute. The output generated by <code class="computeroutput"><span class="identifier">a</span></code>
- is interspaced with the output generated by <code class="computeroutput"><span class="identifier">b</span></code>.
+ an attribute. The output generated by <tt class="computeroutput"><span class="identifier">a</span></tt>
+ is interspaced with the output generated by <tt class="computeroutput"><span class="identifier">b</span></tt>.
The list generator succeeds as long as both its first embedded
generator has been successfully executed at least once (unless
the underlying output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<p>
- The list expression <code class="computeroutput"><span class="identifier">a</span> <span class="special">%</span> <span class="identifier">b</span></code>
- is a shortcut for <code class="computeroutput"><span class="identifier">a</span> <span class="special"><<</span> <span class="special">*(</span><span class="identifier">b</span> <span class="special"><<</span>
- <span class="identifier">a</span><span class="special">)</span></code>.
- It is almost semantically equivalent, except for the attribute of <code class="computeroutput"><span class="identifier">b</span></code>, which gets ignored in the case of
+ The list expression <tt class="computeroutput"><span class="identifier">a</span> <span class="special">%</span> <span class="identifier">b</span></tt>
+ is a shortcut for <tt class="computeroutput"><span class="identifier">a</span> <span class="special"><<</span> <span class="special">*(</span><span class="identifier">b</span> <span class="special"><<</span>
+ <span class="identifier">a</span><span class="special">)</span></tt>.
+ It is almost semantically equivalent, except for the attribute of <tt class="computeroutput"><span class="identifier">b</span></tt>, which gets ignored in the case of
the list generator.
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
All failing iterations of the embedded generator will consume one element
- from the supplied attribute. The overall <code class="computeroutput"><span class="identifier">a</span>
- <span class="special">%</span> <span class="identifier">b</span></code>
+ from the supplied attribute. The overall <tt class="computeroutput"><span class="identifier">a</span>
+ <span class="special">%</span> <span class="identifier">b</span></tt>
will succeed as long as at least one invocation of the embedded generator,
- <code class="computeroutput"><span class="identifier">a</span></code>, will succeed (unless
+ <tt class="computeroutput"><span class="identifier">a</span></tt>, will succeed (unless
the underlying output stream reports an error).
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.operator.list.attributes"></a><h6>
-<a name="id864741"></a>
- <a class="link" href="list.html#spirit.karma.reference.operator.list.attributes">Attributes</a>
+<a name="id675741"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -140,45 +136,39 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">%</span>
+ <span class="identifier">b</span></tt> (list)
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">%</span>
- <span class="identifier">b</span></code> (list)
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</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">B</span> <span class="special">--></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">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--></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">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr></tbody>
</table></div>
-<div class="important" title="Important"><table border="0" summary="Important">
+<div class="important"><table border="0" summary="Important">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../images/important.png"></td>
<th align="left">Important</th>
</tr>
-<tr><td align="left" valign="top"><p>
- The table above uses <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code> as a placeholder only. The notation
- of <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>
+<tr><td colspan="2" align="left" valign="top"><p>
+ The table above uses <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt> as a placeholder only. The notation
+ of <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>
stands for <span class="emphasis"><em>any STL container</em></span> holding elements
- of type <code class="computeroutput"><span class="identifier">A</span></code>.
+ of type <tt class="computeroutput"><span class="identifier">A</span></tt>.
</p></td></tr>
</table></div>
<p>
@@ -188,21 +178,22 @@
be interspaced by the output generated by the second generator. On each
iteration it will pass the next consecutive element from the container
attribute to the first embedded generator. The second embedded generator
- does not get passed any attributes (it gets invoked using an <code class="computeroutput"><span class="identifier">unused_type</span></code> as its attribute). Therefor
+ does not get passed any attributes (it gets invoked using an <tt class="computeroutput"><span class="identifier">unused_type</span></tt> as its attribute). Therefor
the number of iterations will not be larger than the number of elements
in the container passed as its attribute. An empty container will make
the list generator fail.
</p>
-<div class="tip" title="Tip"><table border="0" summary="Tip">
+<div class="tip"><table border="0" summary="Tip">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../../images/tip.png"></td>
<th align="left">Tip</th>
</tr>
-<tr><td align="left" valign="top">
+<tr><td colspan="2" align="left" valign="top">
<p>
If you want to use the list generator and still allow for an empty
- attribute, you can use the optional operator (see <a class="link" href="optional.html" title="Optional (-a)">Optional
- (unary <code class="computeroutput"><span class="special">-</span></code>)</a>):
+ attribute, you can use the optional operator (see <a href="optional.html" title=" Optional
+ (-a)">Optional
+ (unary <tt class="computeroutput"><span class="special">-</span></tt>)</a>):
</p>
<p>
@@ -217,8 +208,8 @@
</td></tr>
</table></div>
<a name="spirit.karma.reference.operator.list.complexity"></a><h6>
-<a name="id865083"></a>
- <a class="link" href="list.html#spirit.karma.reference.operator.list.complexity">Complexity</a>
+<a name="id676219"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -233,8 +224,8 @@
</p>
</blockquote></div>
<a name="spirit.karma.reference.operator.list.example"></a><h6>
-<a name="id865107"></a>
- <a class="link" href="list.html#spirit.karma.reference.operator.list.example">Example</a>
+<a name="id676260"></a>
+ Example
</h6>
<p>
Some includes:
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/operator/not_predicate.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/operator/not_predicate.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/operator/not_predicate.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Not Predicate (!a)</title>
+<title> Not
+ Predicate (!a)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../operator.html" title="Operator">
-<link rel="prev" href="and_predicate.html" title="And Predicate (&a)">
+<link rel="previous" href="and_predicate.html" title=" And
+ Predicate (&a)">
<link rel="next" href="../../performance_measurements.html" title="Performance Measurements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,14 +24,18 @@
<div class="spirit-nav">
<a accesskey="p" href="and_predicate.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../performance_measurements.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Not Predicate (!a)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.operator.not_predicate"></a><a class="link" href="not_predicate.html" title="Not Predicate (!a)"> Not
- Predicate (<code class="computeroutput"><span class="special">!</span><span class="identifier">a</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.operator.not_predicate"></a><a href="not_predicate.html" title=" Not
+ Predicate (!a)"> Not
+ Predicate (<tt class="computeroutput"><span class="special">!</span><span class="identifier">a</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.operator.not_predicate.description"></a><h6>
-<a name="id870008"></a>
- <a class="link" href="not_predicate.html#spirit.karma.reference.operator.not_predicate.description">Description</a>
+<a name="id681463"></a>
+ Description
</h6>
<p>
The not predicate generator is used to test, whether the embedded generator
@@ -37,37 +43,37 @@
fails.
</p>
<a name="spirit.karma.reference.operator.not_predicate.header"></a><h6>
-<a name="id870028"></a>
- <a class="link" href="not_predicate.html#spirit.karma.reference.operator.not_predicate.header">Header</a>
+<a name="id681496"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/operator/not_predicate.hpp>
</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">karma_not_predicate</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.operator.not_predicate.model_of"></a><h6>
-<a name="id870102"></a>
- <a class="link" href="not_predicate.html#spirit.karma.reference.operator.not_predicate.model_of">Model
+<a name="id681611"></a>
+ <a href="not_predicate.html#spirit.karma.reference.operator.not_predicate.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>
+ UnaryGenerator
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.karma.reference.operator.not_predicate.expression_semantics"></a><h6>
-<a name="id870138"></a>
- <a class="link" href="not_predicate.html#spirit.karma.reference.operator.not_predicate.expression_semantics">Expression
+<a name="id681666"></a>
+ <a href="not_predicate.html#spirit.karma.reference.operator.not_predicate.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>.
+ is not defined in UnaryGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -75,32 +81,24 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">!</span><span class="identifier">a</span></code>
- </p>
- </td>
-<td>
- <p>
- The generator <code class="computeroutput"><span class="identifier">a</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="special">!</span><span class="identifier">a</span></tt>
+ </p></td>
+<td><p>
+ The generator <tt class="computeroutput"><span class="identifier">a</span></tt>
is executed for the sole purpose of testing whether it succeeds.
The not predicate generator succeeds as long as its embedded
generator fails (unless the underlying output stream reports
an error). The not predicate never produces any output.
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<p>
@@ -108,11 +106,11 @@
its embedded generator into a discarding device.
</p>
<a name="spirit.karma.reference.operator.not_predicate.attributes"></a><h6>
-<a name="id870241"></a>
- <a class="link" href="not_predicate.html#spirit.karma.reference.operator.not_predicate.attributes">Attributes</a>
+<a name="id681810"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -121,48 +119,40 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">!</span><span class="identifier">a</span></code>
- (not predicate, unary <code class="computeroutput"><span class="special">!</span></code>)
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+<td><p>
+ <tt class="computeroutput"><span class="special">!</span><span class="identifier">a</span></tt>
+ (not predicate, unary <tt class="computeroutput"><span class="special">!</span></tt>)
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
<span class="identifier">A</span> <span class="special">--></span>
- <span class="special">!</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span></code>
- </p>
- </td>
+ <span class="special">!</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span></tt>
+ </p></td>
</tr></tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- The attribute of the and predicate is not always <code class="computeroutput"><span class="identifier">Unused</span></code>,
+<tr><td colspan="2" align="left" valign="top"><p>
+ The attribute of the and predicate is not always <tt class="computeroutput"><span class="identifier">Unused</span></tt>,
which is different from Qi's and predicate. This is necessary as the
generator the and predicate is attached to most of the time needs an
attribute.
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.operator.not_predicate.complexity"></a><h6>
-<a name="id870390"></a>
- <a class="link" href="not_predicate.html#spirit.karma.reference.operator.not_predicate.complexity">Complexity</a>
+<a name="id682005"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -176,8 +166,8 @@
</p>
</blockquote></div>
<a name="spirit.karma.reference.operator.not_predicate.example"></a><h6>
-<a name="id870416"></a>
- <a class="link" href="not_predicate.html#spirit.karma.reference.operator.not_predicate.example">Example</a>
+<a name="id682046"></a>
+ Example
</h6>
<p>
Some includes:
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/operator/optional.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/operator/optional.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/operator/optional.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Optional (-a)</title>
+<title> Optional
+ (-a)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../operator.html" title="Operator">
-<link rel="prev" href="list.html" title="Lists (a % b)">
-<link rel="next" href="and_predicate.html" title="And Predicate (&a)">
+<link rel="previous" href="list.html" title=" Lists (a % b)">
+<link rel="next" href="and_predicate.html" title=" And
+ Predicate (&a)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,51 +24,55 @@
<div class="spirit-nav">
<a accesskey="p" href="list.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="and_predicate.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Optional (-a)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.operator.optional"></a><a class="link" href="optional.html" title="Optional (-a)"> Optional
- (<code class="computeroutput"><span class="special">-</span><span class="identifier">a</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.operator.optional"></a><a href="optional.html" title=" Optional
+ (-a)"> Optional
+ (<tt class="computeroutput"><span class="special">-</span><span class="identifier">a</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.operator.optional.description"></a><h6>
-<a name="id865973"></a>
- <a class="link" href="optional.html#spirit.karma.reference.operator.optional.description">Description</a>
+<a name="id677436"></a>
+ Description
</h6>
<p>
The optional generator is used to conditionally execute an embedded generator.
It succeeds always.
</p>
<a name="spirit.karma.reference.operator.optional.header"></a><h6>
-<a name="id865990"></a>
- <a class="link" href="optional.html#spirit.karma.reference.operator.optional.header">Header</a>
+<a name="id677467"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/operator/optional.hpp>
</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">karma_optional</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.operator.optional.model_of"></a><h6>
-<a name="id867178"></a>
- <a class="link" href="optional.html#spirit.karma.reference.operator.optional.model_of">Model
+<a name="id677581"></a>
+ <a href="optional.html#spirit.karma.reference.operator.optional.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>
+ UnaryGenerator
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.karma.reference.operator.optional.expression_semantics"></a><h6>
-<a name="id867217"></a>
- <a class="link" href="optional.html#spirit.karma.reference.operator.optional.expression_semantics">Expression
+<a name="id677634"></a>
+ <a href="optional.html#spirit.karma.reference.operator.optional.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>.
+ is not defined in UnaryGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -74,39 +80,31 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">-</span><span class="identifier">a</span></code>
- </p>
- </td>
-<td>
- <p>
- The generator <code class="computeroutput"><span class="identifier">a</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="special">-</span><span class="identifier">a</span></tt>
+ </p></td>
+<td><p>
+ The generator <tt class="computeroutput"><span class="identifier">a</span></tt>
is executed depending on the availability of an attribute. The
optional generator succeeds as long as its embedded generator
succeeds (unless the underlying output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.karma.reference.operator.optional.attributes"></a><h6>
-<a name="id867316"></a>
- <a class="link" href="optional.html#spirit.karma.reference.operator.optional.attributes">Attributes</a>
+<a name="id677771"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -115,44 +113,38 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="special">-</span><span class="identifier">a</span></tt>
+ (optional, unary <tt class="computeroutput"><span class="special">-</span></tt>)
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="special">-</span><span class="identifier">a</span></code>
- (optional, unary <code class="computeroutput"><span class="special">-</span></code>)
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="special">-</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">-</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr></tbody>
</table></div>
-<div class="important" title="Important"><table border="0" summary="Important">
+<div class="important"><table border="0" summary="Important">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../images/important.png"></td>
<th align="left">Important</th>
</tr>
-<tr><td align="left" valign="top"><p>
- The table above uses <code class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code> as a placeholder only. The notation
- of <code class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>
- stands for the data type <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>.
+<tr><td colspan="2" align="left" valign="top"><p>
+ The table above uses <tt class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt> as a placeholder only. The notation
+ of <tt class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>
+ stands for the data type <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>.
</p></td></tr>
</table></div>
<p>
@@ -166,15 +158,16 @@
means that any failing element might have already generated some output,
which is <span class="emphasis"><em>not</em></span> rolled back.
</p>
-<div class="tip" title="Tip"><table border="0" summary="Tip">
+<div class="tip"><table border="0" summary="Tip">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../../images/tip.png"></td>
<th align="left">Tip</th>
</tr>
-<tr><td align="left" valign="top">
+<tr><td colspan="2" align="left" valign="top">
<p>
The simplest way to force a optional generator to behave as if it did
- buffering is to wrap it into a buffering directive (see <a class="link" href="../directive/buffer.html" title="Temporary Output Buffering (buffer[])"><code class="computeroutput"><span class="identifier">buffer</span></code></a>):
+ buffering is to wrap it into a buffering directive (see <a href="../directive/buffer.html" title=" Temporary
+ Output Buffering (buffer[])"><tt class="computeroutput"><span class="identifier">buffer</span></tt></a>):
</p>
<p>
@@ -184,13 +177,13 @@
</p>
<p>
which will <span class="emphasis"><em>not</em></span> generate any output in case of
- a failing generator <code class="computeroutput"><span class="special">-</span><span class="identifier">a</span></code>.
+ a failing generator <tt class="computeroutput"><span class="special">-</span><span class="identifier">a</span></tt>.
</p>
</td></tr>
</table></div>
<a name="spirit.karma.reference.operator.optional.complexity"></a><h6>
-<a name="id867627"></a>
- <a class="link" href="optional.html#spirit.karma.reference.operator.optional.complexity">Complexity</a>
+<a name="id678210"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -204,8 +197,8 @@
</p>
</blockquote></div>
<a name="spirit.karma.reference.operator.optional.example"></a><h6>
-<a name="id867651"></a>
- <a class="link" href="optional.html#spirit.karma.reference.operator.optional.example">Example</a>
+<a name="id678249"></a>
+ Example
</h6>
<p>
Some includes:
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/operator/plus.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/operator/plus.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/operator/plus.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Plus (+a)</title>
+<title> Plus (+a)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../operator.html" title="Operator">
-<link rel="prev" href="kleene.html" title="Kleene Star (*a)">
-<link rel="next" href="list.html" title="Lists (a % b)">
+<link rel="previous" href="kleene.html" title=" Kleene Star
+ (*a)">
+<link rel="next" href="list.html" title=" Lists (a % b)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,13 +23,16 @@
<div class="spirit-nav">
<a accesskey="p" href="kleene.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="list.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Plus (+a)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.operator.plus"></a><a class="link" href="plus.html" title="Plus (+a)"> Plus (<code class="computeroutput"><span class="special">+</span><span class="identifier">a</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.operator.plus"></a> Plus (+a)
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.operator.plus.description"></a><h6>
-<a name="id861407"></a>
- <a class="link" href="plus.html#spirit.karma.reference.operator.plus.description">Description</a>
+<a name="id672442"></a>
+ Description
</h6>
<p>
The plus generator is used to repeat the execution of an embedded generator
@@ -36,36 +40,36 @@
executed at least once.
</p>
<a name="spirit.karma.reference.operator.plus.header"></a><h6>
-<a name="id861423"></a>
- <a class="link" href="plus.html#spirit.karma.reference.operator.plus.header">Header</a>
+<a name="id672474"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/operator/plus.hpp>
</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">karma_plus</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.operator.plus.model_of"></a><h6>
-<a name="id861498"></a>
- <a class="link" href="plus.html#spirit.karma.reference.operator.plus.model_of">Model of</a>
+<a name="id672589"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>
+ UnaryGenerator
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.karma.reference.operator.plus.expression_semantics"></a><h6>
-<a name="id861536"></a>
- <a class="link" href="plus.html#spirit.karma.reference.operator.plus.expression_semantics">Expression
+<a name="id672641"></a>
+ <a href="plus.html#spirit.karma.reference.operator.plus.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/unarygenerator.html" title="UnaryGenerator"><code class="computeroutput"><span class="identifier">UnaryGenerator</span></code></a>.
+ is not defined in UnaryGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -73,54 +77,46 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">+</span><span class="identifier">a</span></code>
- </p>
- </td>
-<td>
- <p>
- The generator <code class="computeroutput"><span class="identifier">a</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="special">+</span><span class="identifier">a</span></tt>
+ </p></td>
+<td><p>
+ The generator <tt class="computeroutput"><span class="identifier">a</span></tt>
is executed one or more times depending on the availability of
- an attribute. The execution of <code class="computeroutput"><span class="identifier">a</span></code>
+ an attribute. The execution of <tt class="computeroutput"><span class="identifier">a</span></tt>
stops after the attribute values passed to the plus generator
are exhausted. The plus generator succeeds as long as its embedded
generator has been successfully executed at least once (unless
the underlying output stream reports an error).
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
All failing iterations of the embedded generator will consume one element
- from the supplied attribute. The overall <code class="computeroutput"><span class="special">+</span><span class="identifier">a</span></code> will succeed as long as at least
+ from the supplied attribute. The overall <tt class="computeroutput"><span class="special">+</span><span class="identifier">a</span></tt> will succeed as long as at least
one invocation of the embedded generator will succeed (unless the underlying
output stream reports an error).
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.operator.plus.attributes"></a><h6>
-<a name="id861661"></a>
- <a class="link" href="plus.html#spirit.karma.reference.operator.plus.attributes">Attributes</a>
+<a name="id672821"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -129,45 +125,39 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="special">+</span><span class="identifier">a</span></tt>
+ (unary <tt class="computeroutput"><span class="special">+</span></tt>)
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="special">+</span><span class="identifier">a</span></code>
- (unary <code class="computeroutput"><span class="special">+</span></code>)
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="special">+</span><span class="identifier">a</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">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">+</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr></tbody>
</table></div>
-<div class="important" title="Important"><table border="0" summary="Important">
+<div class="important"><table border="0" summary="Important">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../images/important.png"></td>
<th align="left">Important</th>
</tr>
-<tr><td align="left" valign="top"><p>
- The table above uses <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code> as a placeholder only. The notation
- of <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>
+<tr><td colspan="2" align="left" valign="top"><p>
+ The table above uses <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt> as a placeholder only. The notation
+ of <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>
stands for <span class="emphasis"><em>any STL container</em></span> holding elements
- of type <code class="computeroutput"><span class="identifier">A</span></code>.
+ of type <tt class="computeroutput"><span class="identifier">A</span></tt>.
</p></td></tr>
</table></div>
<p>
@@ -185,15 +175,16 @@
that any failing element generator might have already generated some
output, which is <span class="emphasis"><em>not</em></span> rolled back.
</p>
-<div class="tip" title="Tip"><table border="0" summary="Tip">
+<div class="tip"><table border="0" summary="Tip">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../../images/tip.png"></td>
<th align="left">Tip</th>
</tr>
-<tr><td align="left" valign="top">
+<tr><td colspan="2" align="left" valign="top">
<p>
The simplest way to force a plus generator to behave as if it did buffering
- is to wrap it into a buffering directive (see <a class="link" href="../directive/buffer.html" title="Temporary Output Buffering (buffer[])"><code class="computeroutput"><span class="identifier">buffer</span></code></a>):
+ is to wrap it into a buffering directive (see <a href="../directive/buffer.html" title=" Temporary
+ Output Buffering (buffer[])"><tt class="computeroutput"><span class="identifier">buffer</span></tt></a>):
</p>
<p>
@@ -203,7 +194,7 @@
</p>
<p>
which will <span class="emphasis"><em>not</em></span> generate any output in case of
- a failing generator <code class="computeroutput"><span class="special">+</span><span class="identifier">a</span></code>. The expression:
+ a failing generator <tt class="computeroutput"><span class="special">+</span><span class="identifier">a</span></tt>. The expression:
</p>
<p>
@@ -212,15 +203,15 @@
<p>
</p>
<p>
- will not generate any partial output from a generator <code class="computeroutput"><span class="identifier">a</span></code> if it fails generating in the middle
+ will not generate any partial output from a generator <tt class="computeroutput"><span class="identifier">a</span></tt> if it fails generating in the middle
of its output. The overall expression will still generate the output
- as produced by all succeeded invocations of the generator <code class="computeroutput"><span class="identifier">a</span></code>.
+ as produced by all succeeded invocations of the generator <tt class="computeroutput"><span class="identifier">a</span></tt>.
</p>
</td></tr>
</table></div>
<a name="spirit.karma.reference.operator.plus.complexity"></a><h6>
-<a name="id862001"></a>
- <a class="link" href="plus.html#spirit.karma.reference.operator.plus.complexity">Complexity</a>
+<a name="id673309"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -235,8 +226,8 @@
</p>
</blockquote></div>
<a name="spirit.karma.reference.operator.plus.example"></a><h6>
-<a name="id862025"></a>
- <a class="link" href="plus.html#spirit.karma.reference.operator.plus.example">Example</a>
+<a name="id673349"></a>
+ Example
</h6>
<p>
Some includes:
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/operator/sequence.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/operator/sequence.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/operator/sequence.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,17 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Sequences (a << b)</title>
+<title> Sequences
+ (a <<
+ b)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../operator.html" title="Operator">
-<link rel="prev" href="../operator.html" title="Operator">
-<link rel="next" href="alternative.html" title="Alternative (a | b)">
+<link rel="previous" href="../operator.html" title="Operator">
+<link rel="next" href="alternative.html" title=" Alternative
+ (a |
+ b)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,15 +26,20 @@
<div class="spirit-nav">
<a accesskey="p" href="../operator.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="alternative.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Sequences (a << b)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.operator.sequence"></a><a class="link" href="sequence.html" title="Sequences (a << b)"> Sequences
- (<code class="computeroutput"><span class="identifier">a</span> <span class="special"><<</span>
- <span class="identifier">b</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.operator.sequence"></a><a href="sequence.html" title=" Sequences
+ (a <<
+ b)"> Sequences
+ (<tt class="computeroutput"><span class="identifier">a</span> <span class="special"><<</span>
+ <span class="identifier">b</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.operator.sequence.description"></a><h6>
-<a name="id854384"></a>
- <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.description">Description</a>
+<a name="id665071"></a>
+ Description
</h6>
<p>
Generator sequences are used to consecutively combine different, more
@@ -38,37 +47,37 @@
to right as long as they succeed.
</p>
<a name="spirit.karma.reference.operator.sequence.header"></a><h6>
-<a name="id854401"></a>
- <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.header">Header</a>
+<a name="id665104"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/operator/sequence.hpp>
</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">karma_sequence</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.operator.sequence.model_of"></a><h6>
-<a name="id854475"></a>
- <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.model_of">Model
+<a name="id665218"></a>
+ <a href="sequence.html#spirit.karma.reference.operator.sequence.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/narygenerator.html" title="NaryGenerator"><code class="computeroutput"><span class="identifier">NaryGenerator</span></code></a>
+ NaryGenerator
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.karma.reference.operator.sequence.expression_semantics"></a><h6>
-<a name="id854511"></a>
- <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.expression_semantics">Expression
+<a name="id665271"></a>
+ <a href="sequence.html#spirit.karma.reference.operator.sequence.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/narygenerator.html" title="NaryGenerator"><code class="computeroutput"><span class="identifier">NaryGenerator</span></code></a>.
+ is not defined in NaryGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -76,33 +85,25 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special"><<</span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
- The generators <code class="computeroutput"><span class="identifier">a</span></code>
- and <code class="computeroutput"><span class="identifier">b</span></code> are executed
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special"><<</span>
+ <span class="identifier">b</span></tt>
+ </p></td>
+<td><p>
+ The generators <tt class="computeroutput"><span class="identifier">a</span></tt>
+ and <tt class="computeroutput"><span class="identifier">b</span></tt> are executed
sequentially from left to right and as long as they succeed.
A failed generator stops the execution of the entire sequence
and makes the sequence fail as well.
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<p>
@@ -111,15 +112,16 @@
might have already generated some output, which is <span class="emphasis"><em>not</em></span>
rolled back.
</p>
-<div class="tip" title="Tip"><table border="0" summary="Tip">
+<div class="tip"><table border="0" summary="Tip">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../../images/tip.png"></td>
<th align="left">Tip</th>
</tr>
-<tr><td align="left" valign="top">
+<tr><td colspan="2" align="left" valign="top">
<p>
The simplest way to force a sequence to behave as if it did buffering
- is to wrap it into a buffering directive (see <a class="link" href="../directive/buffer.html" title="Temporary Output Buffering (buffer[])"><code class="computeroutput"><span class="identifier">buffer</span></code></a>):
+ is to wrap it into a buffering directive (see <a href="../directive/buffer.html" title=" Temporary
+ Output Buffering (buffer[])"><tt class="computeroutput"><span class="identifier">buffer</span></tt></a>):
</p>
<p>
@@ -134,11 +136,11 @@
</td></tr>
</table></div>
<a name="spirit.karma.reference.operator.sequence.attributes"></a><h6>
-<a name="id854718"></a>
- <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.attributes">Attributes</a>
+<a name="id665531"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.karma.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -147,26 +149,20 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special"><<</span>
+ <span class="identifier">b</span></tt> (sequence)
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special"><<</span>
- <span class="identifier">b</span></code> (sequence)
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</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">B</span> <span class="special">--></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">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span>
@@ -180,27 +176,27 @@
<span class="identifier">a</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">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span> <span class="special">--></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">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></pre>
<p>
</p>
- </td>
+</td>
</tr></tbody>
</table></div>
-<div class="important" title="Important"><table border="0" summary="Important">
+<div class="important"><table border="0" summary="Important">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../images/important.png"></td>
<th align="left">Important</th>
</tr>
-<tr><td align="left" valign="top">
+<tr><td colspan="2" align="left" valign="top">
<p>
- The table above uses <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></code> and <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code> as placeholders only.
+ The table above uses <tt class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></tt> and <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt> as placeholders only.
</p>
<p>
- The notation <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></code> stands for <span class="emphasis"><em>any fusion
- sequence of two elements</em></span>, where <code class="computeroutput"><span class="identifier">A</span></code>
- is the type of its first element and <code class="computeroutput"><span class="identifier">B</span></code>
+ The notation <tt class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></tt> stands for <span class="emphasis"><em>any fusion
+ sequence of two elements</em></span>, where <tt class="computeroutput"><span class="identifier">A</span></tt>
+ is the type of its first element and <tt class="computeroutput"><span class="identifier">B</span></tt>
is the type of its second element.
</p>
<p>
- The notation of <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code> stands for <span class="emphasis"><em>any STL container</em></span>
- holding elements of type <code class="computeroutput"><span class="identifier">A</span></code>.
+ The notation of <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt> stands for <span class="emphasis"><em>any STL container</em></span>
+ holding elements of type <tt class="computeroutput"><span class="identifier">A</span></tt>.
</p>
</td></tr>
</table></div>
@@ -212,8 +208,8 @@
the attribute supplied
</p>
<a name="spirit.karma.reference.operator.sequence.complexity"></a><h6>
-<a name="id855536"></a>
- <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.complexity">Complexity</a>
+<a name="id666633"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -227,8 +223,8 @@
</p>
</blockquote></div>
<a name="spirit.karma.reference.operator.sequence.example"></a><h6>
-<a name="id855560"></a>
- <a class="link" href="sequence.html#spirit.karma.reference.operator.sequence.example">Example</a>
+<a name="id666673"></a>
+ Example
</h6>
<p>
Some includes:
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/stream.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/stream.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/stream.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,13 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Stream</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="numeric/boolean.html" title="Boolean Generators (bool_)">
-<link rel="next" href="stream/stream.html" title="Stream (stream, wstream, etc.)">
+<link rel="previous" href="numeric/boolean.html" title=" Boolean
+ Generators (bool_)">
+<link rel="next" href="stream/stream.html" title=" Stream (stream, wstream,
+ etc.)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,27 +24,30 @@
<div class="spirit-nav">
<a accesskey="p" href="numeric/boolean.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="stream/stream.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Stream">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.reference.stream"></a><a class="link" href="stream.html" title="Stream">Stream</a>
-</h4></div></div></div>
-<div class="toc"><dl><dt><span class="section"><a href="stream/stream.html"> Stream (<code class="computeroutput"><span class="identifier">stream</span></code>, <code class="computeroutput"><span class="identifier">wstream</span></code>,
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.reference.stream"></a>Stream
+</h4></div></div>
+<div></div>
+</div>
+<div class="toc"><dl><dt><span class="section"><a href="stream/stream.html"> Stream (<tt class="computeroutput"><span class="identifier">stream</span></tt>, <tt class="computeroutput"><span class="identifier">wstream</span></tt>,
etc.)</a></span></dt></dl></div>
<p>
This module includes the description of the different variants of the
- <code class="computeroutput"><span class="identifier">stream</span></code> generator. It can
- be used to utilize existing streaming operators (<code class="computeroutput"><span class="keyword">operator</span><span class="special"><<(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&,</span> <span class="special">...)</span></code>)
+ <tt class="computeroutput"><span class="identifier">stream</span></tt> generator. It can
+ be used to utilize existing streaming operators (<tt class="computeroutput"><span class="keyword">operator</span><span class="special"><<(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&,</span> <span class="special">...)</span></tt>)
for output generation.
</p>
-<a name="spirit.karma.reference.stream.header"></a><h6>
-<a name="id804178"></a>
- <a class="link" href="stream.html#spirit.karma.reference.stream.header">Header</a>
- </h6>
+<a name="spirit.karma.reference.stream.header"></a><h5>
+<a name="id616535"></a>
+ Header
+ </h5>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/stream.hpp>
</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">karma_stream</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/stream/stream.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/stream/stream.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/stream/stream.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Stream (stream, wstream, etc.)</title>
+<title> Stream (stream, wstream,
+ etc.)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../stream.html" title="Stream">
-<link rel="prev" href="../stream.html" title="Stream">
-<link rel="next" href="../binary.html" title="Binary">
+<link rel="previous" href="../stream.html" title="Stream">
+<link rel="next" href="../binary.html" title=" Binary">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,73 +23,71 @@
<div class="spirit-nav">
<a accesskey="p" href="../stream.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../stream.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../binary.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Stream (stream, wstream, etc.)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.stream.stream"></a><a class="link" href="stream.html" title="Stream (stream, wstream, etc.)"> Stream (<code class="computeroutput"><span class="identifier">stream</span></code>, <code class="computeroutput"><span class="identifier">wstream</span></code>,
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.stream.stream"></a><a href="stream.html" title=" Stream (stream, wstream,
+ etc.)"> Stream (<tt class="computeroutput"><span class="identifier">stream</span></tt>, <tt class="computeroutput"><span class="identifier">wstream</span></tt>,
etc.)</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.stream.stream.description"></a><h6>
-<a name="id804276"></a>
- <a class="link" href="stream.html#spirit.karma.reference.stream.stream.description">Description</a>
+<a name="id616693"></a>
+ Description
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">stream_generator</span></code>
+ The <tt class="computeroutput"><span class="identifier">stream_generator</span></tt>
is a primitive which allows to use pre-existing standard streaming operators
for output generation integrated with <span class="emphasis"><em>Spirit.Karma</em></span>.
It provides a wrapper generator dispatching the value to output to the
- stream operator of the corresponding type. Any value <code class="computeroutput"><span class="identifier">a</span></code>
- to be formatted using the <code class="computeroutput"><span class="identifier">stream_generator</span></code>
+ stream operator of the corresponding type. Any value <tt class="computeroutput"><span class="identifier">a</span></tt>
+ to be formatted using the <tt class="computeroutput"><span class="identifier">stream_generator</span></tt>
will result in invoking the standard streaming operator for its type
- <code class="computeroutput"><span class="identifier">A</span></code>, for instance:
+ <tt class="computeroutput"><span class="identifier">A</span></tt>, for instance:
</p>
<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="keyword">operator</span><span class="special"><<</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&,</span> <span class="identifier">A</span> <span class="keyword">const</span><span class="special">&);</span>
</pre>
<a name="spirit.karma.reference.stream.stream.header"></a><h6>
-<a name="id804385"></a>
- <a class="link" href="stream.html#spirit.karma.reference.stream.stream.header">Header</a>
+<a name="id616862"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/stream.hpp>
</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">karma_stream</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.stream.stream.namespace"></a><h6>
-<a name="id805013"></a>
- <a class="link" href="stream.html#spirit.karma.reference.stream.stream.namespace">Namespace</a>
+<a name="id616977"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">stream</span> <span class="comment">// alias:
- boost::spirit::karma::stream</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">wstream</span> <span class="comment">//
- alias: boost::spirit::karma::wstream</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">stream</span> <span class="comment">// alias:
+ boost::spirit::karma::stream</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">wstream</span> <span class="comment">//
+ alias: boost::spirit::karma::wstream</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.stream.stream.synopsis"></a><h6>
-<a name="id805131"></a>
- <a class="link" href="stream.html#spirit.karma.reference.stream.stream.synopsis">Synopsis</a>
+<a name="id617129"></a>
+ Synopsis
</h6>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Char</span><span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">stream_generator</span><span class="special">;</span>
</pre>
<a name="spirit.karma.reference.stream.stream.template_parameters"></a><h6>
-<a name="id805185"></a>
- <a class="link" href="stream.html#spirit.karma.reference.stream.stream.template_parameters">Template
+<a name="id617206"></a>
+ <a href="stream.html#spirit.karma.reference.stream.stream.template_parameters">Template
parameters</a>
</h6>
<div class="informaltable"><table class="table">
@@ -98,76 +97,64 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Parameter
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Default
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Char</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Char</span></tt>
+ </p></td>
+<td><p>
The character type to use to generate the output. This type will
be used while assigning the generated characters to the underlying
output iterator.
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">char</span></code>
- </p>
- </td>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">char</span></tt>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.karma.reference.stream.stream.model_of"></a><h6>
-<a name="id805277"></a>
- <a class="link" href="stream.html#spirit.karma.reference.stream.stream.model_of">Model of</a>
+<a name="id617326"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>
+ PrimitiveGenerator
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">s</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">s</span></tt></span></dt>
<dd><p>
A variable instance of any type with a defined matching streaming
- <code class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></code>
- or a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ <tt class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></tt>
+ or a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a> that evaluates to any type with a defined matching
- streaming <code class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></code>.
+ streaming <tt class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></tt>.
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.stream.stream.expression_semantics"></a><h6>
-<a name="id805367"></a>
- <a class="link" href="stream.html#spirit.karma.reference.stream.stream.expression_semantics">Expression
+<a name="id617456"></a>
+ <a href="stream.html#spirit.karma.reference.stream.stream.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>.
+ is not defined in PrimitiveGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -175,93 +162,73 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">stream</span></code>
- </p>
- </td>
-<td>
- <p>
- Call the streaming <code class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></code> for the type of the
+<td><p>
+ <tt class="computeroutput"><span class="identifier">stream</span></tt>
+ </p></td>
+<td><p>
+ Call the streaming <tt class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></tt> for the type of the
mandory attribute. The output emitted by this operator will be
- the result of the <code class="computeroutput"><span class="identifier">stream</span></code>
+ the result of the <tt class="computeroutput"><span class="identifier">stream</span></tt>
generator. This generator never fails (unless the underlying
output stream reports an error). The character type of the I/O
- ostream is assumed to be <code class="computeroutput"><span class="keyword">char</span></code>.
- </p>
- </td>
+ ostream is assumed to be <tt class="computeroutput"><span class="keyword">char</span></tt>.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">stream</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Call the streaming <code class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></code> for the type of the
- immediate value <code class="computeroutput"><span class="identifier">s</span></code>.
+<td><p>
+ <tt class="computeroutput"><span class="identifier">stream</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Call the streaming <tt class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></tt> for the type of the
+ immediate value <tt class="computeroutput"><span class="identifier">s</span></tt>.
The output emitted by this operator will be the result of the
- <code class="computeroutput"><span class="identifier">stream</span></code> generator.
+ <tt class="computeroutput"><span class="identifier">stream</span></tt> generator.
This generator never fails (unless the underlying output stream
reports an error). The character type of the I/O ostream is assumed
- to be <code class="computeroutput"><span class="keyword">char</span></code>.
- </p>
- </td>
+ to be <tt class="computeroutput"><span class="keyword">char</span></tt>.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">wstream</span></code>
- </p>
- </td>
-<td>
- <p>
- Call the streaming <code class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></code> for the type of the
+<td><p>
+ <tt class="computeroutput"><span class="identifier">wstream</span></tt>
+ </p></td>
+<td><p>
+ Call the streaming <tt class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></tt> for the type of the
mandory attribute. The output emitted by this operator will be
- the result of the <code class="computeroutput"><span class="identifier">stream</span></code>
+ the result of the <tt class="computeroutput"><span class="identifier">stream</span></tt>
generator. This generator never fails (unless the underlying
output stream reports an error). The character type of the I/O
- ostream is assumed to be <code class="computeroutput"><span class="keyword">wchar_t</span></code>.
- </p>
- </td>
+ ostream is assumed to be <tt class="computeroutput"><span class="keyword">wchar_t</span></tt>.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">wstream</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Call the streaming <code class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></code> for the type of the
- immediate value <code class="computeroutput"><span class="identifier">s</span></code>.
+<td><p>
+ <tt class="computeroutput"><span class="identifier">wstream</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Call the streaming <tt class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></tt> for the type of the
+ immediate value <tt class="computeroutput"><span class="identifier">s</span></tt>.
The output emitted by this operator will be the result of the
- <code class="computeroutput"><span class="identifier">stream</span></code> generator.
+ <tt class="computeroutput"><span class="identifier">stream</span></tt> generator.
This generator never fails (unless the underlying output stream
reports an error). The character type of the I/O ostream is assumed
- to be <code class="computeroutput"><span class="keyword">wchar_t</span></code>.
- </p>
- </td>
+ to be <tt class="computeroutput"><span class="keyword">wchar_t</span></tt>.
+ </p></td>
</tr>
</tbody>
</table></div>
<p>
All generators listed in the table above are predefined specializations
- of the <code class="computeroutput"><span class="identifier">stream_generator</span><span class="special"><</span><span class="identifier">Char</span><span class="special">></span></code> basic stream generator type described
+ of the <tt class="computeroutput"><span class="identifier">stream_generator</span><span class="special"><</span><span class="identifier">Char</span><span class="special">></span></tt> basic stream generator type described
below. It is possible to directly use this type to create stream generators
using an arbitrary underlying character type.
</p>
@@ -271,21 +238,17 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">stream_generator</span><span class="special"><</span>
@@ -293,21 +256,19 @@
<span class="special">>()</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
- Call the streaming <code class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></code> for the type of the
+</td>
+<td><p>
+ Call the streaming <tt class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></tt> for the type of the
mandory attribute. The output emitted by this operator will be
- the result of the <code class="computeroutput"><span class="identifier">stream</span></code>
+ the result of the <tt class="computeroutput"><span class="identifier">stream</span></tt>
generator. This generator never fails (unless the underlying
output stream reports an error). The character type of the I/O
- ostream is assumed to be <code class="computeroutput"><span class="identifier">Char</span></code>
- </p>
- </td>
+ ostream is assumed to be <tt class="computeroutput"><span class="identifier">Char</span></tt>
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">stream_generator</span><span class="special"><</span>
@@ -315,31 +276,29 @@
<span class="special">>()(</span><span class="identifier">s</span><span class="special">)</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
- Call the streaming <code class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></code> for the type of the
- immediate value <code class="computeroutput"><span class="identifier">s</span></code>.
+</td>
+<td><p>
+ Call the streaming <tt class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></tt> for the type of the
+ immediate value <tt class="computeroutput"><span class="identifier">s</span></tt>.
The output emitted by this operator will be the result of the
- <code class="computeroutput"><span class="identifier">stream</span></code> generator.
+ <tt class="computeroutput"><span class="identifier">stream</span></tt> generator.
This generator never fails (unless the underlying output stream
reports an error). The character type of the I/O ostream is assumed
- to be <code class="computeroutput"><span class="identifier">Char</span></code>.
- </p>
- </td>
+ to be <tt class="computeroutput"><span class="identifier">Char</span></tt>.
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.karma.reference.stream.stream.additional_requirements"></a><h6>
-<a name="id805865"></a>
- <a class="link" href="stream.html#spirit.karma.reference.stream.stream.additional_requirements">Additional
+<a name="id618179"></a>
+ <a href="stream.html#spirit.karma.reference.stream.stream.additional_requirements">Additional
Requirements</a>
</h6>
<p>
All of the stream generators listed above require the type of the value
to generate output for (either the immediate value or the associated
attribute) to implement a streaming operator conforming to the usual
- I/O streams conventions (where <code class="computeroutput"><span class="identifier">attribute_type</span></code>
+ I/O streams conventions (where <tt class="computeroutput"><span class="identifier">attribute_type</span></tt>
is the type of the value to generate output for):
</p>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Ostream</span><span class="special">></span>
@@ -351,31 +310,31 @@
</pre>
<p>
This operator will be called by the stream generators to gather the output
- for the attribute of type <code class="computeroutput"><span class="identifier">attribute_type</span></code>.
- All data streamed into the given <code class="computeroutput"><span class="identifier">Ostream</span></code>
+ for the attribute of type <tt class="computeroutput"><span class="identifier">attribute_type</span></tt>.
+ All data streamed into the given <tt class="computeroutput"><span class="identifier">Ostream</span></tt>
will end up being generated by the corresponding stream generator instance.
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- If the <code class="computeroutput"><span class="identifier">stream</span></code> generator
- is invoked inside a <code class="computeroutput"><span class="identifier">format</span></code>
- (or <code class="computeroutput"><span class="identifier">format_delimited</span></code>
- ) stream manipulator the <code class="computeroutput"><span class="identifier">Ostream</span></code>
- passed to the <code class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></code> will have registered (imbued)
- the same standard locale instance as the stream the <code class="computeroutput"><span class="identifier">format</span></code>
- (or <code class="computeroutput"><span class="identifier">format_delimited</span></code>
+<tr><td colspan="2" align="left" valign="top"><p>
+ If the <tt class="computeroutput"><span class="identifier">stream</span></tt> generator
+ is invoked inside a <tt class="computeroutput"><span class="identifier">format</span></tt>
+ (or <tt class="computeroutput"><span class="identifier">format_delimited</span></tt>
+ ) stream manipulator the <tt class="computeroutput"><span class="identifier">Ostream</span></tt>
+ passed to the <tt class="computeroutput"><span class="keyword">operator</span><span class="special"><<()</span></tt> will have registered (imbued)
+ the same standard locale instance as the stream the <tt class="computeroutput"><span class="identifier">format</span></tt>
+ (or <tt class="computeroutput"><span class="identifier">format_delimited</span></tt>
) manipulator has been used with. This ensures all facets registered
(imbued) with the original I/O stream object are used during output
generation.
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.stream.stream.attributes"></a><h6>
-<a name="id806083"></a>
- <a class="link" href="stream.html#spirit.karma.reference.stream.stream.attributes">Attributes</a>
+<a name="id618512"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -383,124 +342,96 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">stream</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">hold_any</span></code>, attribute
+<td><p>
+ <tt class="computeroutput"><span class="identifier">stream</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">hold_any</span></tt>, attribute
is mandatory (otherwise compilation will fail)
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">stream</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">wstream</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">hold_any</span></code>, attribute
+<td><p>
+ <tt class="computeroutput"><span class="identifier">stream</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">wstream</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">hold_any</span></tt>, attribute
is mandatory (otherwise compilation will fail)
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">wstream</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">stream_generator</span><span class="special"><</span><span class="identifier">Char</span><span class="special">>()</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">hold_any</span></code>, attribute
+<td><p>
+ <tt class="computeroutput"><span class="identifier">wstream</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">stream_generator</span><span class="special"><</span><span class="identifier">Char</span><span class="special">>()</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">hold_any</span></tt>, attribute
is mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">stream_generator</span><span class="special"><</span><span class="identifier">Char</span><span class="special">>()(</span><span class="identifier">s</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">stream_generator</span><span class="special"><</span><span class="identifier">Char</span><span class="special">>()(</span><span class="identifier">s</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
-<div class="important" title="Important"><table border="0" summary="Important">
+<div class="important"><table border="0" summary="Important">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../images/important.png"></td>
<th align="left">Important</th>
</tr>
-<tr><td align="left" valign="top"><p>
- The attribute type <code class="computeroutput"><span class="identifier">hold_any</span></code>
+<tr><td colspan="2" align="left" valign="top"><p>
+ The attribute type <tt class="computeroutput"><span class="identifier">hold_any</span></tt>
exposed by some of the stream generators is semantically and syntactically
equivalent to the type implemented by Boost.Any.
It has been added to <span class="emphasis"><em>Spirit</em></span> as it has better a
performance and a smaller footprint if compared to Boost.Any.
</p></td></tr>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- In addition to their usual attribute of type <code class="computeroutput"><span class="identifier">Attrib</span></code>
- all listed generators accept an instance of a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Attrib</span><span class="special">></span></code> as well. If the <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></code> is initialized (holds a value)
- the generators behave as if their attribute was an instance of <code class="computeroutput"><span class="identifier">Attrib</span></code> and emit the value stored
- in the <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></code>.
+<tr><td colspan="2" align="left" valign="top"><p>
+ In addition to their usual attribute of type <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ all listed generators accept an instance of a <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">Attrib</span><span class="special">></span></tt> as well. If the <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></tt> is initialized (holds a value)
+ the generators behave as if their attribute was an instance of <tt class="computeroutput"><span class="identifier">Attrib</span></tt> and emit the value stored
+ in the <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></tt>.
Otherwise the generators will fail.
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.stream.stream.complexity"></a><h6>
-<a name="id806480"></a>
- <a class="link" href="stream.html#spirit.karma.reference.stream.stream.complexity">Complexity</a>
+<a name="id619058"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -512,8 +443,8 @@
</p>
</blockquote></div>
<a name="spirit.karma.reference.stream.stream.example"></a><h6>
-<a name="id806504"></a>
- <a class="link" href="stream.html#spirit.karma.reference.stream.stream.example">Example</a>
+<a name="id619095"></a>
+ Example
</h6>
<p>
Some includes:
@@ -621,7 +552,7 @@
<p>
</p>
<p>
- Basic usage of <code class="computeroutput"><span class="identifier">stream</span></code>
+ Basic usage of <tt class="computeroutput"><span class="identifier">stream</span></tt>
generators:
</p>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/string.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/string.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/string.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,13 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>String</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="char/char_class.html" title="Character Classification (alnum, digit, etc.)">
-<link rel="next" href="string/string.html" title="String (string, lit)">
+<link rel="previous" href="char/char_class.html" title=" Character
+ Classification (alnum,
+ digit, etc.)">
+<link rel="next" href="string/string.html" title=" String (string, lit)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,25 +24,28 @@
<div class="spirit-nav">
<a accesskey="p" href="char/char_class.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="string/string.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="String">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.reference.string"></a><a class="link" href="string.html" title="String">String</a>
-</h4></div></div></div>
-<div class="toc"><dl><dt><span class="section"> String (string
, lit
)</span></dt></dl></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.reference.string"></a>String
+</h4></div></div>
+<div></div>
+</div>
+<div class="toc"><dl><dt><span class="section"> String (string, lit)</span></dt></dl></div>
<p>
This module includes different string oriented generators allowing to output
- character sequences. It includes variants of the <code class="computeroutput"><span class="identifier">string</span></code>
+ character sequences. It includes variants of the <tt class="computeroutput"><span class="identifier">string</span></tt>
generator.
</p>
-<a name="spirit.karma.reference.string.module_header"></a><h6>
-<a name="id774193"></a>
- <a class="link" href="string.html#spirit.karma.reference.string.module_header">Module Header</a>
- </h6>
+<a name="spirit.karma.reference.string.module_header"></a><h5>
+<a name="id586699"></a>
+ Module Header
+ </h5>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/string.hpp>
</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">karma_string</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/karma/reference/string/string.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/reference/string/string.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/reference/string/string.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>String (string, lit)</title>
+<title> String (string, lit)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../string.html" title="String">
-<link rel="prev" href="../string.html" title="String">
-<link rel="next" href="../numeric.html" title="Numeric">
+<link rel="previous" href="../string.html" title="String">
+<link rel="next" href="../numeric.html" title=" Numeric">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,23 +22,26 @@
<div class="spirit-nav">
<a accesskey="p" href="../string.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../string.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../numeric.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="String (string, lit)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.karma.reference.string.string"></a><a class="link" href="string.html" title="String (string, lit)"> String (<code class="computeroutput"><span class="identifier">string</span></code>, <code class="computeroutput"><span class="identifier">lit</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.karma.reference.string.string"></a> String (string, lit)
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.karma.reference.string.string.description"></a><h6>
-<a name="id774291"></a>
- <a class="link" href="string.html#spirit.karma.reference.string.string.description">Description</a>
+<a name="id586855"></a>
+ Description
</h6>
<p>
The string generators described in this section are:
</p>
<p>
- The <code class="computeroutput"><span class="identifier">string</span></code> generator
- emits a string of characters. The <code class="computeroutput"><span class="identifier">string</span></code>
- generator is implicitly verbatim: the <code class="computeroutput"><span class="identifier">delimit</span></code>
- parser is not applied in between characters of the string. The <code class="computeroutput"><span class="identifier">string</span></code> generator has an assocaiated
- <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+ The <tt class="computeroutput"><span class="identifier">string</span></tt> generator
+ emits a string of characters. The <tt class="computeroutput"><span class="identifier">string</span></tt>
+ generator is implicitly verbatim: the <tt class="computeroutput"><span class="identifier">delimit</span></tt>
+ parser is not applied in between characters of the string. The <tt class="computeroutput"><span class="identifier">string</span></tt> generator has an assocaiated
+ <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a>. This is needed when doing basic operations
such as forcing lower or upper case. Examples:
</p>
@@ -47,10 +50,10 @@
<span class="identifier">string</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span> <span class="comment">// s is a std::string
</span></pre>
<p>
- <code class="computeroutput"><span class="identifier">lit</span></code>, like <code class="computeroutput"><span class="identifier">string</span></code>, also emits a string of characters.
- The main difference is that <code class="computeroutput"><span class="identifier">lit</span></code>
- does not consumes an attribute. A plain string like <code class="computeroutput"><span class="string">"hello"</span></code>
- or a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span></code> is equivalent to a <code class="computeroutput"><span class="identifier">lit</span></code>. Examples:
+ <tt class="computeroutput"><span class="identifier">lit</span></tt>, like <tt class="computeroutput"><span class="identifier">string</span></tt>, also emits a string of characters.
+ The main difference is that <tt class="computeroutput"><span class="identifier">lit</span></tt>
+ does not consumes an attribute. A plain string like <tt class="computeroutput"><span class="string">"hello"</span></tt>
+ or a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span></tt> is equivalent to a <tt class="computeroutput"><span class="identifier">lit</span></tt>. Examples:
</p>
<pre class="programlisting"><span class="string">"Hello"</span>
<span class="identifier">lit</span><span class="special">(</span><span class="string">"Hello"</span><span class="special">)</span>
@@ -58,87 +61,81 @@
<span class="identifier">lit</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span> <span class="comment">// s is a std::string
</span></pre>
<a name="spirit.karma.reference.string.string.header"></a><h6>
-<a name="id774520"></a>
- <a class="link" href="string.html#spirit.karma.reference.string.string.header">Header</a>
+<a name="id587202"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/string/lit.hpp>
</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">karma_string</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.karma.reference.string.string.namespace"></a><h6>
-<a name="id774595"></a>
- <a class="link" href="string.html#spirit.karma.reference.string.string.namespace">Namespace</a>
+<a name="id587316"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lit</span> <span class="comment">// alias:
- boost::spirit::karma::lit</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">string</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lit</span> <span class="comment">// alias:
+ boost::spirit::karma::lit</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">string</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
<p>
- In the table above, <code class="computeroutput"><span class="identifier">ns</span></code>
- is a <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+ In the table above, <tt class="computeroutput"><span class="identifier">ns</span></tt>
+ is a <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a> used by the corresponding string generator.
</p>
<a name="spirit.karma.reference.string.string.model_of"></a><h6>
-<a name="id774713"></a>
- <a class="link" href="string.html#spirit.karma.reference.string.string.model_of">Model of</a>
+<a name="id587480"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>
+ PrimitiveGenerator
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">s</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">s</span></tt></span></dt>
<dd><p>
Character-class specific string (See Character Class Types), or a
- <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
+ <a href="../karma_basics.html#spirit.karma.reference.karma_basics.lazy_argument">Lazy
Argument</a> that evaluates to a character-class specific string
value
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">S</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">S</span></tt></span></dt>
<dd><p>
- The type of a character-clas specific string <code class="computeroutput"><span class="identifier">s</span></code>.
+ The type of a character-clas specific string <tt class="computeroutput"><span class="identifier">s</span></tt>.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">ns</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">ns</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
+ A <a href="../karma_basics.html#spirit.karma.reference.karma_basics.character_encoding_namespace">Character
Encoding Namespace</a>.
</p></dd>
</dl>
</div>
<a name="spirit.karma.reference.string.string.expression_semantics"></a><h6>
-<a name="id774831"></a>
- <a class="link" href="string.html#spirit.karma.reference.string.string.expression_semantics">Expression
+<a name="id587645"></a>
+ <a href="string.html#spirit.karma.reference.string.string.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../generator_concepts/primitivegenerator.html" title="PrimitiveGenerator"><code class="computeroutput"><span class="identifier">PrimitiveGenerator</span></code></a>.
+ is not defined in PrimitiveGenerator.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -146,96 +143,76 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">s</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate the string literal <code class="computeroutput"><span class="identifier">s</span></code>.
+<td><p>
+ <tt class="computeroutput"><span class="identifier">s</span></tt>
+ </p></td>
+<td><p>
+ Generate the string literal <tt class="computeroutput"><span class="identifier">s</span></tt>.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate the string literal <code class="computeroutput"><span class="identifier">s</span></code>.
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Generate the string literal <tt class="computeroutput"><span class="identifier">s</span></tt>.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">string</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">string</span></tt>
+ </p></td>
+<td><p>
Generate the string provided by a mandatory attribute interpreted
- in the character set defined by <code class="computeroutput"><span class="identifier">ns</span></code>.
+ in the character set defined by <tt class="computeroutput"><span class="identifier">ns</span></tt>.
This generator never fails (unless the underlying output stream
reports an error).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Generate the string <code class="computeroutput"><span class="identifier">s</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Generate the string <tt class="computeroutput"><span class="identifier">s</span></tt>
as provided by the immediate literal value the generator is initialized
from. If this generator has an associated attribute it succeeds
only as long as the attribute is equal to the immediate literal
(unless the underlying output stream reports an error). Otherwise
this generator fails and does not generate any output.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- The generators <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code> and <code class="computeroutput"><span class="identifier">string</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code> can be initialized either using a
- string literal value (i.e. <code class="computeroutput"><span class="string">"abc"</span></code>),
- or using a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">char_type</span><span class="special">,</span>
- <span class="special">...></span></code>, where <code class="computeroutput"><span class="identifier">char_type</span></code> is the required value type
+<tr><td colspan="2" align="left" valign="top"><p>
+ The generators <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></tt> and <tt class="computeroutput"><span class="identifier">string</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></tt> can be initialized either using a
+ string literal value (i.e. <tt class="computeroutput"><span class="string">"abc"</span></tt>),
+ or using a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">char_type</span><span class="special">,</span>
+ <span class="special">...></span></tt>, where <tt class="computeroutput"><span class="identifier">char_type</span></tt> is the required value type
of the underlying character sequence.
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.string.string.attributes"></a><h6>
-<a name="id775144"></a>
- <a class="link" href="string.html#spirit.karma.reference.string.string.attributes">Attributes</a>
+<a name="id588080"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -243,88 +220,68 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">s</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">s</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">string</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">S</span></code>, attribute
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">string</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">S</span></tt>, attribute
is mandatory (otherwise compilation will fail)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">S</span></code>, attribute
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">S</span></tt>, attribute
is optional, if it is supplied, the generator compares the attribute
- with <code class="computeroutput"><span class="identifier">s</span></code> and succeeds
+ with <tt class="computeroutput"><span class="identifier">s</span></tt> and succeeds
only if both are equal, failing otherwise
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- In addition to their usual attribute of type <code class="computeroutput"><span class="identifier">S</span></code>
- all listed generators accept an instance of a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">S</span><span class="special">></span></code> as well. If the <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></code> is initialized (holds a value)
- the generators behave as if their attribute was an instance of <code class="computeroutput"><span class="identifier">S</span></code> and emit the value stored in the
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></code>.
+<tr><td colspan="2" align="left" valign="top"><p>
+ In addition to their usual attribute of type <tt class="computeroutput"><span class="identifier">S</span></tt>
+ all listed generators accept an instance of a <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">S</span><span class="special">></span></tt> as well. If the <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></tt> is initialized (holds a value)
+ the generators behave as if their attribute was an instance of <tt class="computeroutput"><span class="identifier">S</span></tt> and emit the value stored in the
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special"><></span></tt>.
Otherwise the generators will fail.
</p></td></tr>
</table></div>
<a name="spirit.karma.reference.string.string.complexity"></a><h6>
-<a name="id775444"></a>
- <a class="link" href="string.html#spirit.karma.reference.string.string.complexity">Complexity</a>
+<a name="id588491"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -336,8 +293,8 @@
</p>
</blockquote></div>
<a name="spirit.karma.reference.string.string.example"></a><h6>
-<a name="id775468"></a>
- <a class="link" href="string.html#spirit.karma.reference.string.string.example">Example</a>
+<a name="id588528"></a>
+ Example
</h6>
<p>
Some includes:
@@ -415,7 +372,7 @@
<p>
</p>
<p>
- Basic usage of <code class="computeroutput"><span class="identifier">string</span></code>
+ Basic usage of <tt class="computeroutput"><span class="identifier">string</span></tt>
generators:
</p>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/tutorials.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/tutorials.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/tutorials.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Tutorials</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../index.html" title="Spirit 2.1">
-<link rel="up" href="../karma.html" title="Karma - Writing Generators">
-<link rel="prev" href="../karma.html" title="Karma - Writing Generators">
+<link rel="up" href="../karma.html" title=" Karma - Writing Generators">
+<link rel="previous" href="../karma.html" title=" Karma - Writing Generators">
<link rel="next" href="tutorials/quick_start.html" title="Quick Start">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,10 +22,13 @@
<div class="spirit-nav">
<a accesskey="p" href="../karma.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../karma.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tutorials/quick_start.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Tutorials">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.karma.tutorials"></a><a class="link" href="tutorials.html" title="Tutorials">Tutorials</a>
-</h3></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h3 class="title">
+<a name="spirit.karma.tutorials"></a>Tutorials
+</h3></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section">Quick Start</span></dt>
<dt><span class="section">Warming up</span></dt>
Modified: trunk/libs/spirit/doc/html/spirit/karma/tutorials/karma_complex.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/tutorials/karma_complex.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/tutorials/karma_complex.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Complex - A first more complex generator</title>
+<title> Complex - A
+ first more complex generator</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="semantic_actions.html" title="Semantic Actions">
-<link rel="next" href="karma_easier_complex.html" title="Complex - Made easier">
+<link rel="previous" href="semantic_actions.html" title="Semantic Actions">
+<link rel="next" href="karma_easier_complex.html" title=" Complex
+ - Made easier">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,16 +24,20 @@
<div class="spirit-nav">
<a accesskey="p" href="semantic_actions.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="karma_easier_complex.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Complex - A first more complex generator">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.tutorials.karma_complex"></a><a class="link" href="karma_complex.html" title="Complex - A first more complex generator"> Complex - A
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.tutorials.karma_complex"></a><a href="karma_complex.html" title=" Complex - A
+ first more complex generator"> Complex - A
first more complex generator</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<p>
In this section we will develop a generator for complex numbers, allowing
- to represent a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span></code> either as <code class="computeroutput"><span class="special">(</span><span class="identifier">real</span><span class="special">,</span> <span class="identifier">imag</span><span class="special">)</span></code>
- (where <code class="computeroutput"><span class="identifier">real</span></code> and <code class="computeroutput"><span class="identifier">imag</span></code> are the real and imaginary parts
- of the complex number) or as a simple <code class="computeroutput"><span class="identifier">real</span></code>
+ to represent a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span></tt> either as <tt class="computeroutput"><span class="special">(</span><span class="identifier">real</span><span class="special">,</span> <span class="identifier">imag</span><span class="special">)</span></tt>
+ (where <tt class="computeroutput"><span class="identifier">real</span></tt> and <tt class="computeroutput"><span class="identifier">imag</span></tt> are the real and imaginary parts
+ of the complex number) or as a simple <tt class="computeroutput"><span class="identifier">real</span></tt>
if the imaginary part happens to be equal to zero. This example will highlight
the power of <span class="emphasis"><em>Spirit.Karma</em></span> allowing to combine compile
time definition of formatting rules with runtime based decisions which
@@ -50,7 +56,7 @@
where the first alternative should be used for numbers having a non-zero
imaginary part, while the second is for real numbers. Generally, alternatives
are tried in the sequence of their definition as long until one of the
- expressions (as delimited by <code class="computeroutput"><span class="char">'|'</span></code>)
+ expressions (as delimited by <tt class="computeroutput"><span class="char">'|'</span></tt>)
succeeds. If no generator expression succeeds the whole alternative fails.
</p>
<p>
@@ -60,7 +66,7 @@
will be chosen instead. The decision about whether to choose the first
alternative has to be made at runtime as only then we actually know the
value of the imaginary part of the complex number. <span class="emphasis"><em>Spirit.Karma</em></span>
- provides us with with a primitive generator <code class="computeroutput"><span class="identifier">eps</span><span class="special">()</span></code>, which is usable as a semantic predicate.
+ provides us with with a primitive generator <tt class="computeroutput"><span class="identifier">eps</span><span class="special">()</span></tt>, which is usable as a semantic predicate.
It has the property to 'succeed' generating only if its argument is true
(while it never generates any output on its own).
</p>
@@ -79,7 +85,7 @@
(The full cpp file for this example can be found here: complex_number.cpp).
</p>
<p>
- We will use the <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span></code> type for this and all subsequent
+ We will use the <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">complex</span></tt> type for this and all subsequent
related examples. And here you can see the full code of the generator allowing
to output a complex number either as a pair of numbers (if the imaginary
part is non-zero) or as a single number (if the complex is a real number):
@@ -113,23 +119,23 @@
<p>
</p>
<p>
- The <code class="computeroutput"><span class="identifier">double_</span></code> generators
+ The <tt class="computeroutput"><span class="identifier">double_</span></tt> generators
have this semantic action attached:
</p>
<pre class="programlisting"><span class="identifier">_1</span> <span class="special">=</span> <span class="identifier">n</span>
</pre>
<p>
- which passes <code class="computeroutput"><span class="identifier">n</span></code> to the first
+ which passes <tt class="computeroutput"><span class="identifier">n</span></tt> to the first
element of the generator the semantic action is attached to. Remember,
semantic actions in <span class="emphasis"><em>Spirit.Karma</em></span> are called before
the corresponding generator is invoked and they are expected to provide
the generator with the data to be used. The semantic action above assigns
- the value to be generated (<code class="computeroutput"><span class="identifier">n</span></code>)
- to the generator (actually, the attribute of <code class="computeroutput"><span class="identifier">double_</span></code>).
- <code class="computeroutput"><span class="identifier">_1</span></code> is a Phoenix placeholder
+ the value to be generated (<tt class="computeroutput"><span class="identifier">n</span></tt>)
+ to the generator (actually, the attribute of <tt class="computeroutput"><span class="identifier">double_</span></tt>).
+ <tt class="computeroutput"><span class="identifier">_1</span></tt> is a Phoenix placeholder
referring to the attribute of the generator the semantic action is attached
to. If you need more information about semantic actions, you may want to
- read about those in this section: <a class="link" href="semantic_actions.html" title="Semantic Actions">Semantic
+ read about those in this section: <a href="semantic_actions.html" title="Semantic Actions">Semantic
Actions</a>.
</p>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/tutorials/karma_easier_complex.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/tutorials/karma_easier_complex.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/tutorials/karma_easier_complex.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Complex - Made easier</title>
+<title> Complex
+ - Made easier</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="karma_complex.html" title="Complex - A first more complex generator">
-<link rel="next" href="num_list.html" title="Number List - Printing Numbers From a std::vector">
+<link rel="previous" href="karma_complex.html" title=" Complex - A
+ first more complex generator">
+<link rel="next" href="num_list.html" title=" Number List - Printing
+ Numbers From a std::vector">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +25,15 @@
<div class="spirit-nav">
<a accesskey="p" href="karma_complex.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="num_list.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Complex - Made easier">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.tutorials.karma_easier_complex"></a><a class="link" href="karma_easier_complex.html" title="Complex - Made easier"> Complex
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.tutorials.karma_easier_complex"></a><a href="karma_easier_complex.html" title=" Complex
+ - Made easier"> Complex
- Made easier</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<p>
In the previous section we showed how to format a complex number (i.e.
a pair of doubles). In this section we will build on this example with
@@ -66,14 +73,14 @@
<p>
Let's try to cover some basic library features first.
</p>
-<a name="spirit.karma.tutorials.karma_easier_complex.making_numeric_generators_fail"></a><h6>
-<a name="id737179"></a>
- <a class="link" href="karma_easier_complex.html#spirit.karma.tutorials.karma_easier_complex.making_numeric_generators_fail">Making
+<a name="spirit.karma.tutorials.karma_easier_complex.making_numeric_generators_fail"></a><h5>
+<a name="id544579"></a>
+ <a href="karma_easier_complex.html#spirit.karma.tutorials.karma_easier_complex.making_numeric_generators_fail">Making
Numeric Generators Fail</a>
- </h6>
+ </h5>
<p>
- All <a class="link" href="../reference/numeric.html" title="Numeric">Numeric Generators</a>
- (such as <code class="computeroutput"><span class="identifier">double_</span></code>, et.al.)
+ All Numeric Generators
+ (such as <tt class="computeroutput"><span class="identifier">double_</span></tt>, et.al.)
take the value to emit from an attached attribute.
</p>
<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">d</span> <span class="special">=</span> <span class="number">1.5</span><span class="special">;</span>
@@ -81,15 +88,15 @@
</span></pre>
<p>
Alternatively, they may be initialized from a literal value. For instance,
- to emit a constant <code class="computeroutput"><span class="number">1.5</span></code> you
+ to emit a constant <tt class="computeroutput"><span class="number">1.5</span></tt> you
may write:
</p>
<pre class="programlisting"><span class="identifier">generate</span><span class="special">(</span><span class="identifier">out</span><span class="special">,</span> <span class="identifier">double_</span><span class="special">(</span><span class="number">1.5</span><span class="special">));</span> <span class="comment">// will emit '1.5' as well (without the quotes)
</span></pre>
<p>
- The difference to a simple <code class="computeroutput"><span class="number">1.5</span></code>
- or <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="number">1.5</span><span class="special">)</span></code> is that
- the <code class="computeroutput"><span class="identifier">double_</span><span class="special">(</span><span class="number">1.5</span><span class="special">)</span></code> consumes
+ The difference to a simple <tt class="computeroutput"><span class="number">1.5</span></tt>
+ or <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="number">1.5</span><span class="special">)</span></tt> is that
+ the <tt class="computeroutput"><span class="identifier">double_</span><span class="special">(</span><span class="number">1.5</span><span class="special">)</span></tt> consumes
an attribute if one is available. Additionally, it compares its immediate
value to the value of the supplied attribute, and fails if those are not
equal.
@@ -102,31 +109,33 @@
the immediate value, enables numeric generators to be used to dynamically
control the way output is generated.
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
There are more generators exposing the feature to fail if their immediate
- value is not equal to the supplied attribute. Here are some: all <a class="link" href="../reference/char.html" title="Char">Character Generators</a>, all
- <a class="link" href="../reference/string.html" title="String">String Generators</a>.
- Generally, all generators having a sibling created by a variant of <code class="computeroutput"><span class="identifier">lit</span><span class="special">()</span></code>
+ value is not equal to the supplied attribute. Here are some: all Character Generators, all
+ String Generators.
+ Generally, all generators having a sibling created by a variant of <tt class="computeroutput"><span class="identifier">lit</span><span class="special">()</span></tt>
belong into this category.
</p></td></tr>
</table></div>
-<a name="spirit.karma.tutorials.karma_easier_complex.predicates___the_conditionals_for_output_generators"></a><h6>
-<a name="id738560"></a>
- <a class="link" href="karma_easier_complex.html#spirit.karma.tutorials.karma_easier_complex.predicates___the_conditionals_for_output_generators">Predicates
+<a name="spirit.karma.tutorials.karma_easier_complex.predicates___the_conditionals_for_output_generators"></a><h5>
+<a name="id545012"></a>
+ <a href="karma_easier_complex.html#spirit.karma.tutorials.karma_easier_complex.predicates___the_conditionals_for_output_generators">Predicates
- The Conditionals for Output Generators</a>
- </h6>
+ </h5>
<p>
- In addition to the <a class="link" href="../reference/auxiliary/eps.html" title="Epsilon (eps)"><code class="computeroutput"><span class="identifier">eps</span></code></a> generator mentioned earlier
+ In addition to the eps generator mentioned earlier
<span class="emphasis"><em>Spirit.Karma</em></span> provides two special operators enabling
- dynamic flow control: the <a class="link" href="../reference/operator/and_predicate.html" title="And Predicate (&a)">And
- predicate (unary <code class="computeroutput"><span class="special">&</span></code>)</a>
- and the <a class="link" href="../reference/operator/not_predicate.html" title="Not Predicate (!a)">Not
- predicate (unary <code class="computeroutput"><span class="special">!</span></code>)</a>.
+ dynamic flow control: the <a href="../reference/operator/and_predicate.html" title=" And
+ Predicate (&a)">And
+ predicate (unary <tt class="computeroutput"><span class="special">&</span></tt>)</a>
+ and the <a href="../reference/operator/not_predicate.html" title=" Not
+ Predicate (!a)">Not
+ predicate (unary <tt class="computeroutput"><span class="special">!</span></tt>)</a>.
The main property of both predicates is to discard all output emitted by
the generator they are attached to. This is equivalent to the behaviour
of predicates used for parsing. There the predicates do not consume any
@@ -134,12 +143,12 @@
succeeds as long as its associated generator suceeds, while the not predicate
succeeds only if its associated generator fails.
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
The generator predicates in <span class="emphasis"><em>Spirit.Karma</em></span> consume
an attribute, if available. This makes them behave differently from predicates
in <span class="emphasis"><em>Spirit.Qi</em></span>, where they do not expose any attribute.
@@ -166,45 +175,49 @@
Neither of these will emit any output. The predicates discard everything
emitted by the generators they are applied to.
</p>
-<a name="spirit.karma.tutorials.karma_easier_complex.ignoring_supplied_attributes"></a><h6>
-<a name="id738809"></a>
- <a class="link" href="karma_easier_complex.html#spirit.karma.tutorials.karma_easier_complex.ignoring_supplied_attributes">Ignoring
+<a name="spirit.karma.tutorials.karma_easier_complex.ignoring_supplied_attributes"></a><h5>
+<a name="id545391"></a>
+ <a href="karma_easier_complex.html#spirit.karma.tutorials.karma_easier_complex.ignoring_supplied_attributes">Ignoring
Supplied Attributes</a>
- </h6>
+ </h5>
<p>
Sometimes it is desirable to 'skip' (i.e. ignore) a provided attribute.
This happens for instance in alternative generators, where some of the
alternatives need to extract only part of the overall attribute passed
to the alternative generator. <span class="emphasis"><em>Spirit.Karma</em></span> has a special
- pseudo generator for that: the directive <a class="link" href="../reference/directive/omit.html" title="Consume Attribute (omit[])"><code class="computeroutput"><span class="identifier">omit</span></code></a><code class="computeroutput"><span class="special">[]</span></code>.
+ pseudo generator for that: the directive <a href="../reference/directive/omit.html" title=" Consume Attribute
+ (omit[])"><tt class="computeroutput"><span class="identifier">omit</span></tt></a><tt class="computeroutput"><span class="special">[]</span></tt>.
This directive consumes an attribute of the type defined by its embedded
generator but it does not emit any output.
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- The <span class="emphasis"><em>Spirit.Karma</em></span> <a class="link" href="../reference/directive/omit.html" title="Consume Attribute (omit[])"><code class="computeroutput"><span class="identifier">omit</span></code></a> directive does the 'opposite'
+<tr><td colspan="2" align="left" valign="top"><p>
+ The <span class="emphasis"><em>Spirit.Karma</em></span> <a href="../reference/directive/omit.html" title=" Consume Attribute
+ (omit[])"><tt class="computeroutput"><span class="identifier">omit</span></tt></a> directive does the 'opposite'
of the directive of the same name in <span class="emphasis"><em>Spirit.Qi</em></span>.
- While the <a class="link" href="../../qi/reference/directive/omit.html" title="Ignoring Attribute (omit[])"><code class="computeroutput"><span class="identifier">omit</span></code></a> in <span class="emphasis"><em>Spirit.Qi</em></span>
+ While the <a href="../../qi/reference/directive/omit.html" title=" Ignoring Attribute
+ (omit[])"><tt class="computeroutput"><span class="identifier">omit</span></tt></a> in <span class="emphasis"><em>Spirit.Qi</em></span>
consumes input without exposing an attribute, its <span class="emphasis"><em>Spirit.Karma</em></span>
counterpart consumes an attribute without emitting any output.
</p></td></tr>
</table></div>
-<a name="spirit.karma.tutorials.karma_easier_complex.putting_everything_together"></a><h6>
-<a name="id738887"></a>
- <a class="link" href="karma_easier_complex.html#spirit.karma.tutorials.karma_easier_complex.putting_everything_together">Putting
+<a name="spirit.karma.tutorials.karma_easier_complex.putting_everything_together"></a><h5>
+<a name="id545527"></a>
+ <a href="karma_easier_complex.html#spirit.karma.tutorials.karma_easier_complex.putting_everything_together">Putting
everything together</a>
- </h6>
+ </h5>
<p>
Very similar to our first example ealier we use two alternatives to allow
for the two different output formats depending on whether the imaginery
part of the complex number is equal to zero or not. The first alternative
is executed if the imaginary part is not zero, the second alternative otherwise.
- This time we make the decision during runtime using the <a class="link" href="../reference/operator/not_predicate.html" title="Not Predicate (!a)">Not
- predicate (unary <code class="computeroutput"><span class="special">!</span></code>)</a>
+ This time we make the decision during runtime using the <a href="../reference/operator/not_predicate.html" title=" Not
+ Predicate (!a)">Not
+ predicate (unary <tt class="computeroutput"><span class="special">!</span></tt>)</a>
combined with the feature of many Karma primitive generators to <span class="emphasis"><em>fail</em></span>
under certain conditions. Here is the first alternative again for your
reference:
@@ -212,52 +225,53 @@
<pre class="programlisting"><span class="special">!</span><span class="identifier">double_</span><span class="special">(</span><span class="number">0.0</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="string">", "</span> <span class="special"><<</span> <span class="identifier">double_</span> <span class="special"><<</span> <span class="char">')'</span>
</pre>
<p>
- The generator <code class="computeroutput"><span class="special">!</span><span class="identifier">double_</span><span class="special">(</span><span class="number">0.0</span><span class="special">)</span></code>
- does several things. First, because of the <a class="link" href="../reference/operator/not_predicate.html" title="Not Predicate (!a)">Not
- predicate (unary <code class="computeroutput"><span class="special">!</span></code>)</a>,
- it succeeds only if the <code class="computeroutput"><span class="identifier">double_</span><span class="special">(</span><span class="number">0.0</span><span class="special">)</span></code>
+ The generator <tt class="computeroutput"><span class="special">!</span><span class="identifier">double_</span><span class="special">(</span><span class="number">0.0</span><span class="special">)</span></tt>
+ does several things. First, because of the <a href="../reference/operator/not_predicate.html" title=" Not
+ Predicate (!a)">Not
+ predicate (unary <tt class="computeroutput"><span class="special">!</span></tt>)</a>,
+ it succeeds only if the <tt class="computeroutput"><span class="identifier">double_</span><span class="special">(</span><span class="number">0.0</span><span class="special">)</span></tt>
generator <span class="emphasis"><em>fails</em></span>, making the whole first alternative
- fail otherwise. Second, the <code class="computeroutput"><span class="identifier">double_</span><span class="special">(</span><span class="number">0.0</span><span class="special">)</span></code>
+ fail otherwise. Second, the <tt class="computeroutput"><span class="identifier">double_</span><span class="special">(</span><span class="number">0.0</span><span class="special">)</span></tt>
generator succeeds only if the value of its attribute is equal to its immediate
- parameter (i.e. in this case <code class="computeroutput"><span class="number">0.0</span></code>).
+ parameter (i.e. in this case <tt class="computeroutput"><span class="number">0.0</span></tt>).
And third, the not predicate does not emit any output (regardless whether
it succeeds or fails), discarding any possibly emitted output from the
- <code class="computeroutput"><span class="identifier">double_</span><span class="special">(</span><span class="number">0.0</span><span class="special">)</span></code>.
+ <tt class="computeroutput"><span class="identifier">double_</span><span class="special">(</span><span class="number">0.0</span><span class="special">)</span></tt>.
</p>
<p>
As we pass the imaginery part of the complex number as the attribute value
- for the <code class="computeroutput"><span class="special">!</span><span class="identifier">double_</span><span class="special">(</span><span class="number">0.0</span><span class="special">)</span></code>,
+ for the <tt class="computeroutput"><span class="special">!</span><span class="identifier">double_</span><span class="special">(</span><span class="number">0.0</span><span class="special">)</span></tt>,
the overall first alternative will be chosen only if it is not equal to
- zero (the <code class="computeroutput"><span class="special">!</span><span class="identifier">double_</span><span class="special">(</span><span class="number">0.0</span><span class="special">)</span></code>
+ zero (the <tt class="computeroutput"><span class="special">!</span><span class="identifier">double_</span><span class="special">(</span><span class="number">0.0</span><span class="special">)</span></tt>
does not fail). That is exactly what we need!
</p>
<p>
Now, the second alternative has to emit the real part of the complex number
only. In order to simplify the overall grammar we strive to unify the attribute
types of all alternatives. As the attribute type exposed by the first alternative
- is <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">></span></code>,
+ is <tt class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">></span></tt>,
we need to skip the first and last element of the attribute (remember,
we pass the real part as the second attribute element). We achieve this
- by using the <code class="computeroutput"><span class="identifier">omit</span><span class="special">[]</span></code>
+ by using the <tt class="computeroutput"><span class="identifier">omit</span><span class="special">[]</span></tt>
directive:
</p>
<pre class="programlisting"><span class="identifier">omit</span><span class="special">[</span><span class="identifier">double_</span><span class="special">]</span> <span class="special"><<</span> <span class="identifier">double_</span> <span class="special"><<</span> <span class="identifier">omit</span><span class="special">[</span><span class="identifier">double_</span><span class="special">]</span>
</pre>
<p>
- The overall attribute of this expression is <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">></span></code>, but the <code class="computeroutput"><span class="identifier">omit</span><span class="special">[]</span></code> 'eats up' the first and the last element.
+ The overall attribute of this expression is <tt class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">></span></tt>, but the <tt class="computeroutput"><span class="identifier">omit</span><span class="special">[]</span></tt> 'eats up' the first and the last element.
The output emitted by this expression consist of a single generated double
representing the second element of the tuple, i.e. the real part of our
complex number.
</p>
-<div class="important" title="Important"><table border="0" summary="Important">
+<div class="important"><table border="0" summary="Important">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../images/important.png"></td>
<th align="left">Important</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
Generally, it is preferrable to use generator constructs not requiring
semantic actions. The reason is that semantic actions often use constructs
- like: <code class="computeroutput"><span class="identifier">double_</span><span class="special">[</span><span class="identifier">_1</span> <span class="special">=</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">real</span><span class="special">()]</span></code>.
+ like: <tt class="computeroutput"><span class="identifier">double_</span><span class="special">[</span><span class="identifier">_1</span> <span class="special">=</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">real</span><span class="special">()]</span></tt>.
But this assignment is a real one! The data is in fact <span class="emphasis"><em>copied</em></span>
to the attribute value of the generator the action is attached to. On
the other hand, grammars without any semantic actions usually don't have
Modified: trunk/libs/spirit/doc/html/spirit/karma/tutorials/num_list.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/tutorials/num_list.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/tutorials/num_list.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Number List - Printing Numbers From a std::vector</title>
+<title> Number List - Printing
+ Numbers From a std::vector</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="karma_easier_complex.html" title="Complex - Made easier">
-<link rel="next" href="num_matrix.html" title="Matrix of Numbers - Printing Numbers From a Matrix">
+<link rel="previous" href="karma_easier_complex.html" title=" Complex
+ - Made easier">
+<link rel="next" href="num_matrix.html" title=" Matrix of Numbers
+ - Printing Numbers From a Matrix">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,16 +25,20 @@
<div class="spirit-nav">
<a accesskey="p" href="karma_easier_complex.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="num_matrix.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Number List - Printing Numbers From a std::vector">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.tutorials.num_list"></a><a class="link" href="num_list.html" title="Number List - Printing Numbers From a std::vector"> Number List - Printing
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.tutorials.num_list"></a><a href="num_list.html" title=" Number List - Printing
+ Numbers From a std::vector"> Number List - Printing
Numbers From a std::vector</a>
-</h4></div></div></div>
-<a name="spirit.karma.tutorials.num_list.using_the_list_operator"></a><h6>
-<a name="id739344"></a>
- <a class="link" href="num_list.html#spirit.karma.tutorials.num_list.using_the_list_operator">Using
+</h4></div></div>
+<div></div>
+</div>
+<a name="spirit.karma.tutorials.num_list.using_the_list_operator"></a><h5>
+<a name="id546212"></a>
+ <a href="num_list.html#spirit.karma.tutorials.num_list.using_the_list_operator">Using
the List Operator</a>
- </h6>
+ </h5>
<p>
The C++ Standards library lacks an important feature, namely the support
for any formatted output of containers. Sure, it's fairly easy to write
@@ -39,7 +46,7 @@
over again is tedious at best. In this section we will demonstrate some
more of the capabilities of <span class="emphasis"><em>Spirit.Karma</em></span> for generating
output from arbitrary STL containers. We will build on the example presented
- in an earlier section (see: <a class="link" href="warming_up.html" title="Warming up">Warming
+ in an earlier section (see: <a href="warming_up.html" title="Warming up">Warming
Up</a>).
</p>
<p>
@@ -47,8 +54,8 @@
here: num_list2.cpp.
</p>
<p>
- This time we take advantage of Karma's <a class="link" href="../reference/operator/list.html" title="Lists (a % b)">List
- (<code class="computeroutput"><span class="special">%</span></code>)</a> operator. The semantics
+ This time we take advantage of Karma's <a href="../reference/operator/list.html" title=" Lists (a % b)">List
+ (<tt class="computeroutput"><span class="special">%</span></tt>)</a> operator. The semantics
of the list operator are fully equivalent to the semantics of the sequence
we used before. The generator expression
</p>
@@ -61,10 +68,10 @@
</pre>
<p>
simplifying the overall code. The list operators attribute is compatible
- with any STL container as well. For a change we use a <code 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></code> instead of the <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span></code> we used before. Additionally, the routine
- <code class="computeroutput"><span class="identifier">generate_numbers</span></code> takes
+ with any STL container as well. For a change we use 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> instead of the <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span></tt> we used before. Additionally, the routine
+ <tt class="computeroutput"><span class="identifier">generate_numbers</span></tt> takes
the container as a template paramter, so it will now work with any STL
- container holding <code class="computeroutput"><span class="keyword">double</span></code> numbers.
+ container holding <tt class="computeroutput"><span class="keyword">double</span></tt> numbers.
</p>
<p>
</p>
@@ -91,47 +98,47 @@
</p>
<p>
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
Despite the container being a template parameter, the <span class="emphasis"><em>Spirit.Karma</em></span>
- formatting expression (<code class="computeroutput"><span class="identifier">double_</span>
- <span class="special">%</span> <span class="char">','</span></code>)
+ formatting expression (<tt class="computeroutput"><span class="identifier">double_</span>
+ <span class="special">%</span> <span class="char">','</span></tt>)
does not depend on the actual type of the passed container. The only
precondition to be met here is that the elements stored in the container
- have to be converible to <code class="computeroutput"><span class="keyword">double</span></code>.
+ have to be converible to <tt class="computeroutput"><span class="keyword">double</span></tt>.
</p></td></tr>
</table></div>
-<a name="spirit.karma.tutorials.num_list.generate_output_from_arbitrary_data"></a><h6>
-<a name="id739862"></a>
- <a class="link" href="num_list.html#spirit.karma.tutorials.num_list.generate_output_from_arbitrary_data">Generate
+<a name="spirit.karma.tutorials.num_list.generate_output_from_arbitrary_data"></a><h5>
+<a name="id546956"></a>
+ <a href="num_list.html#spirit.karma.tutorials.num_list.generate_output_from_arbitrary_data">Generate
Output from Arbitrary Data</a>
- </h6>
+ </h5>
<p>
The output routine developed above is still not generically usable for
all types of STL containers and for arbitrary elements stored in them.
In order to be usable the items stored in the container still need to be
- convertible to a <code class="computeroutput"><span class="keyword">double</span></code>. Fortunately
+ convertible to a <tt class="computeroutput"><span class="keyword">double</span></tt>. Fortunately
<span class="emphasis"><em>Spirit.Karma</em></span> exposes the capabilities to output arbitrary
data types while using the same format description expression. It implements
- the <a class="link" href="../reference/stream.html" title="Stream"><code class="computeroutput"><span class="identifier">stream</span></code></a>
+ the stream
generators. These are applicable to any attribute type as long as a matching
standard streaming operator is defined. For instance for any attribute
- type <code class="computeroutput"><span class="identifier">Attrib</span></code> a function:
+ type <tt class="computeroutput"><span class="identifier">Attrib</span></tt> a function:
</p>
<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&</span> <span class="keyword">operator</span><span class="special"><<</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&,</span> <span class="identifier">Attrib</span> <span class="keyword">const</span><span class="special">&);</span>
</pre>
<p>
- needs to be available. The <a class="link" href="../reference/stream.html" title="Stream"><code class="computeroutput"><span class="identifier">stream</span></code></a> generator will use the
+ needs to be available. The stream generator will use the
standard streaming operator to generate the output.
</p>
<p>
- The following example modifies the code shown above to utilize the <a class="link" href="../reference/stream.html" title="Stream"><code class="computeroutput"><span class="identifier">stream</span></code></a>
+ The following example modifies the code shown above to utilize the stream
operator, which makes it compatible with almost any data type. We implement
- a custom data type <code class="computeroutput"><span class="identifier">complex</span></code>
+ a custom data type <tt class="computeroutput"><span class="identifier">complex</span></tt>
to demonstrate this. The example shows how it is possible to integrate
this (or any other) custom data type into the <span class="emphasis"><em>Spirit.Karma</em></span>
generator framework.
@@ -169,7 +176,8 @@
<p>
And this is the actual call to generate the output from a vector of those.
This time we interleave the generated output with newline breaks (see
- <a class="link" href="../reference/auxiliary/eol.html" title="End of Line (eol)"><code class="computeroutput"><span class="identifier">eol</span></code></a>),
+ <a href="../reference/auxiliary/eol.html" title=" End of Line
+ (eol)"><tt class="computeroutput"><span class="identifier">eol</span></tt></a>),
putting each complex number onto a separate line:
</p>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/tutorials/num_matrix.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/tutorials/num_matrix.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/tutorials/num_matrix.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Matrix of Numbers - Printing Numbers From a Matrix</title>
+<title> Matrix of Numbers
+ - Printing Numbers From a Matrix</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="num_list.html" title="Number List - Printing Numbers From a std::vector">
+<link rel="previous" href="num_list.html" title=" Number List - Printing
+ Numbers From a std::vector">
<link rel="next" href="../quick_reference.html" title="Quick Reference">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,15 +24,19 @@
<div class="spirit-nav">
<a accesskey="p" href="num_list.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Matrix of Numbers - Printing Numbers From a Matrix">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.tutorials.num_matrix"></a><a class="link" href="num_matrix.html" title="Matrix of Numbers - Printing Numbers From a Matrix"> Matrix of Numbers
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.tutorials.num_matrix"></a><a href="num_matrix.html" title=" Matrix of Numbers
+ - Printing Numbers From a Matrix"> Matrix of Numbers
- Printing Numbers From a Matrix</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<p>
In this section we will discuss the possibilities of <span class="emphasis"><em>Spirit.Karma</em></span>
when it comes to generating output from more complex - but still regular
- - data structures. For simplicity we will use a <code class="computeroutput"><span class="identifier">std</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">int</span><span class="special">></span> <span class="special">></span></code>
+ - data structures. For simplicity we will use a <tt class="computeroutput"><span class="identifier">std</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">int</span><span class="special">></span> <span class="special">></span></tt>
as a poor man's matrix representation. But even if the data structure seems
to be very simple, the presented principles are applicable to more complex,
or custom data structures as well. The full source code of the example
Modified: trunk/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/tutorials/quick_start.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Quick Start</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="../tutorials.html" title="Tutorials">
+<link rel="previous" href="../tutorials.html" title="Tutorials">
<link rel="next" href="warming_up.html" title="Warming up">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,29 +22,32 @@
<div class="spirit-nav">
<a accesskey="p" href="../tutorials.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="warming_up.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Quick Start">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.tutorials.quick_start"></a><a class="link" href="quick_start.html" title="Quick Start">Quick Start</a>
-</h4></div></div></div>
-<a name="spirit.karma.tutorials.quick_start.spirit_karma___what_s_that_"></a><h6>
-<a name="id731327"></a>
- <a class="link" href="quick_start.html#spirit.karma.tutorials.quick_start.spirit_karma___what_s_that_">Spirit.Karma
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.tutorials.quick_start"></a>Quick Start
+</h4></div></div>
+<div></div>
+</div>
+<a name="spirit.karma.tutorials.quick_start.spirit_karma___what_s_that_"></a><h5>
+<a name="id539061"></a>
+ <a href="quick_start.html#spirit.karma.tutorials.quick_start.spirit_karma___what_s_that_">Spirit.Karma
- what's that?</a>
- </h6>
+ </h5>
<p>
Throughout the description of <span class="emphasis"><em>Spirit.Karma</em></span> we will
try to align ourselves very much with the documentation for <span class="emphasis"><em>Spirit.Qi</em></span>.
The reasons are manyfold:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
<span class="emphasis"><em>Spirit.Karma</em></span> is the counterpart to <span class="emphasis"><em>Spirit.Qi</em></span>.
Some people say it's the Yin to <span class="emphasis"><em>Spirit.Qi</em></span>'s Yang.
<span class="emphasis"><em>Spirit.Karma</em></span> is to generating byte sequences from
internal data structures as <span class="emphasis"><em>Spirit.Qi</em></span> is parsing
byte sequences into those (very same) internal data structures.
</li>
-<li class="listitem">
+<li>
Both libraries have an almost identical structure, very similar semantics,
and are both built using identical tools. Both libraries implement a
language casting the specifics of their domain (parsing and generating)
@@ -61,7 +64,8 @@
maintainabilty, and flexibility of the code. Last, but not least, it turns
out that code using <span class="emphasis"><em>Spirit.Karma</em></span> runs much faster
than equivalent code using either of the 'straight' methods mentioned above
- (see here for some numbers: <a class="link" href="../performance_measurements/numeric_performance.html" title="Performance of Numeric Generators">Performance
+ (see here for some numbers: <a href="../performance_measurements/numeric_performance.html" title="
+ Performance of Numeric Generators">Performance
of Numeric Generators</a>)
</p>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/karma/tutorials/semantic_actions.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/tutorials/semantic_actions.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/tutorials/semantic_actions.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,12 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Semantic Actions</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="warming_up.html" title="Warming up">
-<link rel="next" href="karma_complex.html" title="Complex - A first more complex generator">
+<link rel="previous" href="warming_up.html" title="Warming up">
+<link rel="next" href="karma_complex.html" title=" Complex - A
+ first more complex generator">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,16 +23,19 @@
<div class="spirit-nav">
<a accesskey="p" href="warming_up.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="karma_complex.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Semantic Actions">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.tutorials.semantic_actions"></a><a class="link" href="semantic_actions.html" title="Semantic Actions">Semantic Actions</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.tutorials.semantic_actions"></a>Semantic Actions
+</h4></div></div>
+<div></div>
+</div>
<p>
In the previous section we mentioned a very important difference between
parsers and generators. While parsers may be used without 'producing' any
data, generators alsways need data to generate the output from. We mentioned
one way of passing data to the generator by supplying it as a parameter
- to one of the main API functions (for instance <code class="computeroutput"><span class="identifier">generate</span><span class="special">()</span></code> or <code class="computeroutput"><span class="identifier">generate_delimited</span><span class="special">()</span></code>). But sometimes this is not possible
+ to one of the main API functions (for instance <tt class="computeroutput"><span class="identifier">generate</span><span class="special">()</span></tt> or <tt class="computeroutput"><span class="identifier">generate_delimited</span><span class="special">()</span></tt>). But sometimes this is not possible
or not desireable.
</p>
<p>
@@ -39,16 +43,16 @@
in <span class="emphasis"><em>Spirit.Karma</em></span> as well. Semantic actions may be attached
to any point in the grammar specification. These actions are C++ functions
or function objects that are called whenever a part of the generator is
- about to be invoked. Say you have a generator <code class="computeroutput"><span class="identifier">G</span></code>,
- and a C++ function <code class="computeroutput"><span class="identifier">F</span></code>, you
- can make the generator call <code class="computeroutput"><span class="identifier">F</span></code>
- just before it gets invoked by attaching <code class="computeroutput"><span class="identifier">F</span></code>:
+ about to be invoked. Say you have a generator <tt class="computeroutput"><span class="identifier">G</span></tt>,
+ and a C++ function <tt class="computeroutput"><span class="identifier">F</span></tt>, you
+ can make the generator call <tt class="computeroutput"><span class="identifier">F</span></tt>
+ just before it gets invoked by attaching <tt class="computeroutput"><span class="identifier">F</span></tt>:
</p>
<pre class="programlisting"><span class="identifier">G</span><span class="special">[</span><span class="identifier">F</span><span class="special">]</span>
</pre>
<p>
- The expression above links <code class="computeroutput"><span class="identifier">F</span></code>
- to the generator, <code class="computeroutput"><span class="identifier">G</span></code>.
+ The expression above links <tt class="computeroutput"><span class="identifier">F</span></tt>
+ to the generator, <tt class="computeroutput"><span class="identifier">G</span></tt>.
</p>
<p>
Semantic actions in <span class="emphasis"><em>Spirit.Qi</em></span> are invoked after a
@@ -59,34 +63,34 @@
</p>
<p>
The function/function object signature depends on the type of the generator
- to which it is attached. The generator <code class="computeroutput"><span class="identifier">double_</span></code>
+ to which it is attached. The generator <tt class="computeroutput"><span class="identifier">double_</span></tt>
expects the number to generate. Thus, if we were to attach a function
- <code class="computeroutput"><span class="identifier">F</span></code> to <code class="computeroutput"><span class="identifier">double_</span></code>,
- we need <code class="computeroutput"><span class="identifier">F</span></code> to be declared
+ <tt class="computeroutput"><span class="identifier">F</span></tt> to <tt class="computeroutput"><span class="identifier">double_</span></tt>,
+ 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="special">&</span> <span class="identifier">n</span><span class="special">);</span>
</pre>
<p>
- where the function is expected to initialize the parameter <code class="computeroutput"><span class="identifier">n</span></code> with the value to generate.
+ where the function is expected to initialize the parameter <tt class="computeroutput"><span class="identifier">n</span></tt> with the value to generate.
</p>
-<div class="important" title="Important"><table border="0" summary="Important">
+<div class="important"><table border="0" summary="Important">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../images/important.png"></td>
<th align="left">Important</th>
</tr>
-<tr><td align="left" valign="top">
+<tr><td colspan="2" align="left" valign="top">
<p>
- Generally, and more formally, the semantic action <code class="computeroutput"><span class="identifier">F</span></code>
- attached to a generator <code class="computeroutput"><span class="identifier">G</span></code>
+ Generally, and more formally, the semantic action <tt class="computeroutput"><span class="identifier">F</span></tt>
+ attached to a generator <tt class="computeroutput"><span class="identifier">G</span></tt>
needs to take a reference to the generators attribute type as its first
parameter. For more information about generator attributes please see
the section Generator Attributes.
</p>
<p>
- In the example above the function F takes a <code class="computeroutput"><span class="keyword">double</span><span class="special">&</span></code> as its first parameter as the attribute
- of the <code class="computeroutput"><span class="identifier">double_</span></code> generator
- happens to be a <code class="computeroutput"><span class="keyword">double</span></code>.
+ In the example above the function F takes a <tt class="computeroutput"><span class="keyword">double</span><span class="special">&</span></tt> as its first parameter as the attribute
+ of the <tt class="computeroutput"><span class="identifier">double_</span></tt> generator
+ happens to be a <tt class="computeroutput"><span class="keyword">double</span></tt>.
</p>
</td></tr>
</table></div>
@@ -107,22 +111,22 @@
<p>
In the following example we present various ways to attach semantic actions:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
Using plain function pointer
</li>
-<li class="listitem">
+<li>
Using simple function object
</li>
-<li class="listitem">
+<li>
Using Boost.Bind with
a plain function
</li>
-<li class="listitem">
+<li>
Using Boost.Bind with
a member function
</li>
-<li class="listitem">
+<li>
Using Boost.Lambda
</li>
</ul></div>
@@ -168,11 +172,11 @@
<p>
</p>
<p>
- Take note that with function objects, we need to have an <code class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></code>
+ Take note that with function objects, we need to have an <tt class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></tt>
with 3 arguments. Since we don't care about the other two, we can use
- <code class="computeroutput"><span class="identifier">unused_type</span></code> for these.
- We'll see more of <code class="computeroutput"><span class="identifier">unused_type</span></code>
- elsewhere. Get used to it. <code class="computeroutput"><span class="identifier">unused_type</span></code>
+ <tt class="computeroutput"><span class="identifier">unused_type</span></tt> for these.
+ We'll see more of <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
+ elsewhere. Get used to it. <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
is a Spirit supplied support class. Most of the time it stands for 'I don't
care, just use the appropriate default'.
</p>
@@ -199,8 +203,8 @@
<p>
</p>
<p>
- What's new? Well <code class="computeroutput"><span class="identifier">int_</span></code> is
- the sibbling of <code class="computeroutput"><span class="identifier">double_</span></code>.
+ What's new? Well <tt class="computeroutput"><span class="identifier">int_</span></tt> is
+ the sibbling of <tt class="computeroutput"><span class="identifier">double_</span></tt>.
I'm sure you can guess what this generator does and what type of attribute
it expects.
</p>
@@ -275,10 +279,10 @@
<p>
The examples above can be found here: actions.cpp
</p>
-<a name="spirit.karma.tutorials.semantic_actions.phoenix"></a><h6>
-<a name="id735849"></a>
- <a class="link" href="semantic_actions.html#spirit.karma.tutorials.semantic_actions.phoenix">Phoenix</a>
- </h6>
+<a name="spirit.karma.tutorials.semantic_actions.phoenix"></a><h5>
+<a name="id542676"></a>
+ Phoenix
+ </h5>
<p>
<a href="../../../../../phoenix/doc/html/index.html" target="_top">Phoenix</a>, a companion
library bundled with Spirit, is specifically suited for binding semantic
Modified: trunk/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html (original)
+++ trunk/libs/spirit/doc/html/spirit/karma/tutorials/warming_up.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Warming up</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="quick_start.html" title="Quick Start">
+<link rel="previous" href="quick_start.html" title="Quick Start">
<link rel="next" href="semantic_actions.html" title="Semantic Actions">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,19 +22,22 @@
<div class="spirit-nav">
<a accesskey="p" href="quick_start.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="semantic_actions.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Warming up">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.karma.tutorials.warming_up"></a><a class="link" href="warming_up.html" title="Warming up">Warming up</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.karma.tutorials.warming_up"></a>Warming up
+</h4></div></div>
+<div></div>
+</div>
<p>
Learning how to use <span class="emphasis"><em>Spirit.Karma</em></span> is really simple.
We will start from trivial examples, ramping up as we go.
</p>
-<a name="spirit.karma.tutorials.warming_up.trivial_example__1_generating_a_number"></a><h6>
-<a name="id731453"></a>
- <a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__1_generating_a_number">Trivial
+<a name="spirit.karma.tutorials.warming_up.trivial_example__1_generating_a_number"></a><h5>
+<a name="id539268"></a>
+ <a href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__1_generating_a_number">Trivial
Example #1 Generating a number</a>
- </h6>
+ </h5>
<p>
Let's create a generator that will output a floating-point number:
</p>
@@ -48,13 +51,13 @@
entities (as in this case, floating point numbers) are named identically
in <span class="emphasis"><em>Spirit.Karma</em></span> and in <span class="emphasis"><em>Spirit.Qi</em></span>.
Actually, both libraries are using the very same variable instance to refer
- to a floating point generator or parser: <code class="computeroutput"><span class="identifier">double_</span></code>.
+ to a floating point generator or parser: <tt class="computeroutput"><span class="identifier">double_</span></tt>.
</p>
-<a name="spirit.karma.tutorials.warming_up.trivial_example__2_generating_two_numbers"></a><h6>
-<a name="id731497"></a>
- <a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__2_generating_two_numbers">Trivial
+<a name="spirit.karma.tutorials.warming_up.trivial_example__2_generating_two_numbers"></a><h5>
+<a name="id539340"></a>
+ <a href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__2_generating_two_numbers">Trivial
Example #2 Generating two numbers</a>
- </h6>
+ </h5>
<p>
Now, let's create a generator that will output a line consisting of two
floating-point numbers.
@@ -62,37 +65,37 @@
<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 generator <code class="computeroutput"><span class="identifier">double_</span></code> used twice, once for each number.
- If you are used to see the <code class="computeroutput"><span class="char">'>>'</span></code>
+ Here you see the familiar floating-point numeric generator <tt class="computeroutput"><span class="identifier">double_</span></tt> used twice, once for each number.
+ If you are used to see the <tt class="computeroutput"><span class="char">'>>'</span></tt>
operator for concatenating two parsers in <span class="emphasis"><em>Spirit.Qi</em></span>
- you might wonder, what's that <code class="computeroutput"><span class="char">'<<'</span></code>
+ you might wonder, what's that <tt class="computeroutput"><span class="char">'<<'</span></tt>
operator doing in there? We decided to distinguish generating and parsing
of sequences the same way as the std::stream libraries do: we use operator
- <code class="computeroutput"><span class="char">'>>'</span></code> for input (parsing),
- and operator <code class="computeroutput"><span class="char">'<<'</span></code> for output
+ <tt class="computeroutput"><span class="char">'>>'</span></tt> for input (parsing),
+ and operator <tt class="computeroutput"><span class="char">'<<'</span></tt> for output
(generating). Other than that there is no significant difference. The above
program creates a generator from two simpler generators, glueing them together
with the sequence operator. The result is a generator that is a composition
of smaller generators. Whitespace between numbers can implicitly be inserted
depending on how the generator is invoked (see below).
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
When we combine generators, we end up with a "bigger" generator,
but it's still a generator. Generators can get bigger and bigger, nesting
more and more, but whenever you glue two generators together, you end
up with one bigger generator. This is an important concept.
</p></td></tr>
</table></div>
-<a name="spirit.karma.tutorials.warming_up.trivial_example__3_generating_one_or_more_numbers"></a><h6>
-<a name="id731582"></a>
- <a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__3_generating_one_or_more_numbers">Trivial
+<a name="spirit.karma.tutorials.warming_up.trivial_example__3_generating_one_or_more_numbers"></a><h5>
+<a name="id539493"></a>
+ <a href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__3_generating_one_or_more_numbers">Trivial
Example #3 Generating one or more numbers</a>
- </h6>
+ </h5>
<p>
Now, creating output for two numbers is not too interesting. Let's create
a generator that will output zero or more floating-point numbers in a row.
@@ -100,7 +103,7 @@
<pre class="programlisting"><span class="special">*</span><span class="identifier">double_</span>
</pre>
<p>
- This is like a regular-expression Kleene Star. We moved the <code class="computeroutput"><span class="special">*</span></code> to the front for the same reasons we did
+ This is like a regular-expression Kleene Star. We moved the <tt class="computeroutput"><span class="special">*</span></tt> to the front for the same reasons we did
in <span class="emphasis"><em>Spirit.Qi</em></span>: we must work with the syntax rules of
C++. But if you know regular expressions (and for sure you remember those
C++ syntax rules) it will start to look very familiar in a matter of a
@@ -113,11 +116,11 @@
As above, whitespace can be inserted implicitely in between the generated
numbers, if needed.
</p>
-<a name="spirit.karma.tutorials.warming_up.trivial_example__4_generating_a_comma_delimited_list_of_numbers"></a><h6>
-<a name="id731630"></a>
- <a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__4_generating_a_comma_delimited_list_of_numbers">Trivial
+<a name="spirit.karma.tutorials.warming_up.trivial_example__4_generating_a_comma_delimited_list_of_numbers"></a><h5>
+<a name="id539582"></a>
+ <a href="warming_up.html#spirit.karma.tutorials.warming_up.trivial_example__4_generating_a_comma_delimited_list_of_numbers">Trivial
Example #4 Generating a comma-delimited list of numbers</a>
- </h6>
+ </h5>
<p>
We follow the lead of <span class="emphasis"><em>Spirit.Qi</em></span>'s warming up section
and will create a generator that produces a comma-delimited list of numbers.
@@ -125,8 +128,8 @@
<pre class="programlisting"><span class="identifier">double_</span> <span class="special"><<</span> <span class="special">*(</span><span class="identifier">lit</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 <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="char">','</span><span class="special">)</span></code>. It is
- a literal character generator that simply generates the comma <code class="computeroutput"><span class="char">','</span></code>. In this case, the Kleene Star is modifying
+ Notice <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="char">','</span><span class="special">)</span></tt>. It is
+ a literal character generator that simply generates the comma <tt class="computeroutput"><span class="char">','</span></tt>. In this case, the Kleene Star is modifying
a more complex generator, namely, the one generated by the expression:
</p>
<pre class="programlisting"><span class="special">(</span><span class="identifier">lit</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>
@@ -136,27 +139,27 @@
Star encloses the complete expression above, repeating the whole pattern
in the generated output zero or more times.
</p>
-<a name="spirit.karma.tutorials.warming_up.let_s_generate_"></a><h6>
-<a name="id731764"></a>
- <a class="link" href="warming_up.html#spirit.karma.tutorials.warming_up.let_s_generate_">Let's
+<a name="spirit.karma.tutorials.warming_up.let_s_generate_"></a><h5>
+<a name="id539781"></a>
+ <a href="warming_up.html#spirit.karma.tutorials.warming_up.let_s_generate_">Let's
Generate!</a>
- </h6>
+ </h5>
<p>
We're done with defining the generator. All what's left is to invoke the
- generator to do its work. For now, we will use the <code class="computeroutput"><span class="identifier">generate_delimited</span></code>
+ generator to do its work. For now, we will use the <tt class="computeroutput"><span class="identifier">generate_delimited</span></tt>
function. One overload of this function accepts four arguments:
</p>
-<div class="orderedlist"><ol class="orderedlist" type="1">
-<li class="listitem">
+<div class="orderedlist"><ol type="1">
+<li>
An output iterator accepting the generated characters
</li>
-<li class="listitem">
+<li>
The generator expression
</li>
-<li class="listitem">
+<li>
Another generator called the delimiting generator
</li>
-<li class="listitem">
+<li>
The data to format and output
</li>
</ol></div>
@@ -170,22 +173,22 @@
For generators this mode doesn't make any sense. What is output generation
without generating any output? So we always will have to supply the data
the output should be generated from. In our example we supply a vector
- of <code class="computeroutput"><span class="keyword">double</span></code> numbers as the last
- parameter to the function <code class="computeroutput"><span class="identifier">generate_delimited</span></code>
+ of <tt class="computeroutput"><span class="keyword">double</span></tt> numbers as the last
+ parameter to the function <tt class="computeroutput"><span class="identifier">generate_delimited</span></tt>
(see code below).
</p>
<p>
In this example, we wish to delimit the generated numbers by spaces. Another
- generator named <code class="computeroutput"><span class="identifier">space</span></code> is
+ generator named <tt class="computeroutput"><span class="identifier">space</span></tt> is
included in Spirit's repertoire of predefined generators. It is a very
trivial generator that simply produces spaces. It is the equivalent to
- writing <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="char">' '</span><span class="special">)</span></code>, or simply
- <code class="computeroutput"><span class="char">' '</span></code>. It has been implemented
- for similarity with the corresponding predefined <code class="computeroutput"><span class="identifier">space</span></code>
- parser. We will use <code class="computeroutput"><span class="identifier">space</span></code>
+ writing <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="char">' '</span><span class="special">)</span></tt>, or simply
+ <tt class="computeroutput"><span class="char">' '</span></tt>. It has been implemented
+ for similarity with the corresponding predefined <tt class="computeroutput"><span class="identifier">space</span></tt>
+ parser. We will use <tt class="computeroutput"><span class="identifier">space</span></tt>
as our delimiter. The delimiter is the one responsible for inserting characters
- in between generator elements such as the <code class="computeroutput"><span class="identifier">double_</span></code>
- and <code class="computeroutput"><span class="identifier">lit</span></code>.
+ in between generator elements such as the <tt class="computeroutput"><span class="identifier">double_</span></tt>
+ and <tt class="computeroutput"><span class="identifier">lit</span></tt>.
</p>
<p>
Ok, so now let's generate (for the complete source code of this example
@@ -216,16 +219,16 @@
</p>
<p>
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- You might wonder how a <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span></code>, which is actually a single data
+<tr><td colspan="2" align="left" valign="top"><p>
+ You might wonder how a <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span></tt>, which is actually a single data
structure, can be used as an argument (we call it attribute) to a sequence
of generators. This seems to be counter intuitive and doesn't match with
- your experience of using <code class="computeroutput"><span class="identifier">printf</span></code>,
+ your experience of using <tt class="computeroutput"><span class="identifier">printf</span></tt>,
where each formatting placeholder has to be matched with a corresponding
argument. Well, we will explain this behavior in more detail later in
this tutorial. For now just consider this to be a special case, implemented
@@ -235,55 +238,55 @@
</p></td></tr>
</table></div>
<p>
- The generate function returns <code class="computeroutput"><span class="keyword">true</span></code>
- or <code class="computeroutput"><span class="keyword">false</span></code> depending on the
+ The generate function returns <tt class="computeroutput"><span class="keyword">true</span></tt>
+ or <tt class="computeroutput"><span class="keyword">false</span></tt> depending on the
result of the output generation. As outlined in different places of this
documentation, a generator may fail for different reasons. One of the possible
reasons is an error in the underlying output iterator (memory exhausted
or disk full, etc.). Another reason might be that the data doesn't match
the requirements of a particular generator.
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top">
+<tr><td colspan="2" align="left" valign="top">
<p>
- <code class="computeroutput"><span class="keyword">char</span></code> and <code class="computeroutput"><span class="keyword">wchar_t</span></code>
+ <tt class="computeroutput"><span class="keyword">char</span></tt> and <tt class="computeroutput"><span class="keyword">wchar_t</span></tt>
operands
</p>
<p>
- The careful reader may notice that the parser expression has <code class="computeroutput"><span class="char">','</span></code> instead of <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="char">','</span><span class="special">)</span></code>
+ The careful reader may notice that the parser expression has <tt class="computeroutput"><span class="char">','</span></tt> instead of <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="char">','</span><span class="special">)</span></tt>
as the previous examples did. This is ok due to C++ syntax rules of conversion.
- Spirit provides <code class="computeroutput"><span class="special"><<</span></code>
- operators that are overloaded to accept a <code class="computeroutput"><span class="keyword">char</span></code>
- or <code class="computeroutput"><span class="keyword">wchar_t</span></code> argument on its
+ Spirit provides <tt class="computeroutput"><span class="special"><<</span></tt>
+ operators that are overloaded to accept a <tt class="computeroutput"><span class="keyword">char</span></tt>
+ or <tt class="computeroutput"><span class="keyword">wchar_t</span></tt> argument on its
left or right (but not both). An operator may be overloaded if at least
- one of its parameters is a user-defined type. In this case, the <code class="computeroutput"><span class="identifier">double_</span></code> is the 2nd argument to <code class="computeroutput"><span class="keyword">operator</span><span class="special"><<</span></code>,
- and so the proper overload of <code class="computeroutput"><span class="special"><<</span></code>
- is used, converting <code class="computeroutput"><span class="char">','</span></code> into
+ one of its parameters is a user-defined type. In this case, the <tt class="computeroutput"><span class="identifier">double_</span></tt> is the 2nd argument to <tt class="computeroutput"><span class="keyword">operator</span><span class="special"><<</span></tt>,
+ and so the proper overload of <tt class="computeroutput"><span class="special"><<</span></tt>
+ is used, converting <tt class="computeroutput"><span class="char">','</span></tt> into
a character literal parser.
</p>
<p>
- The problem with omiting the <code class="computeroutput"><span class="identifier">lit</span></code>
- should be obvious: <code class="computeroutput"><span class="char">'a'</span> <span class="special"><<</span>
- <span class="char">'b'</span></code> is not a spirit generator, it
+ The problem with omiting the <tt class="computeroutput"><span class="identifier">lit</span></tt>
+ should be obvious: <tt class="computeroutput"><span class="char">'a'</span> <span class="special"><<</span>
+ <span class="char">'b'</span></tt> is not a spirit generator, it
is a numeric expression, left-shifting the ASCII (or another encoding)
- value of <code class="computeroutput"><span class="char">'a'</span></code> by the ASCII value
- of <code class="computeroutput"><span class="char">'b'</span></code>. However, both <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="char">'a'</span><span class="special">)</span> <span class="special"><<</span>
- <span class="char">'b'</span></code> and <code class="computeroutput"><span class="char">'a'</span>
- <span class="special"><<</span> <span class="identifier">lit</span><span class="special">(</span><span class="char">'b'</span><span class="special">)</span></code>
- are Spirit sequence generators for the letter <code class="computeroutput"><span class="char">'a'</span></code>
- followed by <code class="computeroutput"><span class="char">'b'</span></code>. You'll get
+ value of <tt class="computeroutput"><span class="char">'a'</span></tt> by the ASCII value
+ of <tt class="computeroutput"><span class="char">'b'</span></tt>. However, both <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="char">'a'</span><span class="special">)</span> <span class="special"><<</span>
+ <span class="char">'b'</span></tt> and <tt class="computeroutput"><span class="char">'a'</span>
+ <span class="special"><<</span> <span class="identifier">lit</span><span class="special">(</span><span class="char">'b'</span><span class="special">)</span></tt>
+ are Spirit sequence generators for the letter <tt class="computeroutput"><span class="char">'a'</span></tt>
+ followed by <tt class="computeroutput"><span class="char">'b'</span></tt>. You'll get
used to it, sooner or later.
</p>
</td></tr>
</table></div>
<p>
- Note that we inlined the generator directly in the call to <code class="computeroutput"><span class="identifier">generate_delimited</span></code>. Upon calling this
+ Note that we inlined the generator directly in the call to <tt class="computeroutput"><span class="identifier">generate_delimited</span></tt>. Upon calling this
function, the expression evaluates into a temporary, unnamed generator
- which is passed into the <code class="computeroutput"><span class="identifier">generate_delimited</span></code>
+ which is passed into the <tt class="computeroutput"><span class="identifier">generate_delimited</span></tt>
function, used, and then destroyed.
</p>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/lex.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Lex - Writing Lexical Analyzers</title>
+<title> Lex - Writing Lexical Analyzers</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../index.html" title="Spirit 2.1">
<link rel="up" href="../index.html" title="Spirit 2.1">
-<link rel="prev" href="karma/performance_measurements/numeric_performance/format_performance.html" title="Comparing the performance of a sequence of several generators">
-<link rel="next" href="lex/lexer_introduction.html" title="Introduction to Spirit.Lex">
+<link rel="previous" href="karma/performance_measurements/numeric_performance/format_performance.html" title="
+ Comparing the performance of a sequence of several generators">
+<link rel="next" href="lex/lexer_introduction.html" title=" Introduction to Spirit.Lex">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,10 +23,13 @@
<div class="spirit-nav">
<a accesskey="p" href="karma/performance_measurements/numeric_performance/format_performance.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="lex/lexer_introduction.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Lex - Writing Lexical Analyzers">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.lex"></a><a class="link" href="lex.html" title="Lex - Writing Lexical Analyzers"> Lex - Writing Lexical Analyzers</a>
-</h2></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h2 class="title" style="clear: both">
+<a name="spirit.lex"></a> Lex - Writing Lexical Analyzers
+</h2></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section"> Introduction to Spirit.Lex</span></dt>
<dt><span class="section"><a href="lex/tutorials.html"> <span class="emphasis"><em>Spirit.Lex</em></span>
Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Abstracts</title>
+<title> Abstracts</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../index.html" title="Spirit 2.1">
-<link rel="up" href="../lex.html" title="Lex - Writing Lexical Analyzers">
-<link rel="prev" href="tutorials/lexer_quickstart3.html" title="Quickstart 3 - Counting Words Using a Parser">
+<link rel="up" href="../lex.html" title=" Lex - Writing Lexical Analyzers">
+<link rel="previous" href="tutorials/lexer_quickstart3.html" title=" Quickstart
+ 3 - Counting Words Using a Parser">
<link rel="next" href="abstracts/lexer_primitives.html" title="Lexer Primitives">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,10 +23,13 @@
<div class="spirit-nav">
<a accesskey="p" href="tutorials/lexer_quickstart3.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../lex.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="abstracts/lexer_primitives.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Abstracts">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.lex.abstracts"></a><a class="link" href="abstracts.html" title="Abstracts"> Abstracts</a>
-</h3></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h3 class="title">
+<a name="spirit.lex.abstracts"></a> Abstracts
+</h3></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section">Lexer Primitives</span></dt>
<dt><span class="section"><a href="abstracts/lexer_tokenizing.html"> Tokenizing
Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_attributes.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_attributes.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_attributes.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Lexer Attributes</title>
+<title> Lexer Attributes</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../abstracts.html" title="Abstracts">
-<link rel="prev" href="lexer_parsing.html" title="Parsing using a Lexer">
-<link rel="next" href="lexer_states.html" title="Lexer States">
+<link rel="up" href="../abstracts.html" title=" Abstracts">
+<link rel="previous" href="lexer_parsing.html" title=" Parsing using
+ a Lexer">
+<link rel="next" href="lexer_states.html" title=" Lexer States">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,9 +23,12 @@
<div class="spirit-nav">
<a accesskey="p" href="lexer_parsing.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="lexer_states.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Lexer Attributes"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.abstracts.lexer_attributes"></a><a class="link" href="lexer_attributes.html" title="Lexer Attributes"> Lexer Attributes</a>
-</h4></div></div></div></div>
+<div class="section" lang="en"><div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.lex.abstracts.lexer_attributes"></a> Lexer Attributes
+</h4></div></div>
+<div></div>
+</div></div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_parsing.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_parsing.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_parsing.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Parsing using a Lexer</title>
+<title> Parsing using
+ a Lexer</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../abstracts.html" title="Abstracts">
-<link rel="prev" href="lexer_static_model.html" title="The Static Lexer Model">
-<link rel="next" href="lexer_attributes.html" title="Lexer Attributes">
+<link rel="up" href="../abstracts.html" title=" Abstracts">
+<link rel="previous" href="lexer_static_model.html" title=" The Static
+ Lexer Model">
+<link rel="next" href="lexer_attributes.html" title=" Lexer Attributes">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,10 +24,14 @@
<div class="spirit-nav">
<a accesskey="p" href="lexer_static_model.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="lexer_attributes.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Parsing using a Lexer"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.abstracts.lexer_parsing"></a><a class="link" href="lexer_parsing.html" title="Parsing using a Lexer"> Parsing using
+<div class="section" lang="en"><div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.lex.abstracts.lexer_parsing"></a><a href="lexer_parsing.html" title=" Parsing using
+ a Lexer"> Parsing using
a Lexer</a>
-</h4></div></div></div></div>
+</h4></div></div>
+<div></div>
+</div></div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,12 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Lexer Primitives</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../abstracts.html" title="Abstracts">
-<link rel="prev" href="../abstracts.html" title="Abstracts">
-<link rel="next" href="lexer_primitives/lexer_primitives.html" title="Lexer Primitives">
+<link rel="up" href="../abstracts.html" title=" Abstracts">
+<link rel="previous" href="../abstracts.html" title=" Abstracts">
+<link rel="next" href="lexer_primitives/lexer_primitives.html" title="
+ Lexer Primitives">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,10 +23,13 @@
<div class="spirit-nav">
<a accesskey="p" href="../abstracts.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="lexer_primitives/lexer_primitives.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Lexer Primitives">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.abstracts.lexer_primitives"></a><a class="link" href="lexer_primitives.html" title="Lexer Primitives">Lexer Primitives</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.lex.abstracts.lexer_primitives"></a>Lexer Primitives
+</h4></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section"><a href="lexer_primitives/lexer_primitives.html">
Lexer Primitives</a></span></dt>
Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_primitives.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_primitives.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_primitives.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Lexer Primitives</title>
+<title>
+ Lexer Primitives</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../lexer_primitives.html" title="Lexer Primitives">
-<link rel="prev" href="../lexer_primitives.html" title="Lexer Primitives">
-<link rel="next" href="lexer_token_values.html" title="About Tokens and Token Values">
+<link rel="previous" href="../lexer_primitives.html" title="Lexer Primitives">
+<link rel="next" href="lexer_token_values.html" title="
+ About Tokens and Token Values">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,10 +24,14 @@
<div class="spirit-nav">
<a accesskey="p" href="../lexer_primitives.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../lexer_primitives.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="lexer_token_values.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Lexer Primitives"><div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.lex.abstracts.lexer_primitives.lexer_primitives"></a><a class="link" href="lexer_primitives.html" title="Lexer Primitives">
+<div class="section" lang="en"><div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.lex.abstracts.lexer_primitives.lexer_primitives"></a><a href="lexer_primitives.html" title="
+ Lexer Primitives">
Lexer Primitives</a>
-</h5></div></div></div></div>
+</h5></div></div>
+<div></div>
+</div></div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_definition.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_definition.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_definition.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Ways to define Tokens</title>
+<title>
+ Ways to define Tokens</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../lexer_primitives.html" title="Lexer Primitives">
-<link rel="prev" href="lexer_token_values.html" title="About Tokens and Token Values">
-<link rel="next" href="../lexer_tokenizing.html" title="Tokenizing Input Data">
+<link rel="previous" href="lexer_token_values.html" title="
+ About Tokens and Token Values">
+<link rel="next" href="../lexer_tokenizing.html" title=" Tokenizing
+ Input Data">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,10 +25,14 @@
<div class="spirit-nav">
<a accesskey="p" href="lexer_token_values.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../lexer_primitives.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../lexer_tokenizing.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Ways to define Tokens"><div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.lex.abstracts.lexer_primitives.lexer_token_definition"></a><a class="link" href="lexer_token_definition.html" title="Ways to define Tokens">
+<div class="section" lang="en"><div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.lex.abstracts.lexer_primitives.lexer_token_definition"></a><a href="lexer_token_definition.html" title="
+ Ways to define Tokens">
Ways to define Tokens</a>
-</h5></div></div></div></div>
+</h5></div></div>
+<div></div>
+</div></div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_values.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_values.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_primitives/lexer_token_values.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>About Tokens and Token Values</title>
+<title>
+ About Tokens and Token Values</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../lexer_primitives.html" title="Lexer Primitives">
-<link rel="prev" href="lexer_primitives.html" title="Lexer Primitives">
-<link rel="next" href="lexer_token_definition.html" title="Ways to define Tokens">
+<link rel="previous" href="lexer_primitives.html" title="
+ Lexer Primitives">
+<link rel="next" href="lexer_token_definition.html" title="
+ Ways to define Tokens">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +25,15 @@
<div class="spirit-nav">
<a accesskey="p" href="lexer_primitives.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../lexer_primitives.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="lexer_token_definition.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="About Tokens and Token Values">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.lex.abstracts.lexer_primitives.lexer_token_values"></a><a class="link" href="lexer_token_values.html" title="About Tokens and Token Values">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.lex.abstracts.lexer_primitives.lexer_token_values"></a><a href="lexer_token_values.html" title="
+ About Tokens and Token Values">
About Tokens and Token Values</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<p>
As already discussed, lexical scanning is the process of analyzing the
stream of input characters and separating it into strings called tokens,
@@ -42,44 +49,44 @@
class to the user. The only limitation of this token class is that it
must carry at least the token id of the token it represents. For more
information about the interface a user defined token type has to expose
- please look at the <a class="link" href="../../reference/token.html" title="Token Class">Token Class</a>
+ please look at the Token Class
reference. The library provides a default token type based on the Lexertl library which
- should be sufficient in most cases: the <a class="link" href="../../reference/token.html" title="Token Class"><code class="computeroutput"><span class="identifier">lexertl_token</span><span class="special"><></span></code></a>
+ should be sufficient in most cases: the lexertl_token<>
type. This section focusses on the description of general features a
token class may implement and how this integrates with the other parts
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="id887746"></a>
- <a class="link" href="lexer_token_values.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_anatomy_of_a_token">The
+<a name="id700423"></a>
+ <a href="lexer_token_values.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_anatomy_of_a_token">The
Anatomy of a Token</a>
</h6>
<p>
It is very important to understand the difference between a token definition
- (represented by the <a class="link" href="../../reference/tokendef.html" title="TokenDef Class"><code class="computeroutput"><span class="identifier">token_def</span><span class="special"><></span></code></a>
- template) and a token itself (for instance represented by the <a class="link" href="../../reference/token.html" title="Token Class"><code class="computeroutput"><span class="identifier">lexertl_token</span><span class="special"><></span></code></a>
+ (represented by the token_def<>
+ template) and a token itself (for instance represented by the lexertl_token<>
template).
</p>
<p>
The token definition is used to describe the main features of a particular
token type, especially:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
to simplify the definition of a token type using a regular expression
pattern applied while matching this token type,
</li>
-<li class="listitem">
+<li>
to associate a token type with a particular lexer state,
</li>
-<li class="listitem">
+<li>
to optionally assign a token id to a token type,
</li>
-<li class="listitem">
+<li>
to optionally associate some code to execute whenever an instance of
this token type has been matched,
</li>
-<li class="listitem">
+<li>
and to optionally specify the attribute type of the token value.
</li>
</ul></div>
@@ -93,22 +100,23 @@
data structure contains at least the token id of the matched token type,
allowing to identify the matched character sequence. Optionally, the
token instance may contain a token value and/or the lexer state this
- token instance was matched in. The following <a class="link" href="lexer_token_values.html#spirit.lex.tokenstructure" title="Figure 8. The structure of a token">figure</a>
+ token instance was matched in. The following figure
shows the schematic structure of a token.
</p>
<p>
</p>
<div class="figure">
<a name="spirit.lex.tokenstructure"></a><p class="title"><b>Figure 8. The structure of a token</b></p>
-<div class="figure-contents"><span class="inlinemediaobject"><img src="../../../.././images/tokenstructure.png" alt="The structure of a token"></span></div>
+<span class="inlinemediaobject"><img src="./images/tokenstructure.png" alt="The
+ structure of a token"></span>
</div>
-<p><br class="figure-break">
+<p>
</p>
<p>
The token value and the lexer state the token has been recognized in
may be omitted for optimization reasons, thus avoiding the need for the
token to carry more data than actually required. This configuration can
- be achieved by supplying appropriate template parameters for the <a class="link" href="../../reference/token.html" title="Token Class"><code class="computeroutput"><span class="identifier">lexertl_token</span><span class="special"><></span></code></a> template while defining
+ be achieved by supplying appropriate template parameters for the lexertl_token<> template while defining
the token type.
</p>
<p>
@@ -117,18 +125,18 @@
<span class="emphasis"><em>value</em></span> types exposed by the various token types (token
definitions), the general type of the token value is a Boost.Variant.
At a minimum (for the default configuration) this token value variant
- will be configured to always hold a boost::iterator_range
containing the
+ will be configured to always hold a boost::iterator_range containing the
pair of iterators pointing to the matched input sequence for this token
instance.
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
If the lexical analyzer is used in conjunction with a <span class="emphasis"><em>Spirit.Qi</em></span>
- parser, the stored boost::iterator_range
token value
+ parser, the stored boost::iterator_range token value
will be converted to the requested token type (parser attribute) exactly
once. This happens at the time of the first access to the token value
requiring the corresponding type conversion. The converted token value
@@ -140,7 +148,7 @@
</p></td></tr>
</table></div>
<p>
- Here is the template prototype of the <a class="link" href="../../reference/token.html" title="Token Class"><code class="computeroutput"><span class="identifier">lexertl_token</span><span class="special"><></span></code></a>
+ Here is the template prototype of the lexertl_token<>
template:
</p>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span>
@@ -150,28 +158,28 @@
<span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">lexertl_token</span><span class="special">;</span>
</pre>
-<div class="variablelist" title="where:">
+<div class="variablelist">
<p class="title"><b>where:</b></p>
<dl>
<dt><span class="term">Iterator</span></dt>
<dd><p>
This is the type of the iterator used to access the underlying input
- stream. It defaults to a plain <code class="computeroutput"><span class="keyword">char</span>
- <span class="keyword">const</span><span class="special">*</span></code>.
+ stream. It defaults to a plain <tt class="computeroutput"><span class="keyword">char</span>
+ <span class="keyword">const</span><span class="special">*</span></tt>.
</p></dd>
<dt><span class="term">AttributeTypes</span></dt>
<dd><p>
This is either a mpl sequence containing all attribute types used
- for the token definitions or the type <code class="computeroutput"><span class="identifier">omit</span></code>.
+ for the token definitions or the type <tt class="computeroutput"><span class="identifier">omit</span></tt>.
If the mpl sequence is empty (which is the default), all token instances
- will store a boost::iterator_range
<code class="computeroutput"><span class="special"><</span><span class="identifier">Iterator</span><span class="special">></span></code> pointing to the start and the
- end of the matched section in the input stream. If the type is <code class="computeroutput"><span class="identifier">omit</span></code>, the generated tokens will
+ will store a boost::iterator_range<tt class="computeroutput"><span class="special"><</span><span class="identifier">Iterator</span><span class="special">></span></tt> pointing to the start and the
+ end of the matched section in the input stream. If the type is <tt class="computeroutput"><span class="identifier">omit</span></tt>, the generated tokens will
contain no token value (attribute) at all.
</p></dd>
<dt><span class="term">HasState</span></dt>
<dd><p>
- This is either <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
- or <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>, allowing control as to
+ This is either <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
+ or <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>, allowing control as to
whether the generated token instances will contain the lexer state
they were generated in. The default is mpl::true_, so all token instances
will contain the lexer state.
@@ -179,19 +187,19 @@
</dl>
</div>
<p>
- Normally, during construction, a token instance always holds the boost::iterator_range
as its token
- value, unless it has been defined using the <code class="computeroutput"><span class="identifier">omit</span></code>
+ Normally, during construction, a token instance always holds the boost::iterator_range as its token
+ value, unless it has been defined using the <tt class="computeroutput"><span class="identifier">omit</span></tt>
token value type. This iterator range then is converted in place to the
requested token value type (attribute) 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="id888240"></a>
- <a class="link" href="lexer_token_values.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_physiognomy_of_a_token_definition">The
+<a name="id701180"></a>
+ <a href="lexer_token_values.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.the_physiognomy_of_a_token_definition">The
Physiognomy of a Token Definition</a>
</h6>
<p>
- The token definitions (represented by the <a class="link" href="../../reference/tokendef.html" title="TokenDef Class"><code class="computeroutput"><span class="identifier">token_def</span><span class="special"><></span></code></a>
+ The token definitions (represented by the token_def<>
template) are normally used as part of the definition of the lexical
analyzer. At the same time a token definition instance may be used as
a parser component in <span class="emphasis"><em>Spirit.Qi</em></span>.
@@ -205,7 +213,7 @@
<span class="special">></span>
<span class="keyword">class</span> <span class="identifier">token_def</span><span class="special">;</span>
</pre>
-<div class="variablelist" title="where:">
+<div class="variablelist">
<p class="title"><b>where:</b></p>
<dl>
<dt><span class="term">Attribute</span></dt>
@@ -214,17 +222,17 @@
instances representing this token type. This attribute type is exposed
to the <span class="emphasis"><em>Spirit.Qi</em></span> library, whenever this token
definition is used as a parser component. The default attribute type
- is <code class="computeroutput"><span class="identifier">unused_type</span></code>, which
- means the token instance holds a boost::iterator_range
pointing
+ is <tt class="computeroutput"><span class="identifier">unused_type</span></tt>, which
+ means the token instance holds a boost::iterator_range pointing
to the start and the end of the matched section in the input stream.
- If the attribute is <code class="computeroutput"><span class="identifier">omit</span></code>
+ If the attribute is <tt class="computeroutput"><span class="identifier">omit</span></tt>
the token instance will expose no token type at all. Any other type
will be used directly as the token value type.
</p></dd>
<dt><span class="term">Char</span></dt>
<dd><p>
This is the value type of the iterator for the underlying input sequence.
- It defaults to <code class="computeroutput"><span class="keyword">char</span></code>.
+ It defaults to <tt class="computeroutput"><span class="keyword">char</span></tt>.
</p></dd>
</dl>
</div>
@@ -232,36 +240,36 @@
The semantics of the template parameters for the token type and the token
definition type are very similar and interdependent. As a rule of thumb
you can think of the token definition type as the means of specifying
- everything related to a single specific token type (such as <code class="computeroutput"><span class="identifier">identifier</span></code> or <code class="computeroutput"><span class="identifier">integer</span></code>).
+ everything related to a single specific token type (such as <tt class="computeroutput"><span class="identifier">identifier</span></tt> or <tt class="computeroutput"><span class="identifier">integer</span></tt>).
On the other hand the token type is used to define the general properties
of all token instances generated by the <span class="emphasis"><em>Spirit.Lex</em></span>
library.
</p>
-<div class="important" title="Important"><table border="0" summary="Important">
+<div class="important"><table border="0" summary="Important">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../images/important.png"></td>
<th align="left">Important</th>
</tr>
-<tr><td align="left" valign="top">
+<tr><td colspan="2" align="left" valign="top">
<p>
If you don't list any token value types in the token type definition
- declaration (resulting in the usage of the default boost::iterator_range
token type)
+ declaration (resulting in the usage of the default boost::iterator_range token type)
everything will compile and work just fine, just a bit less efficient.
This is because the token value will be converted from the matched
input sequence every time it is requested.
</p>
<p>
But as soon as you specify at least one token value type while defining
- the token type you'll have to list all value types used for <a class="link" href="../../reference/tokendef.html" title="TokenDef Class"><code class="computeroutput"><span class="identifier">token_def</span><span class="special"><></span></code></a>
+ the token type you'll have to list all value types used for token_def<>
declarations in the token definition class, otherwise compilation errors
will occur.
</p>
</td></tr>
</table></div>
<a name="spirit.lex.abstracts.lexer_primitives.lexer_token_values.examples_of_using__link_linkend__spirit_lex_reference_token___code__phrase_role__identifier__lexertl_token__phrase__phrase_role__special___lt__gt___phrase___code___link_"></a><h6>
-<a name="id888490"></a>
- <a class="link" href="lexer_token_values.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.examples_of_using__link_linkend__spirit_lex_reference_token___code__phrase_role__identifier__lexertl_token__phrase__phrase_role__special___lt__gt___phrase___code___link_">Examples
- of using <a class="link" href="../../reference/token.html" title="Token Class"><code class="computeroutput"><span class="identifier">lexertl_token</span><span class="special"><></span></code></a></a>
+<a name="id701579"></a>
+ <a href="lexer_token_values.html#spirit.lex.abstracts.lexer_primitives.lexer_token_values.examples_of_using__link_linkend__spirit_lex_reference_token___code__phrase_role__identifier__lexertl_token__phrase__phrase_role__special___lt__gt___phrase___code___link_">Examples
+ of using lexertl_token<></a>
</h6>
<p>
Let's start with some examples. We refer to one of the <span class="emphasis"><em>Spirit.Lex</em></span>
@@ -270,13 +278,13 @@
<p>
The first code snippet shows an excerpt of the token definition class,
the definition of a couple of token types. Some of the token types do
- not expose a special token value (<code class="computeroutput"><span class="identifier">if_</span></code>,
- <code class="computeroutput"><span class="identifier">else_</span></code>, and <code class="computeroutput"><span class="identifier">while_</span></code>). Their token value will always
+ not expose a special token value (<tt class="computeroutput"><span class="identifier">if_</span></tt>,
+ <tt class="computeroutput"><span class="identifier">else_</span></tt>, and <tt class="computeroutput"><span class="identifier">while_</span></tt>). Their token value will always
hold the iterator range of the matched input sequence. The token definitions
- for the <code class="computeroutput"><span class="identifier">identifier</span></code> and
- the integer <code class="computeroutput"><span class="identifier">constant</span></code>
- are specialized to expose an explicit token type each: <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code> and <code class="computeroutput"><span class="keyword">unsigned</span>
- <span class="keyword">int</span></code>.
+ for the <tt class="computeroutput"><span class="identifier">identifier</span></tt> and
+ the integer <tt class="computeroutput"><span class="identifier">constant</span></tt>
+ are specialized to expose an explicit token type each: <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></tt> and <tt class="computeroutput"><span class="keyword">unsigned</span>
+ <span class="keyword">int</span></tt>.
</p>
<p>
</p>
@@ -309,7 +317,7 @@
<p>
As the parsers generated by <span class="emphasis"><em>Spirit.Qi</em></span> are fully
attributed, any <span class="emphasis"><em>Spirit.Qi</em></span> parser component needs
- to expose a certain type as its parser attribute. Naturally, the <a class="link" href="../../reference/tokendef.html" title="TokenDef Class"><code class="computeroutput"><span class="identifier">token_def</span><span class="special"><></span></code></a> exposes the token value
+ to expose a certain type as its parser attribute. Naturally, the token_def<> exposes the token value
type as its parser attribute, enabling a smooth integration with <span class="emphasis"><em>Spirit.Qi</em></span>.
</p>
<p>
@@ -345,7 +353,7 @@
<p>
</p>
<p>
- To avoid the token to have a token value at all, the special tag <code class="computeroutput"><span class="identifier">omit</span></code> can be used: <code class="computeroutput"><span class="identifier">token_def</span><span class="special"><</span><span class="identifier">omit</span><span class="special">></span></code> and <code class="computeroutput"><span class="identifier">lexertl_token</span><span class="special"><</span><span class="identifier">base_iterator_type</span><span class="special">,</span> <span class="identifier">omit</span><span class="special">></span></code>.
+ To avoid the token to have a token value at all, the special tag <tt class="computeroutput"><span class="identifier">omit</span></tt> can be used: <tt class="computeroutput"><span class="identifier">token_def</span><span class="special"><</span><span class="identifier">omit</span><span class="special">></span></tt> and <tt class="computeroutput"><span class="identifier">lexertl_token</span><span class="special"><</span><span class="identifier">base_iterator_type</span><span class="special">,</span> <span class="identifier">omit</span><span class="special">></span></tt>.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_semantic_actions.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_semantic_actions.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_semantic_actions.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Lexer Semantic Actions</title>
+<title> Lexer
+ Semantic Actions</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../abstracts.html" title="Abstracts">
-<link rel="prev" href="lexer_tokenizing.html" title="Tokenizing Input Data">
-<link rel="next" href="lexer_static_model.html" title="The Static Lexer Model">
+<link rel="up" href="../abstracts.html" title=" Abstracts">
+<link rel="previous" href="lexer_tokenizing.html" title=" Tokenizing
+ Input Data">
+<link rel="next" href="lexer_static_model.html" title=" The Static
+ Lexer Model">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +25,15 @@
<div class="spirit-nav">
<a accesskey="p" href="lexer_tokenizing.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="lexer_static_model.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Lexer Semantic Actions">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.abstracts.lexer_semantic_actions"></a><a class="link" href="lexer_semantic_actions.html" title="Lexer Semantic Actions"> Lexer
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.lex.abstracts.lexer_semantic_actions"></a><a href="lexer_semantic_actions.html" title=" Lexer
+ Semantic Actions"> Lexer
Semantic Actions</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<p>
The main task of a lexer normally is to recognize tokens in the input.
Traditionally this has been complemented with the possibility to execute
@@ -36,57 +43,57 @@
and generators (<span class="emphasis"><em>Spirit.Karma</em></span>). Lexer semantic actions
may be attached to any token definition. These are C++ functions or function
objects that are called whenever a token definition successfully recognizes
- a portion of the input. Say you have a token definition <code class="computeroutput"><span class="identifier">D</span></code>,
- and a C++ function <code class="computeroutput"><span class="identifier">f</span></code>, you
- can make the lexer call <code class="computeroutput"><span class="identifier">f</span></code>
- whenever it matches an input by attaching <code class="computeroutput"><span class="identifier">f</span></code>:
+ a portion of the input. Say you have a token definition <tt class="computeroutput"><span class="identifier">D</span></tt>,
+ and a C++ function <tt class="computeroutput"><span class="identifier">f</span></tt>, you
+ can make the lexer 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">D</span><span class="special">[</span><span class="identifier">f</span><span class="special">]</span>
</pre>
<p>
- The expression above links <code class="computeroutput"><span class="identifier">f</span></code>
- to the token definition, <code class="computeroutput"><span class="identifier">D</span></code>.
- The required prototype of <code class="computeroutput"><span class="identifier">f</span></code>
+ The expression above links <tt class="computeroutput"><span class="identifier">f</span></tt>
+ to the token definition, <tt class="computeroutput"><span class="identifier">D</span></tt>.
+ The required prototype of <tt class="computeroutput"><span class="identifier">f</span></tt>
is:
</p>
<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span> <span class="special">(</span><span class="identifier">Iterator</span><span class="special">&</span> <span class="identifier">start</span><span class="special">,</span> <span class="identifier">Iterator</span><span class="special">&</span> <span class="identifier">end</span><span class="special">,</span> <span class="identifier">pass_flag</span><span class="special">&</span> <span class="identifier">matched</span><span class="special">,</span> <span class="identifier">Idtype</span><span class="special">&</span> <span class="identifier">id</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" title="where:">
+<div class="variablelist">
<p class="title"><b>where:</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Iterator</span><span class="special">&</span> <span class="identifier">start</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Iterator</span><span class="special">&</span> <span class="identifier">start</span></tt></span></dt>
<dd><p>
This is the iterator pointing to the begin of the matched range in
the underlying input sequence. The type of the iterator is the same
- as specified while defining the type of the <code class="computeroutput"><span class="identifier">lexertl_lexer</span><span class="special"><...></span></code> (its first template parameter).
+ as specified while defining the type of the <tt class="computeroutput"><span class="identifier">lexertl_lexer</span><span class="special"><...></span></tt> (its first template parameter).
The semantic action is allowed to change the value of this iterator
influencing, the matched input sequence.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Iterator</span><span class="special">&</span> <span class="identifier">end</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Iterator</span><span class="special">&</span> <span class="identifier">end</span></tt></span></dt>
<dd><p>
This is the iterator pointing to the end of the matched range in the
underlying input sequence. The type of the iterator is the same as
- specified while defining the type of the <code class="computeroutput"><span class="identifier">lexertl_lexer</span><span class="special"><...></span></code> (its first template parameter).
+ specified while defining the type of the <tt class="computeroutput"><span class="identifier">lexertl_lexer</span><span class="special"><...></span></tt> (its first template parameter).
The semantic action is allowed to change the value of this iterator
influencing, the matched input sequence.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">pass_flag</span><span class="special">&</span> <span class="identifier">matched</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">pass_flag</span><span class="special">&</span> <span class="identifier">matched</span></tt></span></dt>
<dd><p>
- This value is pre/initialized to <code class="computeroutput"><span class="identifier">pass_normal</span></code>.
- If the semantic action sets it to <code class="computeroutput"><span class="identifier">pass_fail</span></code>
+ This value is pre/initialized to <tt class="computeroutput"><span class="identifier">pass_normal</span></tt>.
+ If the semantic action sets it to <tt class="computeroutput"><span class="identifier">pass_fail</span></tt>
this behaves as if the token has not been matched in the first place.
- If the semantic action sets this to <code class="computeroutput"><span class="identifier">pass_ignore</span></code>
+ If the semantic action sets this to <tt class="computeroutput"><span class="identifier">pass_ignore</span></tt>
the lexer ignores the current token and tries to match a next token
from the input.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Idtype</span><span class="special">&</span> <span class="identifier">id</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Idtype</span><span class="special">&</span> <span class="identifier">id</span></tt></span></dt>
<dd><p>
This is the token id of the type Idtype (most of the time this will
- be a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span></code>) for the matched token. The
+ be a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span></tt>) for the matched token. The
semantic action is allowed to change the value of this token id, influencing
the if of the created token.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Context</span><span class="special">&</span> <span class="identifier">ctx</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Context</span><span class="special">&</span> <span class="identifier">ctx</span></tt></span></dt>
<dd><p>
This is a reference to a lexer specific, unspecified type, providing
the context for the current lexer state. It can be used to access different
@@ -104,14 +111,14 @@
<span class="keyword">void</span> <span class="identifier">f</span> <span class="special">(</span><span class="identifier">Iterator</span><span class="special">&</span> <span class="identifier">start</span><span class="special">,</span> <span class="identifier">Iterator</span><span class="special">&</span> <span class="identifier">end</span><span class="special">);</span>
<span class="keyword">void</span> <span class="identifier">f</span> <span class="special">();</span>
</pre>
-<a name="spirit.lex.abstracts.lexer_semantic_actions.the_context_of_a_lexer_semantic_action"></a><h6>
-<a name="id896109"></a>
- <a class="link" href="lexer_semantic_actions.html#spirit.lex.abstracts.lexer_semantic_actions.the_context_of_a_lexer_semantic_action">The
+<a name="spirit.lex.abstracts.lexer_semantic_actions.the_context_of_a_lexer_semantic_action"></a><h5>
+<a name="id706377"></a>
+ <a href="lexer_semantic_actions.html#spirit.lex.abstracts.lexer_semantic_actions.the_context_of_a_lexer_semantic_action">The
context of a lexer semantic action</a>
- </h6>
+ </h5>
<p>
The last parameter passed to any lexer semantic action is a reference to
- an unspecified type (see the <code class="computeroutput"><span class="identifier">Context</span></code>
+ an unspecified type (see the <tt class="computeroutput"><span class="identifier">Context</span></tt>
type in the table above). This type is unspecified because it depends on
the token type returned by the lexer. It is implemented in the internals
of the iterator type exposed by the lexer. Nevertheless, any context type
@@ -120,130 +127,102 @@
of the available functionality.
</p>
<div class="table">
-<a name="id896130"></a><p class="title"><b>Table 8. Functions exposed by any context passed to a lexer
+<a name="id706413"></a><p class="title"><b>Table 8. Functions exposed by any context passed to a lexer
semantic action</b></p>
-<div class="table-contents"><table class="table" summary="Functions exposed by any context passed to a lexer
+<table class="table" summary="Functions exposed by any context passed to a lexer
semantic action">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Name
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Iterator</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">get_eoi</span><span class="special">()</span> <span class="keyword">const</span></code>
- </p>
- </td>
-<td>
- <p>
- The function <code class="computeroutput"><span class="identifier">get_eoi</span><span class="special">()</span></code> may be used by to access the end
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Iterator</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">get_eoi</span><span class="special">()</span> <span class="keyword">const</span></tt>
+ </p></td>
+<td><p>
+ The function <tt class="computeroutput"><span class="identifier">get_eoi</span><span class="special">()</span></tt> may be used by to access the end
iterator of the input stream the lexer has been initialized with
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">void</span> <span class="identifier">more</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
- The function <code class="computeroutput"><span class="identifier">more</span><span class="special">()</span></code> tells the lexer that the next time
+<td><p>
+ <tt class="computeroutput"><span class="keyword">void</span> <span class="identifier">more</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
+ The function <tt class="computeroutput"><span class="identifier">more</span><span class="special">()</span></tt> tells the lexer that the next time
it matches a rule, the corresponding token should be appended onto
the current token value rather than replacing it.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Iterator</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">less</span><span class="special">(</span><span class="identifier">Iterator</span>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Iterator</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">less</span><span class="special">(</span><span class="identifier">Iterator</span>
<span class="keyword">const</span><span class="special">&</span>
<span class="identifier">it</span><span class="special">,</span>
- <span class="keyword">int</span> <span class="identifier">n</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- The function <code class="computeroutput"><span class="identifier">less</span><span class="special">()</span></code> returns an iterator positioned
+ <span class="keyword">int</span> <span class="identifier">n</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ The function <tt class="computeroutput"><span class="identifier">less</span><span class="special">()</span></tt> returns an iterator positioned
to the nth input character beyond the current token start iterator
- (i.e. by passing the return value to the parameter <code class="computeroutput"><span class="identifier">end</span></code> it is possible to return all
+ (i.e. by passing the return value to the parameter <tt class="computeroutput"><span class="identifier">end</span></tt> it is possible to return all
but the first n characters of the current token back to the input
stream.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">lookahead</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>
- <span class="identifier">id</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- The function <code class="computeroutput"><span class="identifier">lookahead</span><span class="special">()</span></code> can be used to implement lookahead
- for lexer engines not supporting constructs like flex' <code class="computeroutput"><span class="identifier">a</span><span class="special">/</span><span class="identifier">b</span></code> (match <code class="computeroutput"><span class="identifier">a</span></code>,
- but only when followed by <code class="computeroutput"><span class="identifier">b</span></code>).
+<td><p>
+ <tt class="computeroutput"><span class="keyword">bool</span> <span class="identifier">lookahead</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>
+ <span class="identifier">id</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ The function <tt class="computeroutput"><span class="identifier">lookahead</span><span class="special">()</span></tt> can be used to implement lookahead
+ for lexer engines not supporting constructs like flex' <tt class="computeroutput"><span class="identifier">a</span><span class="special">/</span><span class="identifier">b</span></tt> (match <tt class="computeroutput"><span class="identifier">a</span></tt>,
+ but only when followed by <tt class="computeroutput"><span class="identifier">b</span></tt>).
It invokes the lexer on the input following the current token without
actually moving forward in the input stream. The function returns
whether the lexer was able to match a token with the given token-id
- <code class="computeroutput"><span class="identifier">id</span></code>.
- </p>
- </td>
+ <tt class="computeroutput"><span class="identifier">id</span></tt>.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">get_state</span><span class="special">()</span> <span class="keyword">const</span></code>
- and <code class="computeroutput"><span class="keyword">void</span> <span class="identifier">set_state</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>
- <span class="identifier">state</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- The functions <code class="computeroutput"><span class="identifier">get_state</span><span class="special">()</span></code> and <code class="computeroutput"><span class="identifier">set_state</span><span class="special">()</span></code> may be used to introspect and change
+<td><p>
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">get_state</span><span class="special">()</span> <span class="keyword">const</span></tt>
+ and <tt class="computeroutput"><span class="keyword">void</span> <span class="identifier">set_state</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>
+ <span class="identifier">state</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ The functions <tt class="computeroutput"><span class="identifier">get_state</span><span class="special">()</span></tt> and <tt class="computeroutput"><span class="identifier">set_state</span><span class="special">()</span></tt> may be used to introspect and change
the current lexer state.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">token_value_type</span> <span class="identifier">get_value</span><span class="special">()</span>
- <span class="keyword">const</span></code> and <code class="computeroutput"><span class="keyword">void</span>
- <span class="identifier">set_value</span><span class="special">(</span><span class="identifier">Value</span> <span class="keyword">const</span><span class="special">&)</span></code>
- </p>
- </td>
-<td>
- <p>
- The functions <code class="computeroutput"><span class="identifier">get_value</span><span class="special">()</span></code> and <code class="computeroutput"><span class="identifier">set_value</span><span class="special">()</span></code> may be used to introspect and change
+<td><p>
+ <tt class="computeroutput"><span class="identifier">token_value_type</span> <span class="identifier">get_value</span><span class="special">()</span>
+ <span class="keyword">const</span></tt> and <tt class="computeroutput"><span class="keyword">void</span>
+ <span class="identifier">set_value</span><span class="special">(</span><span class="identifier">Value</span> <span class="keyword">const</span><span class="special">&)</span></tt>
+ </p></td>
+<td><p>
+ The functions <tt class="computeroutput"><span class="identifier">get_value</span><span class="special">()</span></tt> and <tt class="computeroutput"><span class="identifier">set_value</span><span class="special">()</span></tt> may be used to introspect and change
the current token value.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
-</table></div>
+</table>
</div>
-<br class="table-break"><a name="spirit.lex.abstracts.lexer_semantic_actions.lexer_semantic_actions_using_phoenix"></a><h6>
-<a name="id896648"></a>
- <a class="link" href="lexer_semantic_actions.html#spirit.lex.abstracts.lexer_semantic_actions.lexer_semantic_actions_using_phoenix">Lexer
+<a name="spirit.lex.abstracts.lexer_semantic_actions.lexer_semantic_actions_using_phoenix"></a><h5>
+<a name="id707138"></a>
+ <a href="lexer_semantic_actions.html#spirit.lex.abstracts.lexer_semantic_actions.lexer_semantic_actions_using_phoenix">Lexer
Semantic Actions Using Phoenix</a>
- </h6>
+ </h5>
<p>
Even if it is possible to write your own function object implementations
(i.e. using Boost.Lambda or Boost.Bind), the preferred way of defining
@@ -252,130 +231,98 @@
predefined Spirit placeholders:
</p>
<div class="table">
-<a name="id896671"></a><p class="title"><b>Table 9. Predefined Phoenix placeholders for lexer semantic
+<a name="id707180"></a><p class="title"><b>Table 9. Predefined Phoenix placeholders for lexer semantic
actions</b></p>
-<div class="table-contents"><table class="table" summary="Predefined Phoenix placeholders for lexer semantic
+<table class="table" summary="Predefined Phoenix placeholders for lexer semantic
actions">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Placeholder
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">_start</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">_start</span></tt>
+ </p></td>
+<td><p>
Refers to the iterator pointing to the beginning of the matched input
sequence. Any modifications to this iterator value will be reflected
in the generated token.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">_end</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">_end</span></tt>
+ </p></td>
+<td><p>
Refers to the iterator pointing past the end of the matched input
sequence. Any modifications to this iterator value will be reflected
in the generated token.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">_pass</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">_pass</span></tt>
+ </p></td>
+<td><p>
References the value signaling the outcome of the semantic action.
- This is pre-initialized to <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">pass_flags</span><span class="special">::</span><span class="identifier">pass_normal</span></code>.
- If this is set to <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">pass_flags</span><span class="special">::</span><span class="identifier">pass_fail</span></code>,
+ This is pre-initialized to <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">pass_flags</span><span class="special">::</span><span class="identifier">pass_normal</span></tt>.
+ If this is set to <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">pass_flags</span><span class="special">::</span><span class="identifier">pass_fail</span></tt>,
the lexer will behave as if no token has been matched, if is set
- to <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">pass_flags</span><span class="special">::</span><span class="identifier">pass_ignore</span></code>, the lexer will ignore
+ to <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">pass_flags</span><span class="special">::</span><span class="identifier">pass_ignore</span></tt>, the lexer will ignore
the current match and proceed trying to match tokens from the input.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">_tokenid</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">_tokenid</span></tt>
+ </p></td>
+<td><p>
Refers to the token id of the token to be generated. Any modifications
to this value will be reflected in the generated token.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">_val</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">_val</span></tt>
+ </p></td>
+<td><p>
Refers to the value the next token will be initialized from. Any
modifications to this value will be reflected in the generated token.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">_state</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">_state</span></tt>
+ </p></td>
+<td><p>
Refers to the lexer state the input has been match in. Any modifications
to this value will be reflected in the lexer itself (the next match
will start in the new state). The currently generated token is not
affected by changes to this variable.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">_eoi</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">_eoi</span></tt>
+ </p></td>
+<td><p>
References the end iterator of the overall lexer input. This value
cannot be changed.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
-</table></div>
+</table>
</div>
-<br class="table-break"><p>
+<p>
The context object passed as the last parameter to any lexer semantic action
is not directly accessible while using Boost.Phoenix
expressions. We rather provide predefine Phoenix functions allowing to
@@ -383,9 +330,9 @@
table lists the available support functions and describes their functionality:
</p>
<div class="table">
-<a name="id896949"></a><p class="title"><b>Table 10. Support functions usable from Phoenix expressions
+<a name="id707556"></a><p class="title"><b>Table 10. Support functions usable from Phoenix expressions
inside lexer semantic actions</b></p>
-<div class="table-contents"><table class="table" summary="Support functions usable from Phoenix expressions
+<table class="table" summary="Support functions usable from Phoenix expressions
inside lexer semantic actions">
<colgroup>
<col>
@@ -393,94 +340,69 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Plain function
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Phoenix function
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ctx</span><span class="special">.</span><span class="identifier">more</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">more</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
- The function <code class="computeroutput"><span class="identifier">more</span><span class="special">()</span></code> tells the lexer that the next time
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ctx</span><span class="special">.</span><span class="identifier">more</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">more</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
+ The function <tt class="computeroutput"><span class="identifier">more</span><span class="special">()</span></tt> tells the lexer that the next time
it matches a rule, the corresponding token should be appended onto
the current token value rather than replacing it.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ctx</span><span class="special">.</span><span class="identifier">less</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">less</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- The function <code class="computeroutput"><span class="identifier">less</span><span class="special">()</span></code> takes a single integer parameter
- <code class="computeroutput"><span class="identifier">n</span></code> and returns an
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ctx</span><span class="special">.</span><span class="identifier">less</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">less</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ The function <tt class="computeroutput"><span class="identifier">less</span><span class="special">()</span></tt> takes a single integer parameter
+ <tt class="computeroutput"><span class="identifier">n</span></tt> and returns an
iterator positioned to the nth input character beyond the current
token start iterator (i.e. by assigning the return value to the placeholder
- <code class="computeroutput"><span class="identifier">_end</span></code> it is possible
- to return all but the first <code class="computeroutput"><span class="identifier">n</span></code>
+ <tt class="computeroutput"><span class="identifier">_end</span></tt> it is possible
+ to return all but the first <tt class="computeroutput"><span class="identifier">n</span></tt>
characters of the current token back to the input stream.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ctx</span><span class="special">.</span><span class="identifier">lookahead</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lookahead</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span></code>
- or <code class="computeroutput"><span class="identifier">lookahead</span><span class="special">(</span><span class="identifier">token_def</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- The function <code class="computeroutput"><span class="identifier">lookahead</span><span class="special">()</span></code> takes a single parameter specifying
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ctx</span><span class="special">.</span><span class="identifier">lookahead</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lookahead</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">)</span></tt>
+ or <tt class="computeroutput"><span class="identifier">lookahead</span><span class="special">(</span><span class="identifier">token_def</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ The function <tt class="computeroutput"><span class="identifier">lookahead</span><span class="special">()</span></tt> takes a single parameter specifying
the token to match in the input. The function can be used for instance
to implement lookahead for lexer engines not supporting constructs
- like flex' <code class="computeroutput"><span class="identifier">a</span><span class="special">/</span><span class="identifier">b</span></code> (match <code class="computeroutput"><span class="identifier">a</span></code>,
- but only when followed by <code class="computeroutput"><span class="identifier">b</span></code>).
+ like flex' <tt class="computeroutput"><span class="identifier">a</span><span class="special">/</span><span class="identifier">b</span></tt> (match <tt class="computeroutput"><span class="identifier">a</span></tt>,
+ but only when followed by <tt class="computeroutput"><span class="identifier">b</span></tt>).
It invokes the lexer on the input following the current token without
actually moving forward in the input stream. The function returns
whether the lexer was able to match the specified token.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
-</table></div>
+</table>
</div>
-<br class="table-break">
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_states.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Lexer States</title>
+<title> Lexer States</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../abstracts.html" title="Abstracts">
-<link rel="prev" href="lexer_attributes.html" title="Lexer Attributes">
-<link rel="next" href="../quick_reference.html" title="Quick Reference">
+<link rel="up" href="../abstracts.html" title=" Abstracts">
+<link rel="previous" href="lexer_attributes.html" title=" Lexer Attributes">
+<link rel="next" href="../quick_reference.html" title=" Quick Reference">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,25 +22,28 @@
<div class="spirit-nav">
<a accesskey="p" href="lexer_attributes.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Lexer States">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.abstracts.lexer_states"></a><a class="link" href="lexer_states.html" title="Lexer States"> Lexer States</a>
-</h4></div></div></div>
-<a name="spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_lexer_semantic_actions"></a><h6>
-<a name="id901188"></a>
- <a class="link" href="lexer_states.html#spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_lexer_semantic_actions">Controlling
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.lex.abstracts.lexer_states"></a> Lexer States
+</h4></div></div>
+<div></div>
+</div>
+<a name="spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_lexer_semantic_actions"></a><h5>
+<a name="id711612"></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>
- </h6>
-<a name="spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_parser_semantic_actions"></a><h6>
-<a name="id901202"></a>
- <a class="link" href="lexer_states.html#spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_parser_semantic_actions">Controlling
+ </h5>
+<a name="spirit.lex.abstracts.lexer_states.controlling_the_lexer_state_from_parser_semantic_actions"></a><h5>
+<a name="id711640"></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>
- </h6>
-<a name="spirit.lex.abstracts.lexer_states.using_a_lexer_state_for_the_skip_parser"></a><h6>
-<a name="id901215"></a>
- <a class="link" href="lexer_states.html#spirit.lex.abstracts.lexer_states.using_a_lexer_state_for_the_skip_parser">Using
+ </h5>
+<a name="spirit.lex.abstracts.lexer_states.using_a_lexer_state_for_the_skip_parser"></a><h5>
+<a name="id711669"></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>
- </h6>
+ </h5>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_static_model.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>The Static Lexer Model</title>
+<title> The Static
+ Lexer Model</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../abstracts.html" title="Abstracts">
-<link rel="prev" href="lexer_semantic_actions.html" title="Lexer Semantic Actions">
-<link rel="next" href="lexer_parsing.html" title="Parsing using a Lexer">
+<link rel="up" href="../abstracts.html" title=" Abstracts">
+<link rel="previous" href="lexer_semantic_actions.html" title=" Lexer
+ Semantic Actions">
+<link rel="next" href="lexer_parsing.html" title=" Parsing using
+ a Lexer">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +25,15 @@
<div class="spirit-nav">
<a accesskey="p" href="lexer_semantic_actions.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="lexer_parsing.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="The Static Lexer Model">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.abstracts.lexer_static_model"></a><a class="link" href="lexer_static_model.html" title="The Static Lexer Model"> The <span class="emphasis"><em>Static</em></span>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.lex.abstracts.lexer_static_model"></a><a href="lexer_static_model.html" title=" The Static
+ Lexer Model"> The <span class="emphasis"><em>Static</em></span>
Lexer Model</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<p>
The documentation of <span class="emphasis"><em>Spirit.Lex</em></span> so far mostly was
about describing the features of the <span class="emphasis"><em>dynamic</em></span> model,
@@ -50,12 +57,12 @@
Assuming you already built a dynamic lexer for your problem, there are
two more steps needed to create a static lexical analyzer using <span class="emphasis"><em>Spirit.Lex</em></span>:
</p>
-<div class="orderedlist"><ol class="orderedlist" type="1">
-<li class="listitem">
+<div class="orderedlist"><ol type="1">
+<li>
generating the C++ code for the static analyzer (including the tokenization
function and corresponding tables), and
</li>
-<li class="listitem">
+<li>
modifying the dynamic lexical anlyzer to use the generated code.
</li>
</ol></div>
@@ -125,8 +132,8 @@
<p>
The only thing changing between the three different use cases is the template
parameter used to instantiate a concrete token definition. Fot the dynamic
- model and the code generator you probably will use the <a class="link" href="../reference/lexer.html#spirit.lex.reference.lexer.the_lexertl__lexer_class_implementing_the_dynamic_model"><code class="computeroutput"><span class="identifier">lexertl_lexer</span><span class="special"><></span></code></a>
- template, where for the static model you will use the <a class="link" href="../reference/lexer.html#spirit.lex.reference.lexer.the_lexertl__static_lexer_class_implementing_the_static_model"><code class="computeroutput"><span class="identifier">lexertl_static_lexer</span><span class="special"><></span></code></a>
+ model and the code generator you probably will use the lexertl_lexer<>
+ template, where for the static model you will use the lexertl_static_lexer<>
type as the template parameter.
</p>
<p>
@@ -175,17 +182,17 @@
</p>
<p>
</p>
-<a name="spirit.lex.abstracts.lexer_static_model.generating_the_static_analyzer"></a><h6>
-<a name="id899672"></a>
- <a class="link" href="lexer_static_model.html#spirit.lex.abstracts.lexer_static_model.generating_the_static_analyzer">Generating
+<a name="spirit.lex.abstracts.lexer_static_model.generating_the_static_analyzer"></a><h5>
+<a name="id709625"></a>
+ <a href="lexer_static_model.html#spirit.lex.abstracts.lexer_static_model.generating_the_static_analyzer">Generating
the Static Analyzer</a>
- </h6>
+ </h5>
<p>
The first additional step to perform in order to create a static lexical
analyzer is to create a small standalone program for creating the lexer
tables and the corresponding tokenization function. For this purpose the
<span class="emphasis"><em>Spirit.Lex</em></span> library exposes a special API - the function
- <code class="computeroutput"><span class="identifier">generate_static</span><span class="special">()</span></code>
+ <tt class="computeroutput"><span class="identifier">generate_static</span><span class="special">()</span></tt>
. It implements the whole code generator, no further code is needed. All
what it takes to invoke this function is to supply a token definition instance,
an output stream to use to generate the code to, and an optional string
@@ -224,34 +231,34 @@
a file for later inclusion into the static lexical analzyer as shown in
the next topic (the full generated code can be viewed here).
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
The generated code will have compiled in the version number of the current
<span class="emphasis"><em>Spirit.Lex</em></span> library. This version number is used
at compilation time of your static lexer object to ensure this is compiled
using exactly the same version of the <span class="emphasis"><em>Spirit.Lex</em></span>
library as the lexer tables have been generated with. If the versions
- do not match you will see an compilation error mentioning an <code class="computeroutput"><span class="identifier">incompatible_static_lexer_version</span></code>.
+ do not match you will see an compilation error mentioning an <tt class="computeroutput"><span class="identifier">incompatible_static_lexer_version</span></tt>.
</p></td></tr>
</table></div>
-<a name="spirit.lex.abstracts.lexer_static_model.modifying_the_dynamic_analyzer"></a><h6>
-<a name="id900031"></a>
- <a class="link" href="lexer_static_model.html#spirit.lex.abstracts.lexer_static_model.modifying_the_dynamic_analyzer">Modifying
+<a name="spirit.lex.abstracts.lexer_static_model.modifying_the_dynamic_analyzer"></a><h5>
+<a name="id710137"></a>
+ <a href="lexer_static_model.html#spirit.lex.abstracts.lexer_static_model.modifying_the_dynamic_analyzer">Modifying
the Dynamic Analyzer</a>
- </h6>
+ </h5>
<p>
The second required step to convert an existing dynamic lexer into a static
one is to change your main program at two places. First, you need to change
the type of the used lexer (that is the template parameter used while instantiating
your token definition class). While in the dynamic model we have been using
- the <a class="link" href="../reference/lexer.html#spirit.lex.reference.lexer.the_lexertl__lexer_class_implementing_the_dynamic_model"><code class="computeroutput"><span class="identifier">lexertl_lexer</span><span class="special"><></span></code></a>
- template, we now need to change that to the <a class="link" href="../reference/lexer.html#spirit.lex.reference.lexer.the_lexertl__static_lexer_class_implementing_the_static_model"><code class="computeroutput"><span class="identifier">lexertl_static_lexer</span><span class="special"><></span></code></a>
+ the lexertl_lexer<>
+ template, we now need to change that to the lexertl_static_lexer<>
type. The second change is tightly related to the first one and involves
- correcting the corresponding <code class="computeroutput"><span class="preprocessor">#include</span></code>
+ correcting the corresponding <tt class="computeroutput"><span class="preprocessor">#include</span></tt>
statement to:
</p>
<p>
@@ -333,17 +340,17 @@
</p>
<p>
</p>
-<div class="important" title="Important"><table border="0" summary="Important">
+<div class="important"><table border="0" summary="Important">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../images/important.png"></td>
<th align="left">Important</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
The generated code for the static lexer contains the token ids as they
have been assigned, either explicitly by the programmer or implicitely
during lexer construction. It is your responsibility to make sure that
all instances of a particular static lexer type use exactly the same
- token ids. This is ensured by default as long as no <code class="computeroutput"><span class="identifier">first_id</span></code>
+ token ids. This is ensured by default as long as no <tt class="computeroutput"><span class="identifier">first_id</span></tt>
is specified during construction of the static lexer instances. The constructor
of the lexer object has a second default parameter allowing it to designate
a starting token id to be used while assigning the ids to the token definitions.
Modified: trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/abstracts/lexer_tokenizing.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Tokenizing Input Data</title>
+<title> Tokenizing
+ Input Data</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../abstracts.html" title="Abstracts">
-<link rel="prev" href="lexer_primitives/lexer_token_definition.html" title="Ways to define Tokens">
-<link rel="next" href="lexer_semantic_actions.html" title="Lexer Semantic Actions">
+<link rel="up" href="../abstracts.html" title=" Abstracts">
+<link rel="previous" href="lexer_primitives/lexer_token_definition.html" title="
+ Ways to define Tokens">
+<link rel="next" href="lexer_semantic_actions.html" title=" Lexer
+ Semantic Actions">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,23 +25,28 @@
<div class="spirit-nav">
<a accesskey="p" href="lexer_primitives/lexer_token_definition.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../abstracts.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="lexer_semantic_actions.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Tokenizing Input Data">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.abstracts.lexer_tokenizing"></a><a class="link" href="lexer_tokenizing.html" title="Tokenizing Input Data"> Tokenizing
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.lex.abstracts.lexer_tokenizing"></a><a href="lexer_tokenizing.html" title=" Tokenizing
+ Input Data"> Tokenizing
Input Data</a>
-</h4></div></div></div>
-<a name="spirit.lex.abstracts.lexer_tokenizing.the_tokenize_function"></a><h6>
-<a name="id890491"></a>
- <a class="link" href="lexer_tokenizing.html#spirit.lex.abstracts.lexer_tokenizing.the_tokenize_function">The
+</h4></div></div>
+<div></div>
+</div>
+<a name="spirit.lex.abstracts.lexer_tokenizing.the_tokenize_function"></a><h5>
+<a name="id702425"></a>
+ <a href="lexer_tokenizing.html#spirit.lex.abstracts.lexer_tokenizing.the_tokenize_function">The
tokenize function</a>
- </h6>
+ </h5>
<p>
- The <code class="computeroutput"><span class="identifier">tokenize</span><span class="special">()</span></code>
+ The <tt class="computeroutput"><span class="identifier">tokenize</span><span class="special">()</span></tt>
function is a helper function simplifying the usage of a lexer in a standalone
fashion. For instance, you may have a standalone lexer where all that functional
requirements are implemented inside lexer semantic actions. A good example
for this is the word_count_lexer
- described in more detail in the section <a class="link" href="../tutorials/lexer_quickstart2.html" title="Quickstart 2 - A better word counter using Spirit.Lex">Lex
+ described in more detail in the section <a href="../tutorials/lexer_quickstart2.html" title=" Quickstart
+ 2 - A better word counter using Spirit.Lex">Lex
Quickstart 2 - A better word counter using <span class="emphasis"><em>Spirit.Lex</em></span></a>.
</p>
<p>
@@ -78,7 +86,7 @@
<p>
The construct used to tokenize the given input, while discarding all generated
tokens is a common application of the lexer. For this reason <span class="emphasis"><em>Spirit.Lex</em></span>
- exposes an API function <code class="computeroutput"><span class="identifier">tokenize</span><span class="special">()</span></code> minimizing the code required:
+ exposes an API function <tt class="computeroutput"><span class="identifier">tokenize</span><span class="special">()</span></tt> minimizing the code required:
</p>
<pre class="programlisting"><span class="comment">// Read input from the given file
</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">str</span> <span class="special">(</span><span class="identifier">read_from_file</span><span class="special">(</span><span class="number">1</span> <span class="special">==</span> <span class="identifier">argc</span> <span class="special">?</span> <span class="string">"word_count.input"</span> <span class="special">:</span> <span class="identifier">argv</span><span class="special">[</span><span class="number">1</span><span class="special">]));</span>
@@ -91,14 +99,15 @@
</pre>
<p>
This code is completely equivalent to the more verbose version as shown
- in the section <a class="link" href="../tutorials/lexer_quickstart2.html" title="Quickstart 2 - A better word counter using Spirit.Lex">Lex
+ in the section <a href="../tutorials/lexer_quickstart2.html" title=" Quickstart
+ 2 - A better word counter using Spirit.Lex">Lex
Quickstart 2 - A better word counter using <span class="emphasis"><em>Spirit.Lex</em></span></a>.
- The function <code class="computeroutput"><span class="identifier">tokenize</span><span class="special">()</span></code>
+ The function <tt class="computeroutput"><span class="identifier">tokenize</span><span class="special">()</span></tt>
will return either if the end of the input has been reached (in this case
- the return value will be <code class="computeroutput"><span class="keyword">true</span></code>),
+ the return value will be <tt class="computeroutput"><span class="keyword">true</span></tt>),
or if the lexer couldn't match any of the token definitions in the input
- (in this case the return value will be <code class="computeroutput"><span class="keyword">false</span></code>
- and the iterator <code class="computeroutput"><span class="identifier">first</span></code>
+ (in this case the return value will be <tt class="computeroutput"><span class="keyword">false</span></tt>
+ and the iterator <tt class="computeroutput"><span class="identifier">first</span></tt>
will point to the first not matched character in the input sequence).
</p>
<p>
@@ -108,7 +117,7 @@
<span class="keyword">bool</span> <span class="identifier">tokenize</span><span class="special">(</span><span class="identifier">Iterator</span><span class="special">&</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">Lexer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">lex</span>
<span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Lexer</span><span class="special">::</span><span class="identifier">char_type</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">initial_state</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
</pre>
-<div class="variablelist" title="where:">
+<div class="variablelist">
<p class="title"><b>where:</b></p>
<dl>
<dt><span class="term">Iterator& first</span></dt>
@@ -133,7 +142,7 @@
</dl>
</div>
<p>
- A second overload of the <code class="computeroutput"><span class="identifier">tokenize</span><span class="special">()</span></code> function allows specifying of any arbitrary
+ A second overload of the <tt class="computeroutput"><span class="identifier">tokenize</span><span class="special">()</span></tt> function allows specifying of any arbitrary
function or function object to be called for each of the generated tokens.
For some applications this is very useful, as it might avoid having lexer
semantic actions. For an example of how to use this function, please have
@@ -142,10 +151,10 @@
<p>
</p>
<p>
- The main function simply loads the given file into memory (as a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code>), instantiates an instance of
- the token definition template using the correct iterator type (<code class="computeroutput"><span class="identifier">word_count_tokens</span><span class="special"><</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*></span></code>), and finally calls <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">tokenize</span></code>, passing an instance of the
- counter function object. The return value of <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">tokenize</span><span class="special">()</span></code> will be <code class="computeroutput"><span class="keyword">true</span></code>
- if the whole input sequence has been successfully tokenized, and <code class="computeroutput"><span class="keyword">false</span></code> otherwise.
+ The main function simply loads the given file into memory (as a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></tt>), instantiates an instance of
+ the token definition template using the correct iterator type (<tt class="computeroutput"><span class="identifier">word_count_tokens</span><span class="special"><</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*></span></tt>), and finally calls <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">tokenize</span></tt>, passing an instance of the
+ counter function object. The return value of <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">tokenize</span><span class="special">()</span></tt> will be <tt class="computeroutput"><span class="keyword">true</span></tt>
+ if the whole input sequence has been successfully tokenized, and <tt class="computeroutput"><span class="keyword">false</span></tt> otherwise.
</p>
<p>
</p>
@@ -188,13 +197,13 @@
<p>
</p>
<p>
- Here is the prototype of this <code class="computeroutput"><span class="identifier">tokenize</span><span class="special">()</span></code> function overload:
+ Here is the prototype of this <tt class="computeroutput"><span class="identifier">tokenize</span><span class="special">()</span></tt> function overload:
</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> <span class="keyword">typename</span> <span class="identifier">Lexer</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
<span class="keyword">bool</span> <span class="identifier">tokenize</span><span class="special">(</span><span class="identifier">Iterator</span><span class="special">&</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">Lexer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">lex</span><span class="special">,</span> <span class="identifier">F</span> <span class="identifier">f</span>
<span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Lexer</span><span class="special">::</span><span class="identifier">char_type</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">initial_state</span> <span class="special">=</span> <span class="number">0</span><span class="special">);</span>
</pre>
-<div class="variablelist" title="where:">
+<div class="variablelist">
<p class="title"><b>where:</b></p>
<dl>
<dt><span class="term">Iterator& first</span></dt>
@@ -214,10 +223,10 @@
<dt><span class="term">F f</span></dt>
<dd><p>
A function or function object to be called for each matched token.
- This function is expected to have the prototype: <code class="computeroutput"><span class="keyword">bool</span>
- <span class="identifier">f</span><span class="special">(</span><span class="identifier">Lexer</span><span class="special">::</span><span class="identifier">token_type</span><span class="special">);</span></code>.
- The <code class="computeroutput"><span class="identifier">tokenize</span><span class="special">()</span></code>
- function will return immediatly if <code class="computeroutput"><span class="identifier">F</span></code>
+ This function is expected to have the prototype: <tt class="computeroutput"><span class="keyword">bool</span>
+ <span class="identifier">f</span><span class="special">(</span><span class="identifier">Lexer</span><span class="special">::</span><span class="identifier">token_type</span><span class="special">);</span></tt>.
+ The <tt class="computeroutput"><span class="identifier">tokenize</span><span class="special">()</span></tt>
+ function will return immediatly if <tt class="computeroutput"><span class="identifier">F</span></tt>
returns `false.
</p></dd>
<dt><span class="term">Lexer::char_type const* initial_state</span></dt>
@@ -227,11 +236,11 @@
</p></dd>
</dl>
</div>
-<a name="spirit.lex.abstracts.lexer_tokenizing.the_generate_static_function"></a><h6>
-<a name="id895488"></a>
- <a class="link" href="lexer_tokenizing.html#spirit.lex.abstracts.lexer_tokenizing.the_generate_static_function">The
+<a name="spirit.lex.abstracts.lexer_tokenizing.the_generate_static_function"></a><h5>
+<a name="id705468"></a>
+ <a href="lexer_tokenizing.html#spirit.lex.abstracts.lexer_tokenizing.the_generate_static_function">The
generate_static function</a>
- </h6>
+ </h5>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
Modified: trunk/libs/spirit/doc/html/spirit/lex/lexer_introduction.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/lexer_introduction.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/lexer_introduction.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Introduction to Spirit.Lex</title>
+<title> Introduction to Spirit.Lex</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../index.html" title="Spirit 2.1">
-<link rel="up" href="../lex.html" title="Lex - Writing Lexical Analyzers">
-<link rel="prev" href="../lex.html" title="Lex - Writing Lexical Analyzers">
-<link rel="next" href="tutorials.html" title="Spirit.Lex Tutorials">
+<link rel="up" href="../lex.html" title=" Lex - Writing Lexical Analyzers">
+<link rel="previous" href="../lex.html" title=" Lex - Writing Lexical Analyzers">
+<link rel="next" href="tutorials.html" title=" Spirit.Lex
+ Tutorials">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,10 +23,13 @@
<div class="spirit-nav">
<a accesskey="p" href="../lex.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../lex.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tutorials.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Introduction to Spirit.Lex">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.lex.lexer_introduction"></a><a class="link" href="lexer_introduction.html" title="Introduction to Spirit.Lex"> Introduction to <span class="emphasis"><em>Spirit.Lex</em></span></a>
-</h3></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h3 class="title">
+<a name="spirit.lex.lexer_introduction"></a> Introduction to Spirit.Lex
+</h3></div></div>
+<div></div>
+</div>
<p>
Lexical scanning is the process of analyzing the stream of input characters
and separating it into strings called tokens, separated by whitespace. Most
@@ -37,29 +41,29 @@
the set of patterns describing the different tokens you want to recognize
in the input. To make this a bit more formal, here are some definitions:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
A token is a sequence of consecutive characters having a collective meaning.
Tokens may have attributes specific to the token type, carrying additional
information about the matched character sequence.
</li>
-<li class="listitem">
+<li>
A pattern is a rule expressed as a regular expression and describing how
- a particular token can be formed. For example, <code class="literal">[A-Za-z][A-Za-z_0-9]*</code>
+ a particular token can be formed. For example, <tt class="literal">[A-Za-z][A-Za-z_0-9]*</tt>
is a pattern for a rule matching C++ identifiers.
</li>
-<li class="listitem">
+<li>
Characters between tokens are called whitespace; these include spaces,
tabs, newlines, and formfeeds. Many people also count comments as whitespace,
though since some tools such as lint look at comments, this method is not
perfect.
</li>
</ul></div>
-<a name="spirit.lex.lexer_introduction.why_use_a_separate_lexer_"></a><h5>
-<a name="id876973"></a>
- <a class="link" href="lexer_introduction.html#spirit.lex.lexer_introduction.why_use_a_separate_lexer_">Why
+<a name="spirit.lex.lexer_introduction.why_use_a_separate_lexer_"></a><h4>
+<a name="id688355"></a>
+ <a href="lexer_introduction.html#spirit.lex.lexer_introduction.why_use_a_separate_lexer_">Why
Use a Separate Lexer?</a>
- </h5>
+ </h4>
<p>
Typically, lexical scanning is done in a separate module from the parser,
feeding the parser with a stream of input tokens only. Theoretically it is
@@ -75,17 +79,17 @@
to be very useful in practical applications. In 1956, Noam Chomsky defined
the "Chomsky Hierarchy" of grammars:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
Type 0: Unrestricted grammars (e.g., natural languages)
</li>
-<li class="listitem">
+<li>
Type 1: Context-Sensitive grammars
</li>
-<li class="listitem">
+<li>
Type 2: Context-Free grammars
</li>
-<li class="listitem">
+<li>
Type 3: Regular grammars
</li>
</ul></div>
@@ -154,11 +158,11 @@
it is even possible to use the provided functionality to build more complex
grammar recognizers.
</p>
-<a name="spirit.lex.lexer_introduction.advantages_of_using__emphasis_spirit_lex__emphasis_"></a><h5>
-<a name="id877182"></a>
- <a class="link" href="lexer_introduction.html#spirit.lex.lexer_introduction.advantages_of_using__emphasis_spirit_lex__emphasis_">Advantages
+<a name="spirit.lex.lexer_introduction.advantages_of_using__emphasis_spirit_lex__emphasis_"></a><h4>
+<a name="id688716"></a>
+ <a href="lexer_introduction.html#spirit.lex.lexer_introduction.advantages_of_using__emphasis_spirit_lex__emphasis_">Advantages
of using <span class="emphasis"><em>Spirit.Lex</em></span></a>
- </h5>
+ </h4>
<p>
The advantage of using <span class="emphasis"><em>Spirit.Lex</em></span> to create the lexical
analyzer over using more traditional tools such as Flex
@@ -171,18 +175,18 @@
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 class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
The definition of tokens is done using regular expressions (patterns)
</li>
-<li class="listitem">
+<li>
The token definitions can refer to special substitution strings (pattern
macros) simplifying pattern definitions
</li>
-<li class="listitem">
+<li>
The generated lexical scanner may have multiple start states
</li>
-<li class="listitem">
+<li>
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>
@@ -191,7 +195,8 @@
Even if it is possible to use <span class="emphasis"><em>Spirit.Lex</em></span> to generate
C++ code representing the lexical analyzer (we will refer to that as the
<span class="emphasis"><em>static</em></span> model, described in more detail in the section
- <a class="link" href="abstracts/lexer_static_model.html" title="The Static Lexer Model">The <span class="emphasis"><em>Static</em></span>
+ <a href="abstracts/lexer_static_model.html" title=" The Static
+ Lexer Model">The <span class="emphasis"><em>Static</em></span>
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,
@@ -201,13 +206,14 @@
<a href="http://www.cs.queensu.ca/~thurston/ragel/" target="_top">Ragel</a>, etc.).
This dynamic flexibility allows you to speed up the development of your application.
</p>
-<a name="spirit.lex.lexer_introduction.the_library_structure_of__emphasis_spirit_lex__emphasis_"></a><h5>
-<a name="id877285"></a>
- <a class="link" href="lexer_introduction.html#spirit.lex.lexer_introduction.the_library_structure_of__emphasis_spirit_lex__emphasis_">The
+<a name="spirit.lex.lexer_introduction.the_library_structure_of__emphasis_spirit_lex__emphasis_"></a><h4>
+<a name="id688888"></a>
+ <a href="lexer_introduction.html#spirit.lex.lexer_introduction.the_library_structure_of__emphasis_spirit_lex__emphasis_">The
Library Structure of <span class="emphasis"><em>Spirit.Lex</em></span></a>
- </h5>
+ </h4>
<p>
- The <a class="link" href="lexer_introduction.html#spirit.lexerflow" title="Figure 6. The Library structure and Common Flow of Information while using Spirit.Lex in an application">figure</a> below shows a high level
+ The <a href="lexer_introduction.html#spirit.lexerflow" title="Figure 6. The Library structure and Common Flow of Information while
+ using Spirit.Lex in an application">figure</a> below shows a high level
overview of how the <span class="emphasis"><em>Spirit.Lex</em></span> library might be used
in an application. <span class="emphasis"><em>Spirit.Lex</em></span> allows to create lexical
analyzers based on patterns. These patterns are regular expression based
@@ -225,9 +231,11 @@
<div class="figure">
<a name="spirit.lexerflow"></a><p class="title"><b>Figure 6. The Library structure and Common Flow of Information while
using <span class="emphasis"><em>Spirit.Lex</em></span> in an application</b></p>
-<div class="figure-contents"><span class="inlinemediaobject"><img src="../.././images/lexerflow.png" alt="The Library structure and Common Flow of Information while using Spirit.Lex in an application"></span></div>
+<span class="inlinemediaobject"><img src="./images/lexerflow.png" alt="The Library
+ structure and Common Flow of Information while using Spirit.Lex
+ in an application"></span>
</div>
-<p><br class="figure-break">
+<p>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/lex/quick_reference.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/quick_reference.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/quick_reference.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Quick Reference</title>
+<title> Quick Reference</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../index.html" title="Spirit 2.1">
-<link rel="up" href="../lex.html" title="Lex - Writing Lexical Analyzers">
-<link rel="prev" href="abstracts/lexer_states.html" title="Lexer States">
-<link rel="next" href="quick_reference/common_notation.html" title="Common Notation">
+<link rel="up" href="../lex.html" title=" Lex - Writing Lexical Analyzers">
+<link rel="previous" href="abstracts/lexer_states.html" title=" Lexer States">
+<link rel="next" href="quick_reference/common_notation.html" title="Common
+ Notation">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,10 +23,13 @@
<div class="spirit-nav">
<a accesskey="p" href="abstracts/lexer_states.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../lex.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="quick_reference/common_notation.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Quick Reference">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.lex.quick_reference"></a><a class="link" href="quick_reference.html" title="Quick Reference"> Quick Reference</a>
-</h3></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h3 class="title">
+<a name="spirit.lex.quick_reference"></a> Quick Reference
+</h3></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section"><a href="quick_reference/common_notation.html">Common
Notation</a></span></dt>
Modified: trunk/libs/spirit/doc/html/spirit/lex/quick_reference/common_notation.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/quick_reference/common_notation.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/quick_reference/common_notation.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Common Notation</title>
+<title>Common
+ Notation</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../quick_reference.html" title="Quick Reference">
-<link rel="prev" href="../quick_reference.html" title="Quick Reference">
-<link rel="next" href="lexers.html" title="Primitive Lexer Components">
+<link rel="up" href="../quick_reference.html" title=" Quick Reference">
+<link rel="previous" href="../quick_reference.html" title=" Quick Reference">
+<link rel="next" href="lexers.html" title=" Primitive Lexer
+ Components">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,66 +24,70 @@
<div class="spirit-nav">
<a accesskey="p" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="lexers.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Common Notation">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.quick_reference.common_notation"></a><a class="link" href="common_notation.html" title="Common Notation">Common
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.lex.quick_reference.common_notation"></a><a href="common_notation.html" title="Common
+ Notation">Common
Notation</a>
-</h4></div></div></div>
-<div class="variablelist" title="Notation">
+</h4></div></div>
+<div></div>
+</div>
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">L</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">L</span></tt></span></dt>
<dd><p>
Lexer type
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">l</span><span class="special">,</span> <span class="identifier">a</span><span class="special">,</span>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">l</span><span class="special">,</span> <span class="identifier">a</span><span class="special">,</span>
<span class="identifier">b</span><span class="special">,</span>
<span class="identifier">c</span><span class="special">,</span>
- <span class="identifier">d</span></code></span></dt>
+ <span class="identifier">d</span></tt></span></dt>
<dd><p>
Lexer objects
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Iterator</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Iterator</span></tt></span></dt>
<dd><p>
The type of an iterator referring to the underlying input sequence
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">IdType</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">IdType</span></tt></span></dt>
<dd><p>
The token id type
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Context</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Context</span></tt></span></dt>
<dd><p>
- The lexer components <code class="computeroutput"><span class="identifier">Context</span></code>
+ The lexer components <tt class="computeroutput"><span class="identifier">Context</span></tt>
type
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">ch</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">ch</span></tt></span></dt>
<dd><p>
Character-class specific character (See Character Class Types)
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Ch</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Ch</span></tt></span></dt>
<dd><p>
Character-class specific character type (See Character Class Types)
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">str</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">str</span></tt></span></dt>
<dd><p>
Character-class specific string (See Character Class Types)
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Str</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Str</span></tt></span></dt>
<dd><p>
Character-class specific string type (See Character Class Types)
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Attrib</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Attrib</span></tt></span></dt>
<dd><p>
An attribute type
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">fa</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">fa</span></tt></span></dt>
<dd><p>
- A semantic action function with a signature: <code class="computeroutput"><span class="keyword">void</span>
+ A semantic action function with a signature: <tt class="computeroutput"><span class="keyword">void</span>
<span class="identifier">f</span><span class="special">(</span><span class="identifier">Iterator</span><span class="special">&,</span>
<span class="identifier">Iterator</span><span class="special">&,</span>
<span class="identifier">pass_flag</span><span class="special">&,</span>
<span class="identifier">Idtype</span><span class="special">&,</span>
- <span class="identifier">Context</span><span class="special">&)</span></code>.
+ <span class="identifier">Context</span><span class="special">&)</span></tt>.
</p></dd>
</dl>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/lex/quick_reference/lexers.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/quick_reference/lexers.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/quick_reference/lexers.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Primitive Lexer Components</title>
+<title> Primitive Lexer
+ Components</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../quick_reference.html" title="Quick Reference">
-<link rel="prev" href="common_notation.html" title="Common Notation">
-<link rel="next" href="semantic_actions.html" title="Semantic Actions">
+<link rel="up" href="../quick_reference.html" title=" Quick Reference">
+<link rel="previous" href="common_notation.html" title="Common
+ Notation">
+<link rel="next" href="semantic_actions.html" title="Semantic
+ Actions">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +25,15 @@
<div class="spirit-nav">
<a accesskey="p" href="common_notation.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="semantic_actions.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Primitive Lexer Components">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.quick_reference.lexers"></a><a class="link" href="lexers.html" title="Primitive Lexer Components"> Primitive Lexer
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.lex.quick_reference.lexers"></a><a href="lexers.html" title=" Primitive Lexer
+ Components"> Primitive Lexer
Components</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<div class="informaltable"><table class="table">
<colgroup>
<col>
@@ -34,153 +41,105 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ch</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ch</span></tt>
+ </p></td>
+<td><p>
n/a
- </p>
- </td>
-<td>
- <p>
- Matches <code class="computeroutput"><span class="identifier">ch</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
+ Matches <tt class="computeroutput"><span class="identifier">ch</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
n/a
- </p>
- </td>
-<td>
- <p>
- Matches <code class="computeroutput"><span class="identifier">ch</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">str</span></code>
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
+ Matches <tt class="computeroutput"><span class="identifier">ch</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">str</span></tt>
+ </p></td>
+<td><p>
n/a
- </p>
- </td>
-<td>
- <p>
- Matches regular expression <code class="computeroutput"><span class="identifier">str</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">string</span><span class="special">(</span><span class="identifier">str</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
+ Matches regular expression <tt class="computeroutput"><span class="identifier">str</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">string</span><span class="special">(</span><span class="identifier">str</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
n/a
- </p>
- </td>
-<td>
- <p>
- Matches regular expression <code class="computeroutput"><span class="identifier">str</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">token_def</span><span class="special"><</span><span class="identifier">Attrib</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Attrib</span></code>
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
+ Matches regular expression <tt class="computeroutput"><span class="identifier">str</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">token_def</span><span class="special"><</span><span class="identifier">Attrib</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ </p></td>
+<td><p>
Matches the immediate argument
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
+ <span class="identifier">b</span></tt>
+ </p></td>
+<td><p>
n/a
- </p>
- </td>
-<td>
- <p>
- Matches any of the expressions <code class="computeroutput"><span class="identifier">a</span></code>
- or <code class="computeroutput"><span class="identifier">b</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">l</span><span class="special">[</span><span class="identifier">fa</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Attribute of <code class="computeroutput"><span class="identifier">l</span></code>
- </p>
- </td>
-<td>
- <p>
- Call semantic action <code class="computeroutput"><span class="identifier">fa</span></code>
- (after matching <code class="computeroutput"><span class="identifier">l</span></code>).
- </p>
- </td>
+ </p></td>
+<td><p>
+ Matches any of the expressions <tt class="computeroutput"><span class="identifier">a</span></tt>
+ or <tt class="computeroutput"><span class="identifier">b</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">l</span><span class="special">[</span><span class="identifier">fa</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Attribute of <tt class="computeroutput"><span class="identifier">l</span></tt>
+ </p></td>
+<td><p>
+ Call semantic action <tt class="computeroutput"><span class="identifier">fa</span></tt>
+ (after matching <tt class="computeroutput"><span class="identifier">l</span></tt>).
+ </p></td>
</tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
The column <span class="emphasis"><em>Attribute</em></span> in the table above lists the
parser attribute exposed by the lexer component if it is used as a parser
(see Attribute). A 'n/a' in this columns means the lexer component is
Modified: trunk/libs/spirit/doc/html/spirit/lex/quick_reference/phoenix.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/quick_reference/phoenix.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/quick_reference/phoenix.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,12 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Phoenix</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../quick_reference.html" title="Quick Reference">
-<link rel="prev" href="semantic_actions.html" title="Semantic Actions">
-<link rel="next" href="../reference.html" title="Reference">
+<link rel="up" href="../quick_reference.html" title=" Quick Reference">
+<link rel="previous" href="semantic_actions.html" title="Semantic
+ Actions">
+<link rel="next" href="../reference.html" title=" Reference">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,10 +23,13 @@
<div class="spirit-nav">
<a accesskey="p" href="semantic_actions.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Phoenix">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.quick_reference.phoenix"></a><a class="link" href="phoenix.html" title="Phoenix">Phoenix</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.lex.quick_reference.phoenix"></a>Phoenix
+</h4></div></div>
+<div></div>
+</div>
<p>
<a href="../../../../../phoenix/doc/html/index.html" target="_top">Boost.Phoenix</a> makes
it easier to attach semantic actions. You just inline your lambda expressions:
@@ -34,52 +38,53 @@
</pre>
<p>
<span class="emphasis"><em>Spirit.Lex</em></span> provides some Boost.Phoenix
- placeholders to access important information from the <code class="computeroutput"><span class="identifier">Context</span></code>
+ placeholders to access important information from the <tt class="computeroutput"><span class="identifier">Context</span></tt>
that are otherwise difficult to extract.
</p>
-<div class="variablelist" title="Spirit.Lex specific Phoenix placeholders">
+<div class="variablelist">
<p class="title"><b>Spirit.Lex specific Phoenix placeholders</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">_start</span><span class="special">,</span> <span class="identifier">_end</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">_start</span><span class="special">,</span> <span class="identifier">_end</span></tt></span></dt>
<dd><p>
Iterators pointing to the begin and the end of the matched input sequence.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">_pass</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">_pass</span></tt></span></dt>
<dd><p>
- Assign <code class="computeroutput"><span class="keyword">false</span></code> to <code class="computeroutput"><span class="identifier">_pass</span></code> to force the current match
+ Assign <tt class="computeroutput"><span class="keyword">false</span></tt> to <tt class="computeroutput"><span class="identifier">_pass</span></tt> to force the current match
to fail.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">_tokenid</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">_tokenid</span></tt></span></dt>
<dd><p>
The token id of the matched token.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">_val</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">_val</span></tt></span></dt>
<dd><p>
The token value of the matched token.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">_state</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">_state</span></tt></span></dt>
<dd><p>
The lexer state the token has been matched in.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">_eoi</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">_eoi</span></tt></span></dt>
<dd><p>
Iterator referring to the current end of the input sequence.
</p></dd>
</dl>
</div>
-<div class="tip" title="Tip"><table border="0" summary="Tip">
+<div class="tip"><table border="0" summary="Tip">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../images/tip.png"></td>
<th align="left">Tip</th>
</tr>
-<tr><td align="left" valign="top"><p>
- All of the placeholders in the list above (except <code class="computeroutput"><span class="identifier">_eoi</span></code>)
+<tr><td colspan="2" align="left" valign="top"><p>
+ All of the placeholders in the list above (except <tt class="computeroutput"><span class="identifier">_eoi</span></tt>)
can be changed from the inside of the semantic action allowing to modify
the lexer behavior.
</p></td></tr>
</table></div>
<p>
- For more information see <a class="link" href="../abstracts/lexer_semantic_actions.html" title="Lexer Semantic Actions">Lexer
+ For more information see <a href="../abstracts/lexer_semantic_actions.html" title=" Lexer
+ Semantic Actions">Lexer
Semantic Actions</a>.
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/lex/quick_reference/semantic_actions.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/quick_reference/semantic_actions.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/quick_reference/semantic_actions.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Semantic Actions</title>
+<title>Semantic
+ Actions</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../quick_reference.html" title="Quick Reference">
-<link rel="prev" href="lexers.html" title="Primitive Lexer Components">
+<link rel="up" href="../quick_reference.html" title=" Quick Reference">
+<link rel="previous" href="lexers.html" title=" Primitive Lexer
+ Components">
<link rel="next" href="phoenix.html" title="Phoenix">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,18 +24,22 @@
<div class="spirit-nav">
<a accesskey="p" href="lexers.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="phoenix.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Semantic Actions">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.quick_reference.semantic_actions"></a><a class="link" href="semantic_actions.html" title="Semantic Actions">Semantic
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.lex.quick_reference.semantic_actions"></a><a href="semantic_actions.html" title="Semantic
+ Actions">Semantic
Actions</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<p>
Has the form:
</p>
<pre class="programlisting"><span class="identifier">l</span><span class="special">[</span><span class="identifier">f</span><span class="special">]</span>
</pre>
<p>
- where <code class="computeroutput"><span class="identifier">f</span></code> is a function with
+ where <tt class="computeroutput"><span class="identifier">f</span></tt> is a function with
the signatures:
</p>
<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">();</span>
@@ -54,11 +60,12 @@
<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">Iterator</span><span class="special">&,</span> <span class="identifier">Iterator</span><span class="special">&,</span> <span class="identifier">pass_flag</span><span class="special">&,</span> <span class="identifier">Idtype</span><span class="special">&,</span> <span class="identifier">Context</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
- The <code class="computeroutput"><span class="identifier">unused_type</span></code> is used
+ The <tt class="computeroutput"><span class="identifier">unused_type</span></tt> is used
in the signatures above to signify 'don't care'.
</p>
<p>
- For more information see <a class="link" href="../abstracts/lexer_semantic_actions.html" title="Lexer Semantic Actions">Lexer
+ For more information see <a href="../abstracts/lexer_semantic_actions.html" title=" Lexer
+ Semantic Actions">Lexer
Semantic Actions</a>.
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/lex/reference.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/reference.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/reference.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Reference</title>
+<title> Reference</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../index.html" title="Spirit 2.1">
-<link rel="up" href="../lex.html" title="Lex - Writing Lexical Analyzers">
-<link rel="prev" href="quick_reference/phoenix.html" title="Phoenix">
-<link rel="next" href="reference/lexer_concepts.html" title="Lexer Concepts">
+<link rel="up" href="../lex.html" title=" Lex - Writing Lexical Analyzers">
+<link rel="previous" href="quick_reference/phoenix.html" title="Phoenix">
+<link rel="next" href="reference/lexer_concepts.html" title=" Lexer Concepts">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,10 +22,13 @@
<div class="spirit-nav">
<a accesskey="p" href="quick_reference/phoenix.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../lex.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="reference/lexer_concepts.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Reference">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.lex.reference"></a><a class="link" href="reference.html" title="Reference"> Reference</a>
-</h3></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h3 class="title">
+<a name="spirit.lex.reference"></a> Reference
+</h3></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section"> Lexer Concepts</span></dt>
<dt><span class="section"> Basics</span></dt>
Modified: trunk/libs/spirit/doc/html/spirit/lex/reference/lex_basics.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/reference/lex_basics.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/reference/lex_basics.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Basics</title>
+<title> Basics</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="lexer_concepts/narylexer.html" title="NaryLexer">
-<link rel="next" href="primitives.html" title="Token definition Primitives">
+<link rel="up" href="../reference.html" title=" Reference">
+<link rel="previous" href="lexer_concepts/narylexer.html" title="NaryLexer">
+<link rel="next" href="primitives.html" title=" Token definition
+ Primitives">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,14 +23,17 @@
<div class="spirit-nav">
<a accesskey="p" href="lexer_concepts/narylexer.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="primitives.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Basics">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.reference.lex_basics"></a><a class="link" href="lex_basics.html" title="Basics"> Basics</a>
-</h4></div></div></div>
-<a name="spirit.lex.reference.lex_basics.examples"></a><h6>
-<a name="id905008"></a>
- <a class="link" href="lex_basics.html#spirit.lex.reference.lex_basics.examples">Examples</a>
- </h6>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.lex.reference.lex_basics"></a> Basics
+</h4></div></div>
+<div></div>
+</div>
+<a name="spirit.lex.reference.lex_basics.examples"></a><h5>
+<a name="id716746"></a>
+ Examples
+ </h5>
<p>
All sections in the reference present some real world examples. The examples
use a common test harness to keep the example code as minimal and direct
@@ -61,26 +65,26 @@
</p>
<p>
</p>
-<a name="spirit.lex.reference.lex_basics.models"></a><h6>
-<a name="id905220"></a>
- <a class="link" href="lex_basics.html#spirit.lex.reference.lex_basics.models">Models</a>
- </h6>
+<a name="spirit.lex.reference.lex_basics.models"></a><h5>
+<a name="id717042"></a>
+ Models
+ </h5>
<p>
Predefined models include:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
any literal string, e.g. "Hello, World",
</li>
-<li class="listitem">
+<li>
a pointer/reference to a null-terminated array of characters
</li>
-<li class="listitem">
- a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">Char</span><span class="special">></span></code>
+<li>
+ a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">Char</span><span class="special">></span></tt>
</li>
</ul></div>
<p>
- The namespace <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></code> is open for users to provide their
+ The namespace <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></tt> is open for users to provide their
own specializations.
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/lex/reference/lexer.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/reference/lexer.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/reference/lexer.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Lexer Class</title>
+<title> Lexer Class</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="primitives/char_tokendef.html" title="Tokens Matching Single Characters">
-<link rel="next" href="token.html" title="Token Class">
+<link rel="up" href="../reference.html" title=" Reference">
+<link rel="previous" href="primitives/char_tokendef.html" title=" Tokens
+ Matching Single Characters">
+<link rel="next" href="token.html" title=" Token Class">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,30 +23,33 @@
<div class="spirit-nav">
<a accesskey="p" href="primitives/char_tokendef.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="token.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Lexer Class">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.reference.lexer"></a><a class="link" href="lexer.html" title="Lexer Class"> Lexer Class</a>
-</h4></div></div></div>
-<a name="spirit.lex.reference.lexer.the_lexertl__lexer_class_implementing_the_dynamic_model"></a><h6>
-<a name="id907024"></a>
- <a class="link" href="lexer.html#spirit.lex.reference.lexer.the_lexertl__lexer_class_implementing_the_dynamic_model">The
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.lex.reference.lexer"></a> Lexer Class
+</h4></div></div>
+<div></div>
+</div>
+<a name="spirit.lex.reference.lexer.the_lexertl__lexer_class_implementing_the_dynamic_model"></a><h5>
+<a name="id718093"></a>
+ <a href="lexer.html#spirit.lex.reference.lexer.the_lexertl__lexer_class_implementing_the_dynamic_model">The
lexertl::lexer Class Implementing the Dynamic Model</a>
- </h6>
-<a name="spirit.lex.reference.lexer.the_lexertl__actor_lexer_class_implementing_the_dynamic_model"></a><h6>
-<a name="id907038"></a>
- <a class="link" href="lexer.html#spirit.lex.reference.lexer.the_lexertl__actor_lexer_class_implementing_the_dynamic_model">The
+ </h5>
+<a name="spirit.lex.reference.lexer.the_lexertl__actor_lexer_class_implementing_the_dynamic_model"></a><h5>
+<a name="id718121"></a>
+ <a href="lexer.html#spirit.lex.reference.lexer.the_lexertl__actor_lexer_class_implementing_the_dynamic_model">The
lexertl::actor_lexer Class Implementing the Dynamic Model</a>
- </h6>
-<a name="spirit.lex.reference.lexer.the_lexertl__static_lexer_class_implementing_the_static_model"></a><h6>
-<a name="id907051"></a>
- <a class="link" href="lexer.html#spirit.lex.reference.lexer.the_lexertl__static_lexer_class_implementing_the_static_model">The
+ </h5>
+<a name="spirit.lex.reference.lexer.the_lexertl__static_lexer_class_implementing_the_static_model"></a><h5>
+<a name="id718149"></a>
+ <a href="lexer.html#spirit.lex.reference.lexer.the_lexertl__static_lexer_class_implementing_the_static_model">The
lexertl::static_lexer Class Implementing the Static Model</a>
- </h6>
-<a name="spirit.lex.reference.lexer.the_lexertl__static_actor_lexer_class_implementing_the_static_model"></a><h6>
-<a name="id907064"></a>
- <a class="link" href="lexer.html#spirit.lex.reference.lexer.the_lexertl__static_actor_lexer_class_implementing_the_static_model">The
+ </h5>
+<a name="spirit.lex.reference.lexer.the_lexertl__static_actor_lexer_class_implementing_the_static_model"></a><h5>
+<a name="id718176"></a>
+ <a href="lexer.html#spirit.lex.reference.lexer.the_lexertl__static_actor_lexer_class_implementing_the_static_model">The
lexertl::static_actor_lexer Class Implementing the Static Model</a>
- </h6>
+ </h5>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
Modified: trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,12 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Lexer Concepts</title>
+<title> Lexer Concepts</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="../reference.html" title="Reference">
+<link rel="up" href="../reference.html" title=" Reference">
+<link rel="previous" href="../reference.html" title=" Reference">
<link rel="next" href="lexer_concepts/lexer.html" title="Lexer">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,10 +22,13 @@
<div class="spirit-nav">
<a accesskey="p" href="../reference.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="lexer_concepts/lexer.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Lexer Concepts">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.reference.lexer_concepts"></a><a class="link" href="lexer_concepts.html" title="Lexer Concepts"> Lexer Concepts</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.lex.reference.lexer_concepts"></a> Lexer Concepts
+</h4></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section">Lexer</span></dt>
<dt><span class="section">PrimitiveLexer</span></dt>
Modified: trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/lexer.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/lexer.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/lexer.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Lexer</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../lexer_concepts.html" title="Lexer Concepts">
-<link rel="prev" href="../lexer_concepts.html" title="Lexer Concepts">
+<link rel="up" href="../lexer_concepts.html" title=" Lexer Concepts">
+<link rel="previous" href="../lexer_concepts.html" title=" Lexer Concepts">
<link rel="next" href="primitivelexer.html" title="PrimitiveLexer">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,56 +22,59 @@
<div class="spirit-nav">
<a accesskey="p" href="../lexer_concepts.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../lexer_concepts.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="primitivelexer.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Lexer">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.lex.reference.lexer_concepts.lexer"></a><a class="link" href="lexer.html" title="Lexer">Lexer</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.lex.reference.lexer_concepts.lexer"></a>Lexer
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.lex.reference.lexer_concepts.lexer.description"></a><h6>
-<a name="id902835"></a>
- <a class="link" href="lexer.html#spirit.lex.reference.lexer_concepts.lexer.description">Description</a>
+<a name="id713892"></a>
+ Description
</h6>
<p>
The <span class="emphasis"><em>Lexer</em></span> is the most fundamental concept. A Lexer
- has a member function, <code class="computeroutput"><span class="identifier">collect</span></code>,
- that accepts a token definition container <code class="computeroutput"><span class="identifier">Def</span></code>,
+ has a member function, <tt class="computeroutput"><span class="identifier">collect</span></tt>,
+ that accepts a token definition container <tt class="computeroutput"><span class="identifier">Def</span></tt>,
and a the name of the lexer state the token definitions of the lexer
component need to be added to (a string). It doesn't return anything
- (return type is <code class="computeroutput"><span class="keyword">void</span></code>). Each
+ (return type is <tt class="computeroutput"><span class="keyword">void</span></tt>). Each
Lexer can represent a specific pattern or algorithm, or it can be a more
complex lexer component formed as a composition of other Lexer's. Additionally,
- a Lexer exposes a member <code class="computeroutput"><span class="identifier">add_actions</span></code>,
- that accepts the token definition container <code class="computeroutput"><span class="identifier">Def</span></code>,
- while returning nothing (again, the returned type is <code class="computeroutput"><span class="keyword">void</span></code>).
+ a Lexer exposes a member <tt class="computeroutput"><span class="identifier">add_actions</span></tt>,
+ that accepts the token definition container <tt class="computeroutput"><span class="identifier">Def</span></tt>,
+ while returning nothing (again, the returned type is <tt class="computeroutput"><span class="keyword">void</span></tt>).
</p>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">l</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">l</span></tt></span></dt>
<dd><p>
- A <code class="computeroutput"><span class="identifier">Lexer</span></code>.
+ A <tt class="computeroutput"><span class="identifier">Lexer</span></tt>.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">L</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">L</span></tt></span></dt>
<dd><p>
- A <code class="computeroutput"><span class="identifier">Lexer</span></code> type.
+ A <tt class="computeroutput"><span class="identifier">Lexer</span></tt> type.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Def</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Def</span></tt></span></dt>
<dd><p>
A token definition conatiner type.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">State</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">State</span></tt></span></dt>
<dd><p>
A type used to represent lexer state names.
</p></dd>
</dl>
</div>
<a name="spirit.lex.reference.lexer_concepts.lexer.valid_expressions"></a><h6>
-<a name="id902997"></a>
- <a class="link" href="lexer.html#spirit.lex.reference.lexer_concepts.lexer.valid_expressions">Valid
+<a name="id714131"></a>
+ <a href="lexer.html#spirit.lex.reference.lexer_concepts.lexer.valid_expressions">Valid
Expressions</a>
</h6>
<p>
- In the expressions below, the behavior of the lexer component, <code class="computeroutput"><span class="identifier">l</span></code>, is left unspecified in the base
- <code class="computeroutput"><span class="identifier">Lexer</span></code> concept. These
+ In the expressions below, the behavior of the lexer component, <tt class="computeroutput"><span class="identifier">l</span></tt>, is left unspecified in the base
+ <tt class="computeroutput"><span class="identifier">Lexer</span></tt> concept. These
are specified in subsequent, more refined concepts and by the actual
models thereof.
</p>
@@ -85,66 +88,48 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Return type
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">l</span><span class="special">.</span><span class="identifier">collect</span><span class="special">(</span><span class="identifier">def</span><span class="special">,</span>
- <span class="identifier">state</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">l</span><span class="special">.</span><span class="identifier">collect</span><span class="special">(</span><span class="identifier">def</span><span class="special">,</span>
+ <span class="identifier">state</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Add all token definitions provided by this Lexer instance to
- the lexer state <code class="computeroutput"><span class="identifier">state</span></code>
- of the token definition container <code class="computeroutput"><span class="identifier">def</span></code>.
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">void</span></code>
- </p>
- </td>
+ the lexer state <tt class="computeroutput"><span class="identifier">state</span></tt>
+ of the token definition container <tt class="computeroutput"><span class="identifier">def</span></tt>.
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">void</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">l</span><span class="special">.</span><span class="identifier">add_actions</span><span class="special">(</span><span class="identifier">def</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">l</span><span class="special">.</span><span class="identifier">add_actions</span><span class="special">(</span><span class="identifier">def</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Add all semantic actions provided by this Lexer instance to the
- token definition container <code class="computeroutput"><span class="identifier">def</span></code>.
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">void</span></code>
- </p>
- </td>
+ token definition container <tt class="computeroutput"><span class="identifier">def</span></tt>.
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">void</span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.lex.reference.lexer_concepts.lexer.type_expressions"></a><h6>
-<a name="id903365"></a>
- <a class="link" href="lexer.html#spirit.lex.reference.lexer_concepts.lexer.type_expressions">Type
+<a name="id714429"></a>
+ <a href="lexer.html#spirit.lex.reference.lexer_concepts.lexer.type_expressions">Type
Expressions</a>
</h6>
<div class="informaltable"><table class="table">
@@ -153,61 +138,53 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_lexer</span><span class="special"><</span><span class="identifier">L</span><span class="special">>::</span><span class="identifier">type</span></code>
- </p>
- </td>
-<td>
- <p>
- Metafunction that evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
- if a certain type, <code class="computeroutput"><span class="identifier">L</span></code>
- is a Lexer, <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_lexer</span><span class="special"><</span><span class="identifier">L</span><span class="special">>::</span><span class="identifier">type</span></tt>
+ </p></td>
+<td><p>
+ Metafunction that evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
+ if a certain type, <tt class="computeroutput"><span class="identifier">L</span></tt>
+ is a Lexer, <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>
otherwise (See <a href="../../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
Boolean Constant</a>).
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.lex.reference.lexer_concepts.lexer.postcondition"></a><h6>
-<a name="id903502"></a>
- <a class="link" href="lexer.html#spirit.lex.reference.lexer_concepts.lexer.postcondition">Postcondition</a>
+<a name="id714616"></a>
+ Postcondition
</h6>
<p>
- Upon return from <code class="computeroutput"><span class="identifier">l</span><span class="special">.</span><span class="identifier">collect</span></code> the following post conditions
+ Upon return from <tt class="computeroutput"><span class="identifier">l</span><span class="special">.</span><span class="identifier">collect</span></tt> the following post conditions
should hold:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
- On return, <code class="computeroutput"><span class="identifier">def</span></code> holds
- all token definitions defined in the Lexer, <code class="computeroutput"><span class="identifier">l</span></code>.
- This includes all Lexer's contained inside <code class="computeroutput"><span class="identifier">l</span></code>.
+<div class="itemizedlist"><ul type="disc"><li>
+ On return, <tt class="computeroutput"><span class="identifier">def</span></tt> holds
+ all token definitions defined in the Lexer, <tt class="computeroutput"><span class="identifier">l</span></tt>.
+ This includes all Lexer's contained inside <tt class="computeroutput"><span class="identifier">l</span></tt>.
</li></ul></div>
<p>
- Upon return from <code class="computeroutput"><span class="identifier">l</span><span class="special">.</span><span class="identifier">add_actions</span></code> the following post conditions
+ Upon return from <tt class="computeroutput"><span class="identifier">l</span><span class="special">.</span><span class="identifier">add_actions</span></tt> the following post conditions
should hold:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
- On return, <code class="computeroutput"><span class="identifier">def</span></code> holds
+<div class="itemizedlist"><ul type="disc"><li>
+ On return, <tt class="computeroutput"><span class="identifier">def</span></tt> holds
all semantic actions correctly asociated with the corresponding token
- definitions as defined in the Lexer, <code class="computeroutput"><span class="identifier">l</span></code>.
+ definitions as defined in the Lexer, <tt class="computeroutput"><span class="identifier">l</span></tt>.
This includes all semantic actiosn defined by the Lexer's contained
- inside <code class="computeroutput"><span class="identifier">l</span></code>.
+ inside <tt class="computeroutput"><span class="identifier">l</span></tt>.
</li></ul></div>
<a name="spirit.lex.reference.lexer_concepts.lexer.models"></a><h6>
-<a name="id903610"></a>
- <a class="link" href="lexer.html#spirit.lex.reference.lexer_concepts.lexer.models">Models</a>
+<a name="id714786"></a>
+ Models
</h6>
<p>
All lexer components in <span class="emphasis"><em>Spirit.Lex</em></span> are models of
Modified: trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/narylexer.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/narylexer.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/narylexer.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,11 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>NaryLexer</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../lexer_concepts.html" title="Lexer Concepts">
-<link rel="prev" href="unarylexer.html" title="UnaryLexer">
-<link rel="next" href="../lex_basics.html" title="Basics">
+<link rel="up" href="../lexer_concepts.html" title=" Lexer Concepts">
+<link rel="previous" href="unarylexer.html" title="UnaryLexer">
+<link rel="next" href="../lex_basics.html" title=" Basics">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,54 +22,57 @@
<div class="spirit-nav">
<a accesskey="p" href="unarylexer.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../lexer_concepts.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../lex_basics.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="NaryLexer">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.lex.reference.lexer_concepts.narylexer"></a><a class="link" href="narylexer.html" title="NaryLexer">NaryLexer</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.lex.reference.lexer_concepts.narylexer"></a>NaryLexer
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.lex.reference.lexer_concepts.narylexer.description"></a><h6>
-<a name="id904464"></a>
- <a class="link" href="narylexer.html#spirit.lex.reference.lexer_concepts.narylexer.description">Description</a>
+<a name="id715996"></a>
+ Description
</h6>
<p>
<span class="emphasis"><em>NaryLexer</em></span> is a composite lexer component that has
one or more subjects. The NaryLexer allows its subjects to be treated
- in the same way as a single instance of a <a class="link" href="lexer.html" title="Lexer"><code class="computeroutput"><span class="identifier">Lexer</span></code></a> following the Composite
+ in the same way as a single instance of a Lexer following the Composite
Design Pattern.
</p>
<a name="spirit.lex.reference.lexer_concepts.narylexer.refinement_of"></a><h6>
-<a name="id904500"></a>
- <a class="link" href="narylexer.html#spirit.lex.reference.lexer_concepts.narylexer.refinement_of">Refinement
+<a name="id716052"></a>
+ <a href="narylexer.html#spirit.lex.reference.lexer_concepts.narylexer.refinement_of">Refinement
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="lexer.html" title="Lexer"><code class="computeroutput"><span class="identifier">Lexer</span></code></a>
+ Lexer
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">l</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">l</span></tt></span></dt>
<dd><p>
A NaryLexer.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">L</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">L</span></tt></span></dt>
<dd><p>
A NaryLexer type.
</p></dd>
</dl>
</div>
<a name="spirit.lex.reference.lexer_concepts.narylexer.valid_expressions"></a><h6>
-<a name="id904582"></a>
- <a class="link" href="narylexer.html#spirit.lex.reference.lexer_concepts.narylexer.valid_expressions">Valid
+<a name="id716158"></a>
+ <a href="narylexer.html#spirit.lex.reference.lexer_concepts.narylexer.valid_expressions">Valid
Expressions</a>
</h6>
<p>
- In addition to the requirements defined in <a class="link" href="lexer.html" title="Lexer"><code class="computeroutput"><span class="identifier">Lexer</span></code></a>, for any NaryLexer the
+ In addition to the requirements defined in Lexer, for any NaryLexer the
following must be met:
</p>
<div class="informaltable"><table class="table">
@@ -79,44 +82,32 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Return type
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">l</span><span class="special">.</span><span class="identifier">elements</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">l</span><span class="special">.</span><span class="identifier">elements</span></tt>
+ </p></td>
+<td><p>
The tuple of elements.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
A Boost.Fusion
- Sequence of <a class="link" href="lexer.html" title="Lexer"><code class="computeroutput"><span class="identifier">Lexer</span></code></a> types.
- </p>
- </td>
+ Sequence of Lexer types.
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.lex.reference.lexer_concepts.narylexer.type_expressions"></a><h6>
-<a name="id904706"></a>
- <a class="link" href="narylexer.html#spirit.lex.reference.lexer_concepts.narylexer.type_expressions">Type
+<a name="id716324"></a>
+ <a href="narylexer.html#spirit.lex.reference.lexer_concepts.narylexer.type_expressions">Type
Expressions</a>
</h6>
<div class="informaltable"><table class="table">
@@ -125,72 +116,60 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">l</span><span class="special">.</span><span class="identifier">elements_type</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">l</span><span class="special">.</span><span class="identifier">elements_type</span></tt>
+ </p></td>
+<td><p>
Elements tuple type.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_nary_lexer</span><span class="special"><</span><span class="identifier">L</span><span class="special">>::</span><span class="identifier">type</span></code>
- </p>
- </td>
-<td>
- <p>
- Metafunction that evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
- if a certain type, <code class="computeroutput"><span class="identifier">L</span></code>
- is a NaryLexer, <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_nary_lexer</span><span class="special"><</span><span class="identifier">L</span><span class="special">>::</span><span class="identifier">type</span></tt>
+ </p></td>
+<td><p>
+ Metafunction that evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
+ if a certain type, <tt class="computeroutput"><span class="identifier">L</span></tt>
+ is a NaryLexer, <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>
otherwise (See <a href="../../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
Boolean Constant</a>).
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.lex.reference.lexer_concepts.narylexer.invariants"></a><h6>
-<a name="id904878"></a>
- <a class="link" href="narylexer.html#spirit.lex.reference.lexer_concepts.narylexer.invariants">Invariants</a>
+<a name="id716550"></a>
+ Invariants
</h6>
<p>
- For each element, <code class="computeroutput"><span class="identifier">E</span></code>,
- in any NaryLexer, <code class="computeroutput"><span class="identifier">L</span></code>,
+ For each element, <tt class="computeroutput"><span class="identifier">E</span></tt>,
+ in any NaryLexer, <tt class="computeroutput"><span class="identifier">L</span></tt>,
the following invariant always holds:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
-<code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_lexer</span><span class="special"><</span><span class="identifier">E</span><span class="special">>::</span><span class="identifier">type</span></code> evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
+<div class="itemizedlist"><ul type="disc"><li>
+<tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_lexer</span><span class="special"><</span><span class="identifier">E</span><span class="special">>::</span><span class="identifier">type</span></tt> evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
</li></ul></div>
<a name="spirit.lex.reference.lexer_concepts.narylexer.models"></a><h6>
-<a name="id904963"></a>
- <a class="link" href="narylexer.html#spirit.lex.reference.lexer_concepts.narylexer.models">Models</a>
+<a name="id716676"></a>
+ Models
</h6>
<p>
The following lexer components conform to this model:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+<div class="itemizedlist"><ul type="disc"><li>
lexer sequence component
</li></ul></div>
<p>
- <span class="bold"><strong>FIXME</strong></span> Add more links to models of NaryLexer
+ <span class="bold"><b>FIXME</b></span> Add more links to models of NaryLexer
concept
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/primitivelexer.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/primitivelexer.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/primitivelexer.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>PrimitiveLexer</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../lexer_concepts.html" title="Lexer Concepts">
-<link rel="prev" href="lexer.html" title="Lexer">
+<link rel="up" href="../lexer_concepts.html" title=" Lexer Concepts">
+<link rel="previous" href="lexer.html" title="Lexer">
<link rel="next" href="unarylexer.html" title="UnaryLexer">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,35 +22,38 @@
<div class="spirit-nav">
<a accesskey="p" href="lexer.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../lexer_concepts.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="unarylexer.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="PrimitiveLexer">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.lex.reference.lexer_concepts.primitivelexer"></a><a class="link" href="primitivelexer.html" title="PrimitiveLexer">PrimitiveLexer</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.lex.reference.lexer_concepts.primitivelexer"></a>PrimitiveLexer
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.lex.reference.lexer_concepts.primitivelexer.description"></a><h6>
-<a name="id903647"></a>
- <a class="link" href="primitivelexer.html#spirit.lex.reference.lexer_concepts.primitivelexer.description">Description</a>
+<a name="id714845"></a>
+ Description
</h6>
<p>
<span class="emphasis"><em>PrimitiveLexer</em></span> is the most basic building block
that the client uses to build more complex lexer components.
</p>
<a name="spirit.lex.reference.lexer_concepts.primitivelexer.refinement_of"></a><h6>
-<a name="id903670"></a>
- <a class="link" href="primitivelexer.html#spirit.lex.reference.lexer_concepts.primitivelexer.refinement_of">Refinement
+<a name="id714882"></a>
+ <a href="primitivelexer.html#spirit.lex.reference.lexer_concepts.primitivelexer.refinement_of">Refinement
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="lexer.html" title="Lexer"><code class="computeroutput"><span class="identifier">Lexer</span></code></a>
+ Lexer
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.lex.reference.lexer_concepts.primitivelexer.type_expressions"></a><h6>
-<a name="id903703"></a>
- <a class="link" href="primitivelexer.html#spirit.lex.reference.lexer_concepts.primitivelexer.type_expressions">Type
+<a name="id714936"></a>
+ <a href="primitivelexer.html#spirit.lex.reference.lexer_concepts.primitivelexer.type_expressions">Type
Expressions</a>
</h6>
<div class="informaltable"><table class="table">
@@ -59,54 +62,46 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_primitive_lexer</span><span class="special"><</span><span class="identifier">L</span><span class="special">>::</span><span class="identifier">type</span></code>
- </p>
- </td>
-<td>
- <p>
- Metafunction that evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
- if a certain type, <code class="computeroutput"><span class="identifier">L</span></code>,
- is a PrimitiveLexer, <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_primitive_lexer</span><span class="special"><</span><span class="identifier">L</span><span class="special">>::</span><span class="identifier">type</span></tt>
+ </p></td>
+<td><p>
+ Metafunction that evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
+ if a certain type, <tt class="computeroutput"><span class="identifier">L</span></tt>,
+ is a PrimitiveLexer, <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>
otherwise (See <a href="../../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
Boolean Constant</a>).
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.lex.reference.lexer_concepts.primitivelexer.models"></a><h6>
-<a name="id903840"></a>
- <a class="link" href="primitivelexer.html#spirit.lex.reference.lexer_concepts.primitivelexer.models">Models</a>
+<a name="id715122"></a>
+ Models
</h6>
<p>
The following lexer components conform to this model:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
- character literals (i.e. <code class="computeroutput"><span class="char">'x'</span></code>),
- <code class="computeroutput"><span class="identifier">char_</span></code>,
+<div class="itemizedlist"><ul type="disc">
+<li>
+ character literals (i.e. <tt class="computeroutput"><span class="char">'x'</span></tt>),
+ <tt class="computeroutput"><span class="identifier">char_</span></tt>,
</li>
-<li class="listitem">
- string literals (<code class="computeroutput"><span class="string">"abc"</span></code>),
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><></span></code>,
- <code class="computeroutput"><span class="identifier">string</span></code>
+<li>
+ string literals (<tt class="computeroutput"><span class="string">"abc"</span></tt>),
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><></span></tt>,
+ <tt class="computeroutput"><span class="identifier">string</span></tt>
</li>
</ul></div>
<p>
- <span class="bold"><strong>FIXME</strong></span> Add more links to <span class="emphasis"><em>PrimitiveLexer</em></span>
+ <span class="bold"><b>FIXME</b></span> Add more links to <span class="emphasis"><em>PrimitiveLexer</em></span>
models here.
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/unarylexer.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/unarylexer.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/reference/lexer_concepts/unarylexer.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>UnaryLexer</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../lexer_concepts.html" title="Lexer Concepts">
-<link rel="prev" href="primitivelexer.html" title="PrimitiveLexer">
+<link rel="up" href="../lexer_concepts.html" title=" Lexer Concepts">
+<link rel="previous" href="primitivelexer.html" title="PrimitiveLexer">
<link rel="next" href="narylexer.html" title="NaryLexer">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,13 +22,16 @@
<div class="spirit-nav">
<a accesskey="p" href="primitivelexer.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../lexer_concepts.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="narylexer.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="UnaryLexer">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.lex.reference.lexer_concepts.unarylexer"></a><a class="link" href="unarylexer.html" title="UnaryLexer">UnaryLexer</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.lex.reference.lexer_concepts.unarylexer"></a>UnaryLexer
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.lex.reference.lexer_concepts.unarylexer.description"></a><h6>
-<a name="id903942"></a>
- <a class="link" href="unarylexer.html#spirit.lex.reference.lexer_concepts.unarylexer.description">Description</a>
+<a name="id715275"></a>
+ Description
</h6>
<p>
<span class="emphasis"><em>UnaryLexer</em></span> is a composite lexer component that has
@@ -36,39 +39,39 @@
following the Delegate Design Pattern.
</p>
<a name="spirit.lex.reference.lexer_concepts.unarylexer.refinement_of"></a><h6>
-<a name="id903967"></a>
- <a class="link" href="unarylexer.html#spirit.lex.reference.lexer_concepts.unarylexer.refinement_of">Refinement
+<a name="id715311"></a>
+ <a href="unarylexer.html#spirit.lex.reference.lexer_concepts.unarylexer.refinement_of">Refinement
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="lexer.html" title="Lexer"><code class="computeroutput"><span class="identifier">Lexer</span></code></a>
+ Lexer
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">l</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">l</span></tt></span></dt>
<dd><p>
A UnaryLexer.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">L</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">L</span></tt></span></dt>
<dd><p>
A UnaryLexer type.
</p></dd>
</dl>
</div>
<a name="spirit.lex.reference.lexer_concepts.unarylexer.valid_expressions"></a><h6>
-<a name="id904046"></a>
- <a class="link" href="unarylexer.html#spirit.lex.reference.lexer_concepts.unarylexer.valid_expressions">Valid
+<a name="id715419"></a>
+ <a href="unarylexer.html#spirit.lex.reference.lexer_concepts.unarylexer.valid_expressions">Valid
Expressions</a>
</h6>
<p>
- In addition to the requirements defined in <a class="link" href="lexer.html" title="Lexer"><code class="computeroutput"><span class="identifier">Lexer</span></code></a>, for any UnaryLexer the
+ In addition to the requirements defined in Lexer, for any UnaryLexer the
following must be met:
</p>
<div class="informaltable"><table class="table">
@@ -78,43 +81,31 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Return type
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">l</span><span class="special">.</span><span class="identifier">subject</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">l</span><span class="special">.</span><span class="identifier">subject</span></tt>
+ </p></td>
+<td><p>
Subject lexer component.
- </p>
- </td>
-<td>
- <p>
- <a class="link" href="lexer.html" title="Lexer"><code class="computeroutput"><span class="identifier">Lexer</span></code></a>
- </p>
- </td>
+ </p></td>
+<td><p>
+ Lexer
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.lex.reference.lexer_concepts.unarylexer.type_expressions"></a><h6>
-<a name="id904163"></a>
- <a class="link" href="unarylexer.html#spirit.lex.reference.lexer_concepts.unarylexer.type_expressions">Type
+<a name="id715575"></a>
+ <a href="unarylexer.html#spirit.lex.reference.lexer_concepts.unarylexer.type_expressions">Type
Expressions</a>
</h6>
<div class="informaltable"><table class="table">
@@ -123,71 +114,59 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">L</span><span class="special">::</span><span class="identifier">subject_type</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">L</span><span class="special">::</span><span class="identifier">subject_type</span></tt>
+ </p></td>
+<td><p>
The subject lexer component type.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_unary_lexer</span><span class="special"><</span><span class="identifier">L</span><span class="special">>::</span><span class="identifier">type</span></code>
- </p>
- </td>
-<td>
- <p>
- Metafunction that evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
- if a certain type, <code class="computeroutput"><span class="identifier">L</span></code>
- is a UnaryLexer, <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_unary_lexer</span><span class="special"><</span><span class="identifier">L</span><span class="special">>::</span><span class="identifier">type</span></tt>
+ </p></td>
+<td><p>
+ Metafunction that evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
+ if a certain type, <tt class="computeroutput"><span class="identifier">L</span></tt>
+ is a UnaryLexer, <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>
otherwise (See <a href="../../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
Boolean Constant</a>).
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.lex.reference.lexer_concepts.unarylexer.invariants"></a><h6>
-<a name="id904333"></a>
- <a class="link" href="unarylexer.html#spirit.lex.reference.lexer_concepts.unarylexer.invariants">Invariants</a>
+<a name="id715802"></a>
+ Invariants
</h6>
<p>
- For any UnaryLexer, <code class="computeroutput"><span class="identifier">L</span></code>,
+ For any UnaryLexer, <tt class="computeroutput"><span class="identifier">L</span></tt>,
the following invariant always holds:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
-<code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_lexer</span><span class="special"><</span><span class="identifier">L</span><span class="special">::</span><span class="identifier">subject_type</span><span class="special">>::</span><span class="identifier">type</span></code> evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
+<div class="itemizedlist"><ul type="disc"><li>
+<tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_lexer</span><span class="special"><</span><span class="identifier">L</span><span class="special">::</span><span class="identifier">subject_type</span><span class="special">>::</span><span class="identifier">type</span></tt> evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
</li></ul></div>
<a name="spirit.lex.reference.lexer_concepts.unarylexer.models"></a><h6>
-<a name="id904418"></a>
- <a class="link" href="unarylexer.html#spirit.lex.reference.lexer_concepts.unarylexer.models">Models</a>
+<a name="id715925"></a>
+ Models
</h6>
<p>
The following lexer components conform to this model:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+<div class="itemizedlist"><ul type="disc"><li>
action lexer component (allowing to attach semantic actions)
</li></ul></div>
<p>
- <span class="bold"><strong>FIXME</strong></span> Add more links to models of UnaryLexer
+ <span class="bold"><b>FIXME</b></span> Add more links to models of UnaryLexer
concept
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/lex/reference/primitives.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/reference/primitives.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/reference/primitives.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Token definition Primitives</title>
+<title> Token definition
+ Primitives</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="lex_basics.html" title="Basics">
-<link rel="next" href="primitives/char_tokendef.html" title="Tokens Matching Single Characters">
+<link rel="up" href="../reference.html" title=" Reference">
+<link rel="previous" href="lex_basics.html" title=" Basics">
+<link rel="next" href="primitives/char_tokendef.html" title=" Tokens
+ Matching Single Characters">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,28 +24,32 @@
<div class="spirit-nav">
<a accesskey="p" href="lex_basics.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="primitives/char_tokendef.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Token definition Primitives">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.reference.primitives"></a><a class="link" href="primitives.html" title="Token definition Primitives"> Token definition
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.lex.reference.primitives"></a><a href="primitives.html" title=" Token definition
+ Primitives"> Token definition
Primitives</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<div class="toc"><dl><dt><span class="section"><a href="primitives/char_tokendef.html"> Tokens
Matching Single Characters</a></span></dt></dl></div>
<p>
This module includes different primitives allowing you to create token
- definitions. It includes <code class="computeroutput"><span class="identifier">char_</span></code>,
- character literals, <code class="computeroutput"><span class="identifier">string</span></code>,
+ definitions. It includes <tt class="computeroutput"><span class="identifier">char_</span></tt>,
+ character literals, <tt class="computeroutput"><span class="identifier">string</span></tt>,
and string literals.
</p>
-<a name="spirit.lex.reference.primitives.module_headers"></a><h6>
-<a name="id905330"></a>
- <a class="link" href="primitives.html#spirit.lex.reference.primitives.module_headers">Module Headers</a>
- </h6>
+<a name="spirit.lex.reference.primitives.module_headers"></a><h5>
+<a name="id717214"></a>
+ Module Headers
+ </h5>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/lex/primitives.hpp>
</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_primitives</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/lex/reference/primitives/char_tokendef.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/reference/primitives/char_tokendef.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/reference/primitives/char_tokendef.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Tokens Matching Single Characters</title>
+<title> Tokens
+ Matching Single Characters</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../primitives.html" title="Token definition Primitives">
-<link rel="prev" href="../primitives.html" title="Token definition Primitives">
-<link rel="next" href="../lexer.html" title="Lexer Class">
+<link rel="up" href="../primitives.html" title=" Token definition
+ Primitives">
+<link rel="previous" href="../primitives.html" title=" Token definition
+ Primitives">
+<link rel="next" href="../lexer.html" title=" Lexer Class">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,97 +25,95 @@
<div class="spirit-nav">
<a accesskey="p" href="../primitives.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../primitives.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../lexer.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Tokens Matching Single Characters">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.lex.reference.primitives.char_tokendef"></a><a class="link" href="char_tokendef.html" title="Tokens Matching Single Characters"> Tokens
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.lex.reference.primitives.char_tokendef"></a><a href="char_tokendef.html" title=" Tokens
+ Matching Single Characters"> Tokens
Matching Single Characters</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.lex.reference.primitives.char_tokendef.description"></a><h6>
-<a name="id906510"></a>
- <a class="link" href="char_tokendef.html#spirit.lex.reference.primitives.char_tokendef.description">Description</a>
+<a name="id717347"></a>
+ Description
</h6>
<p>
The character based token definitions described in this section are:
</p>
<p>
- The <code class="computeroutput"><span class="identifier">char_</span></code> creates token
- definitions matching single characters. The <code class="computeroutput"><span class="identifier">char_</span></code>
- token definition is associated <code class="computeroutput"><span class="identifier">standard</span></code>
+ The <tt class="computeroutput"><span class="identifier">char_</span></tt> creates token
+ definitions matching single characters. The <tt class="computeroutput"><span class="identifier">char_</span></tt>
+ token definition is associated <tt class="computeroutput"><span class="identifier">standard</span></tt>
encoding namespace. This is needed when doing basic operations such as
forcing lower or upper case and dealing with character ranges.
</p>
<a name="spirit.lex.reference.primitives.char_tokendef.header"></a><h6>
-<a name="id906554"></a>
- <a class="link" href="char_tokendef.html#spirit.lex.reference.primitives.char_tokendef.header">Header</a>
+<a name="id717422"></a>
+ Header
</h6>
<a name="spirit.lex.reference.primitives.char_tokendef.module_headers"></a><h6>
-<a name="id906570"></a>
- <a class="link" href="char_tokendef.html#spirit.lex.reference.primitives.char_tokendef.module_headers">Module
+<a name="id717447"></a>
+ <a href="char_tokendef.html#spirit.lex.reference.primitives.char_tokendef.module_headers">Module
Headers</a>
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/lex/lexer/char_token_def.hpp>
</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_char_token_def</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.lex.reference.primitives.char_tokendef.namespace"></a><h6>
-<a name="id906646"></a>
- <a class="link" href="char_tokendef.html#spirit.lex.reference.primitives.char_tokendef.namespace">Namespace</a>
+<a name="id717563"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lit</span> <span class="comment">// alias:
- boost::spirit::lex::lit</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">char_</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lit</span> <span class="comment">// alias:
+ boost::spirit::lex::lit</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">char_</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
<a name="spirit.lex.reference.primitives.char_tokendef.model_of"></a><h6>
-<a name="id906750"></a>
- <a class="link" href="char_tokendef.html#spirit.lex.reference.primitives.char_tokendef.model_of">Model
+<a name="id717698"></a>
+ <a href="char_tokendef.html#spirit.lex.reference.primitives.char_tokendef.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../lexer_concepts/primitivelexer.html" title="PrimitiveLexer"><code class="computeroutput"><span class="identifier">PrimitiveLexer</span></code></a>
+ PrimitiveLexer
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">ch</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">ch</span></tt></span></dt>
<dd><p>
- Character-class specific character from <code class="computeroutput"><span class="identifier">standard</span></code>
+ Character-class specific character from <tt class="computeroutput"><span class="identifier">standard</span></tt>
character set.
</p></dd>
</dl>
</div>
<a name="spirit.lex.reference.primitives.char_tokendef.expression_semantics"></a><h6>
-<a name="id906817"></a>
- <a class="link" href="char_tokendef.html#spirit.lex.reference.primitives.char_tokendef.expression_semantics">Expression
+<a name="id717797"></a>
+ <a href="char_tokendef.html#spirit.lex.reference.primitives.char_tokendef.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../lexer_concepts/primitivelexer.html" title="PrimitiveLexer"><code class="computeroutput"><span class="identifier">PrimitiveLexer</span></code></a>.
+ is not defined in PrimitiveLexer.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -120,59 +121,43 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Create a token definition matching the character literal <code class="computeroutput"><span class="identifier">ch</span></code>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ch</span></tt>
+ </p></td>
+<td><p>
+ Create a token definition matching the character literal <tt class="computeroutput"><span class="identifier">ch</span></tt>.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Create a token definition matching the character literal <code class="computeroutput"><span class="identifier">ch</span></code>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Create a token definition matching the character literal <tt class="computeroutput"><span class="identifier">ch</span></tt>.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Create a token definition matching the character <code class="computeroutput"><span class="identifier">ch</span></code>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Create a token definition matching the character <tt class="computeroutput"><span class="identifier">ch</span></tt>.
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.lex.reference.primitives.char_tokendef.example"></a><h6>
-<a name="id906999"></a>
- <a class="link" href="char_tokendef.html#spirit.lex.reference.primitives.char_tokendef.example">Example</a>
+<a name="id718046"></a>
+ Example
</h6>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/lex/reference/token.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/reference/token.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/reference/token.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Token Class</title>
+<title> Token Class</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="lexer.html" title="Lexer Class">
-<link rel="next" href="tokendef.html" title="TokenDef Class">
+<link rel="up" href="../reference.html" title=" Reference">
+<link rel="previous" href="lexer.html" title=" Lexer Class">
+<link rel="next" href="tokendef.html" title=" TokenDef Class">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,9 +22,12 @@
<div class="spirit-nav">
<a accesskey="p" href="lexer.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tokendef.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Token Class"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.reference.token"></a><a class="link" href="token.html" title="Token Class"> Token Class</a>
-</h4></div></div></div></div>
+<div class="section" lang="en"><div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.lex.reference.token"></a> Token Class
+</h4></div></div>
+<div></div>
+</div></div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
Modified: trunk/libs/spirit/doc/html/spirit/lex/reference/tokendef.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/reference/tokendef.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/reference/tokendef.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>TokenDef Class</title>
+<title> TokenDef Class</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="token.html" title="Token Class">
-<link rel="next" href="../../support.html" title="Supporting libraries">
+<link rel="up" href="../reference.html" title=" Reference">
+<link rel="previous" href="token.html" title=" Token Class">
+<link rel="next" href="../../advanced.html" title="Advanced">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -20,11 +20,14 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="token.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../support.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="token.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../advanced.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="TokenDef Class"><div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.reference.tokendef"></a><a class="link" href="tokendef.html" title="TokenDef Class"> TokenDef Class</a>
-</h4></div></div></div></div>
+<div class="section" lang="en"><div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.lex.reference.tokendef"></a> TokenDef Class
+</h4></div></div>
+<div></div>
+</div></div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright © 2001-2009 Joel
@@ -36,7 +39,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="token.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../support.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="token.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../advanced.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
</body>
</html>
Modified: trunk/libs/spirit/doc/html/spirit/lex/tutorials.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/tutorials.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/tutorials.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Spirit.Lex Tutorials</title>
+<title> Spirit.Lex
+ Tutorials</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../index.html" title="Spirit 2.1">
-<link rel="up" href="../lex.html" title="Lex - Writing Lexical Analyzers">
-<link rel="prev" href="lexer_introduction.html" title="Introduction to Spirit.Lex">
-<link rel="next" href="tutorials/lexer_tutorials.html" title="Spirit.Lex Tutorials Overview">
+<link rel="up" href="../lex.html" title=" Lex - Writing Lexical Analyzers">
+<link rel="previous" href="lexer_introduction.html" title=" Introduction to Spirit.Lex">
+<link rel="next" href="tutorials/lexer_tutorials.html" title=" Spirit.Lex
+ Tutorials Overview">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +24,15 @@
<div class="spirit-nav">
<a accesskey="p" href="lexer_introduction.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../lex.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tutorials/lexer_tutorials.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Spirit.Lex Tutorials">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.lex.tutorials"></a><a class="link" href="tutorials.html" title="Spirit.Lex Tutorials"> <span class="emphasis"><em>Spirit.Lex</em></span>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h3 class="title">
+<a name="spirit.lex.tutorials"></a><a href="tutorials.html" title=" Spirit.Lex
+ Tutorials"> <span class="emphasis"><em>Spirit.Lex</em></span>
Tutorials</a>
-</h3></div></div></div>
+</h3></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section"><a href="tutorials/lexer_tutorials.html"> <span class="emphasis"><em>Spirit.Lex</em></span>
Tutorials Overview</a></span></dt>
Modified: trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart1.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,17 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Quickstart 1 - A word counter using Spirit.Lex</title>
+<title> Quickstart
+ 1 - A word counter using Spirit.Lex</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../tutorials.html" title="Spirit.Lex Tutorials">
-<link rel="prev" href="lexer_tutorials.html" title="Spirit.Lex Tutorials Overview">
-<link rel="next" href="lexer_quickstart2.html" title="Quickstart 2 - A better word counter using Spirit.Lex">
+<link rel="up" href="../tutorials.html" title=" Spirit.Lex
+ Tutorials">
+<link rel="previous" href="lexer_tutorials.html" title=" Spirit.Lex
+ Tutorials Overview">
+<link rel="next" href="lexer_quickstart2.html" title=" Quickstart
+ 2 - A better word counter using Spirit.Lex">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +26,15 @@
<div class="spirit-nav">
<a accesskey="p" href="lexer_tutorials.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="lexer_quickstart2.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Quickstart 1 - A word counter using Spirit.Lex">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.tutorials.lexer_quickstart1"></a><a class="link" href="lexer_quickstart1.html" title="Quickstart 1 - A word counter using Spirit.Lex"> Quickstart
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.lex.tutorials.lexer_quickstart1"></a><a href="lexer_quickstart1.html" title=" Quickstart
+ 1 - A word counter using Spirit.Lex"> Quickstart
1 - A word counter using <span class="emphasis"><em>Spirit.Lex</em></span></a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<p>
<span class="emphasis"><em>Spirit.Lex</em></span> is very modular, which follows the general
building principle of the Spirit
@@ -35,20 +43,20 @@
but nevertheless can be used separately to build standalone lexical analyzers.
The first quick start example describes a standalone application: counting
characters, words, and lines in a file, very similar to what the well known
- Unix command <code class="computeroutput"><span class="identifier">wc</span></code> is doing
+ Unix command <tt class="computeroutput"><span class="identifier">wc</span></tt> is doing
(for the full example code see here: word_count_functor.cpp).
</p>
-<a name="spirit.lex.tutorials.lexer_quickstart1.prerequisites"></a><h6>
-<a name="id877554"></a>
- <a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.prerequisites">Prerequisites</a>
- </h6>
+<a name="spirit.lex.tutorials.lexer_quickstart1.prerequisites"></a><h5>
+<a name="id689332"></a>
+ Prerequisites
+ </h5>
<p>
- The only required <code class="computeroutput"><span class="preprocessor">#include</span></code>
+ The only required <tt class="computeroutput"><span class="preprocessor">#include</span></tt>
specific to <span class="emphasis"><em>Spirit.Lex</em></span> follows. It is a wrapper for
all necessary definitions to use <span class="emphasis"><em>Spirit.Lex</em></span> in a standalone
fashion, and on top of the Lexertl
- library. Additionally we <code class="computeroutput"><span class="preprocessor">#include</span></code>
- two of the Boost headers to define <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">()</span></code> and <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span><span class="special">()</span></code>.
+ library. Additionally we <tt class="computeroutput"><span class="preprocessor">#include</span></tt>
+ two of the Boost headers to define <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">()</span></tt> and <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span><span class="special">()</span></tt>.
</p>
<p>
</p>
@@ -77,11 +85,11 @@
</p>
<p>
</p>
-<a name="spirit.lex.tutorials.lexer_quickstart1.defining_tokens"></a><h6>
-<a name="id878197"></a>
- <a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.defining_tokens">Defining
+<a name="spirit.lex.tutorials.lexer_quickstart1.defining_tokens"></a><h5>
+<a name="id689686"></a>
+ <a href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.defining_tokens">Defining
Tokens</a>
- </h6>
+ </h5>
<p>
The most important step while creating a lexer using <span class="emphasis"><em>Spirit.Lex</em></span>
is to define the tokens to be recognized in the input sequence. This is
@@ -94,16 +102,16 @@
<p>
</p>
<p>
- The template <code class="computeroutput"><span class="identifier">word_count_tokens</span></code>
- defines three different tokens: <code class="computeroutput"><span class="identifier">ID_WORD</span></code>,
- <code class="computeroutput"><span class="identifier">ID_EOL</span></code>, and <code class="computeroutput"><span class="identifier">ID_CHAR</span></code>, representing a word (anything
+ The template <tt class="computeroutput"><span class="identifier">word_count_tokens</span></tt>
+ defines three different tokens: <tt class="computeroutput"><span class="identifier">ID_WORD</span></tt>,
+ <tt class="computeroutput"><span class="identifier">ID_EOL</span></tt>, and <tt class="computeroutput"><span class="identifier">ID_CHAR</span></tt>, representing a word (anything
except a whitespace or a newline), a newline character, and any other
- character (<code class="computeroutput"><span class="identifier">ID_WORD</span></code>,
- <code class="computeroutput"><span class="identifier">ID_EOL</span></code>, and <code class="computeroutput"><span class="identifier">ID_CHAR</span></code> are enum values representing
+ character (<tt class="computeroutput"><span class="identifier">ID_WORD</span></tt>,
+ <tt class="computeroutput"><span class="identifier">ID_EOL</span></tt>, and <tt class="computeroutput"><span class="identifier">ID_CHAR</span></tt> are enum values representing
the token ids, but could be anything else convertible to an integer as
well). The direct base class of any token definition class needs to be
- the template <code class="computeroutput"><span class="identifier">lexer_def</span><span class="special"><></span></code>, where the corresponding template
- parameter (here: <code class="computeroutput"><span class="identifier">lexertl_lexer</span><span class="special"><</span><span class="identifier">BaseIterator</span><span class="special">></span></code>) defines which underlying lexer engine
+ the template <tt class="computeroutput"><span class="identifier">lexer_def</span><span class="special"><></span></tt>, where the corresponding template
+ parameter (here: <tt class="computeroutput"><span class="identifier">lexertl_lexer</span><span class="special"><</span><span class="identifier">BaseIterator</span><span class="special">></span></tt>) defines which underlying lexer engine
has to be used to provide the required state machine functionality. In
this example we use the Lexertl based lexer engine as the underlying
lexer type.
@@ -132,18 +140,18 @@
</p>
<p>
</p>
-<a name="spirit.lex.tutorials.lexer_quickstart1.doing_the_useful_work"></a><h6>
-<a name="id878512"></a>
- <a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.doing_the_useful_work">Doing
+<a name="spirit.lex.tutorials.lexer_quickstart1.doing_the_useful_work"></a><h5>
+<a name="id690145"></a>
+ <a href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.doing_the_useful_work">Doing
the Useful Work</a>
- </h6>
+ </h5>
<p>
We will use a setup, where we want the <span class="emphasis"><em>Spirit.Lex</em></span>
library to invoke a given function after any of of the generated tokens
is recognized. For this reason we need to implement a functor taking at
least the generated token as an argument and returning a boolean value
allowing to stop the tokenization process. The default token type used
- in this example carries a token value of the type boost::iterator_range
<code class="computeroutput"><span class="special"><</span><span class="identifier">BaseIterator</span><span class="special">></span></code>
+ in this example carries a token value of the type boost::iterator_range<tt class="computeroutput"><span class="special"><</span><span class="identifier">BaseIterator</span><span class="special">></span></tt>
pointing to the matched range in the underlying input sequence.
</p>
<p>
@@ -190,25 +198,25 @@
</p>
<p>
All what is left is to write some boilerplate code helping to tie together
- the pieces described so far. To simplify this example we call the <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">tokenize</span><span class="special">()</span></code>
+ the pieces described so far. To simplify this example we call the <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">tokenize</span><span class="special">()</span></tt>
function implemented in <span class="emphasis"><em>Spirit.Lex</em></span> (for a more detailed
- description of this function see here: <span class="bold"><strong>FIXME</strong></span>),
+ description of this function see here: <span class="bold"><b>FIXME</b></span>),
even if we could have written a loop to iterate over the lexer iterators
- [<code class="computeroutput"><span class="identifier">first</span></code>, <code class="computeroutput"><span class="identifier">last</span></code>)
+ [<tt class="computeroutput"><span class="identifier">first</span></tt>, <tt class="computeroutput"><span class="identifier">last</span></tt>)
as well.
</p>
-<a name="spirit.lex.tutorials.lexer_quickstart1.pulling_everything_together"></a><h6>
-<a name="id879025"></a>
- <a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.pulling_everything_together">Pulling
+<a name="spirit.lex.tutorials.lexer_quickstart1.pulling_everything_together"></a><h5>
+<a name="id690863"></a>
+ <a href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.pulling_everything_together">Pulling
Everything Together</a>
- </h6>
+ </h5>
<p>
</p>
<p>
- The main function simply loads the given file into memory (as a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code>), instantiates an instance of
- the token definition template using the correct iterator type (<code class="computeroutput"><span class="identifier">word_count_tokens</span><span class="special"><</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*></span></code>), and finally calls <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">tokenize</span></code>, passing an instance of the
- counter function object. The return value of <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">tokenize</span><span class="special">()</span></code> will be <code class="computeroutput"><span class="keyword">true</span></code>
- if the whole input sequence has been successfully tokenized, and <code class="computeroutput"><span class="keyword">false</span></code> otherwise.
+ The main function simply loads the given file into memory (as a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></tt>), instantiates an instance of
+ the token definition template using the correct iterator type (<tt class="computeroutput"><span class="identifier">word_count_tokens</span><span class="special"><</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*></span></tt>), and finally calls <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">tokenize</span></tt>, passing an instance of the
+ counter function object. The return value of <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">tokenize</span><span class="special">()</span></tt> will be <tt class="computeroutput"><span class="keyword">true</span></tt>
+ if the whole input sequence has been successfully tokenized, and <tt class="computeroutput"><span class="keyword">false</span></tt> otherwise.
</p>
<p>
</p>
@@ -250,23 +258,23 @@
</p>
<p>
</p>
-<a name="spirit.lex.tutorials.lexer_quickstart1.comparing__emphasis_spirit_lex__emphasis__with__ulink_url__http___flex_sourceforge_net___flex__ulink_"></a><h6>
-<a name="id879866"></a>
- <a class="link" href="lexer_quickstart1.html#spirit.lex.tutorials.lexer_quickstart1.comparing__emphasis_spirit_lex__emphasis__with__ulink_url__http___flex_sourceforge_net___flex__ulink_">Comparing
+<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="id692013"></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>
- </h6>
+ </h5>
<p>
This example was deliberately chosen to be as much as possible similar
to the equivalent Flex
program (see below), which isn't too different from what has to be written
when using <span class="emphasis"><em>Spirit.Lex</em></span>.
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
Interestingly enough, performance comparisons of lexical analyzers written
using <span class="emphasis"><em>Spirit.Lex</em></span> with equivalent programs generated
by Flex show that both
Modified: trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart2.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,17 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Quickstart 2 - A better word counter using Spirit.Lex</title>
+<title> Quickstart
+ 2 - A better word counter using Spirit.Lex</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../tutorials.html" title="Spirit.Lex Tutorials">
-<link rel="prev" href="lexer_quickstart1.html" title="Quickstart 1 - A word counter using Spirit.Lex">
-<link rel="next" href="lexer_quickstart3.html" title="Quickstart 3 - Counting Words Using a Parser">
+<link rel="up" href="../tutorials.html" title=" Spirit.Lex
+ Tutorials">
+<link rel="previous" href="lexer_quickstart1.html" title=" Quickstart
+ 1 - A word counter using Spirit.Lex">
+<link rel="next" href="lexer_quickstart3.html" title=" Quickstart
+ 3 - Counting Words Using a Parser">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,14 +26,19 @@
<div class="spirit-nav">
<a accesskey="p" href="lexer_quickstart1.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="lexer_quickstart3.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Quickstart 2 - A better word counter using Spirit.Lex">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.tutorials.lexer_quickstart2"></a><a class="link" href="lexer_quickstart2.html" title="Quickstart 2 - A better word counter using Spirit.Lex"> Quickstart
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.lex.tutorials.lexer_quickstart2"></a><a href="lexer_quickstart2.html" title=" Quickstart
+ 2 - A better word counter using Spirit.Lex"> Quickstart
2 - A better word counter using <span class="emphasis"><em>Spirit.Lex</em></span></a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<p>
People familiar with Flex
- will probably complain about the example from the section <a class="link" href="lexer_quickstart1.html" title="Quickstart 1 - A word counter using Spirit.Lex">Lex
+ will probably complain about the example from the section <a href="lexer_quickstart1.html" title=" Quickstart
+ 1 - A word counter using Spirit.Lex">Lex
Quickstart 1 - A word counter using <span class="emphasis"><em>Spirit.Lex</em></span></a>
as being overly complex and not being written to leverage the possibilities
provided by this tool. In particular the previous example did not directly
@@ -39,12 +48,12 @@
counts textual elements, the purpose is to introduce new concepts and configuration
options along the lines (for the full example code see here: word_count_lexer.cpp).
</p>
-<a name="spirit.lex.tutorials.lexer_quickstart2.prerequisites"></a><h6>
-<a name="id882499"></a>
- <a class="link" href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.prerequisites">Prerequisites</a>
- </h6>
+<a name="spirit.lex.tutorials.lexer_quickstart2.prerequisites"></a><h5>
+<a name="id693072"></a>
+ Prerequisites
+ </h5>
<p>
- In addition to the only required <code class="computeroutput"><span class="preprocessor">#include</span></code>
+ In addition to the only required <tt class="computeroutput"><span class="preprocessor">#include</span></tt>
specific to <span class="emphasis"><em>Spirit.Lex</em></span> this example needs to include
a couple of header files from the Boost.Phoenix
library. This example shows how to attach functors to token definitions,
@@ -112,18 +121,18 @@
</p>
<p>
</p>
-<a name="spirit.lex.tutorials.lexer_quickstart2.semantic_actions_in__emphasis_spirit_lex__emphasis_"></a><h6>
-<a name="id883128"></a>
- <a class="link" href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.semantic_actions_in__emphasis_spirit_lex__emphasis_">Semantic
+<a name="spirit.lex.tutorials.lexer_quickstart2.semantic_actions_in__emphasis_spirit_lex__emphasis_"></a><h5>
+<a name="id693933"></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>
- </h6>
+ </h5>
<p>
<span class="emphasis"><em>Spirit.Lex</em></span> uses a very similar way of associating
actions with the token definitions (which should look familiar to anybody
knowlegdeable with Spirit
- as well): specifying the operations to execute inside of a pair of <code class="computeroutput"><span class="special">[]</span></code> brackets. In order to be able to attach
+ as well): specifying the operations to execute inside of a pair of <tt class="computeroutput"><span class="special">[]</span></tt> brackets. In order to be able to attach
semantic actions to token definitions for each of them there is defined
- an instance of a <code class="computeroutput"><span class="identifier">token_def</span><span class="special"><></span></code>.
+ an instance of a <tt class="computeroutput"><span class="identifier">token_def</span><span class="special"><></span></tt>.
</p>
<p>
</p>
@@ -160,7 +169,7 @@
<p>
</p>
<p>
- The semantics of the shown code is as follows. The code inside the <code class="computeroutput"><span class="special">[]</span></code> brackets will be executed whenever the
+ The semantics of the shown code is as follows. The code inside the <tt class="computeroutput"><span class="special">[]</span></tt> brackets will be executed whenever the
corresponding token has been matched by the lexical analyzer. This is very
similar to Flex, where
the action code associated with a token definition gets executed after
@@ -168,22 +177,24 @@
objects constructed using Boost.Phoenix,
but it is possible to insert any C++ function or function object as long
as it exposes the proper interface. For more details on please refer to
- the section <a class="link" href="../abstracts/lexer_semantic_actions.html" title="Lexer Semantic Actions">Lexer
+ the section <a href="../abstracts/lexer_semantic_actions.html" title=" Lexer
+ Semantic Actions">Lexer
Semantic Actions</a>.
</p>
-<a name="spirit.lex.tutorials.lexer_quickstart2.associating_token_definitions_with_the_lexer"></a><h6>
-<a name="id883760"></a>
- <a class="link" href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.associating_token_definitions_with_the_lexer">Associating
+<a name="spirit.lex.tutorials.lexer_quickstart2.associating_token_definitions_with_the_lexer"></a><h5>
+<a name="id694810"></a>
+ <a href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.associating_token_definitions_with_the_lexer">Associating
Token Definitions with the Lexer</a>
- </h6>
+ </h5>
<p>
- If you compare this code to the code from <a class="link" href="lexer_quickstart1.html" title="Quickstart 1 - A word counter using Spirit.Lex">Lex
+ If you compare this code to the code from <a href="lexer_quickstart1.html" title=" Quickstart
+ 1 - A word counter using Spirit.Lex">Lex
Quickstart 1 - A word counter using <span class="emphasis"><em>Spirit.Lex</em></span></a>
with regard to the way how token definitions are associated with the lexer,
you will notice a different syntax being used here. In the previous example
- we have been using the <code class="computeroutput"><span class="identifier">self</span><span class="special">.</span><span class="identifier">add</span><span class="special">()</span></code> style of the API, while we here directly
- assign the token definitions to <code class="computeroutput"><span class="identifier">self</span></code>,
- combining the different token definitions using the <code class="computeroutput"><span class="special">|</span></code>
+ we have been using the <tt class="computeroutput"><span class="identifier">self</span><span class="special">.</span><span class="identifier">add</span><span class="special">()</span></tt> style of the API, while we here directly
+ assign the token definitions to <tt class="computeroutput"><span class="identifier">self</span></tt>,
+ 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>
@@ -194,10 +205,10 @@
<p>
This way we have a very powerful and natural way of building the lexical
analyzer. If translated into English this may be read as: The lexical analyer
- will recognize ('<code class="computeroutput"><span class="special">=</span></code>') tokens
- as defined by any of ('<code class="computeroutput"><span class="special">|</span></code>')
- the token definitions <code class="computeroutput"><span class="identifier">word</span></code>,
- <code class="computeroutput"><span class="identifier">eol</span></code>, and <code class="computeroutput"><span class="identifier">any</span></code>.
+ will recognize ('<tt class="computeroutput"><span class="special">=</span></tt>') tokens
+ as defined by any of ('<tt class="computeroutput"><span class="special">|</span></tt>')
+ the token definitions <tt class="computeroutput"><span class="identifier">word</span></tt>,
+ <tt class="computeroutput"><span class="identifier">eol</span></tt>, and <tt class="computeroutput"><span class="identifier">any</span></tt>.
</p>
<p>
A second difference to the previous example is that we do not explicitly
@@ -205,13 +216,13 @@
to trigger some useful work has freed us from the need to define those.
To ensure every token gets assigned a id the <span class="emphasis"><em>Spirit.Lex</em></span>
library internally assigns unique numbers to the token definitions, starting
- with the constant defined by <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lex</span><span class="special">::</span><span class="identifier">min_token_id</span></code>.
+ with the constant defined by <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lex</span><span class="special">::</span><span class="identifier">min_token_id</span></tt>.
</p>
-<a name="spirit.lex.tutorials.lexer_quickstart2.pulling_everything_together"></a><h6>
-<a name="id884048"></a>
- <a class="link" href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.pulling_everything_together">Pulling
+<a name="spirit.lex.tutorials.lexer_quickstart2.pulling_everything_together"></a><h5>
+<a name="id695236"></a>
+ <a href="lexer_quickstart2.html#spirit.lex.tutorials.lexer_quickstart2.pulling_everything_together">Pulling
everything together</a>
- </h6>
+ </h5>
<p>
In order to execute the code defined above we still need to instantiate
an instance of the lexer type, feed it from some input sequence and create
@@ -226,22 +237,22 @@
<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 class="co" name="spirit4co" href="lexer_quickstart2.html#spirit4"><img src="../../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span> <span class="keyword">typedef</span>
+<span class="callout_bug"><a name="spirit4co" href="lexer_quickstart2.html#spirit4"><img src="../../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span> <span class="keyword">typedef</span>
<span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">token</span><span class="special"><</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*,</span> <span class="identifier">lex</span><span class="special">::</span><span class="identifier">omit</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">false_</span><span class="special">></span>
<span class="identifier">token_type</span><span class="special">;</span>
-<span class="callout_bug"><a class="co" name="spirit5co" href="lexer_quickstart2.html#spirit5"><img src="../../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a></span> <span class="keyword">typedef</span> <span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">actor_lexer</span><span class="special"><</span><span class="identifier">token_type</span><span class="special">></span> <span class="identifier">lexer_type</span><span class="special">;</span>
+<span class="callout_bug"><a name="spirit5co" href="lexer_quickstart2.html#spirit5"><img src="../../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a></span> <span class="keyword">typedef</span> <span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">actor_lexer</span><span class="special"><</span><span class="identifier">token_type</span><span class="special">></span> <span class="identifier">lexer_type</span><span class="special">;</span>
-<span class="callout_bug"><a class="co" name="spirit6co" href="lexer_quickstart2.html#spirit6"><img src="../../../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a></span> <span class="identifier">word_count_tokens</span><span class="special"><</span><span class="identifier">lexer_type</span><span class="special">></span> <span class="identifier">word_count_lexer</span><span class="special">;</span>
+<span class="callout_bug"><a name="spirit6co" href="lexer_quickstart2.html#spirit6"><img src="../../../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a></span> <span class="identifier">word_count_tokens</span><span class="special"><</span><span class="identifier">lexer_type</span><span class="special">></span> <span class="identifier">word_count_lexer</span><span class="special">;</span>
-<span class="callout_bug"><a class="co" name="spirit7co" href="lexer_quickstart2.html#spirit7"><img src="../../../../../../../doc/src/images/callouts/4.png" alt="4" border="0"></a></span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">str</span> <span class="special">(</span><span class="identifier">read_from_file</span><span class="special">(</span><span class="number">1</span> <span class="special">==</span> <span class="identifier">argc</span> <span class="special">?</span> <span class="string">"word_count.input"</span> <span class="special">:</span> <span class="identifier">argv</span><span class="special">[</span><span class="number">1</span><span class="special">]));</span>
+<span class="callout_bug"><a name="spirit7co" href="lexer_quickstart2.html#spirit7"><img src="../../../../../../../doc/src/images/callouts/4.png" alt="4" border="0"></a></span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">str</span> <span class="special">(</span><span class="identifier">read_from_file</span><span class="special">(</span><span class="number">1</span> <span class="special">==</span> <span class="identifier">argc</span> <span class="special">?</span> <span class="string">"word_count.input"</span> <span class="special">:</span> <span class="identifier">argv</span><span class="special">[</span><span class="number">1</span><span class="special">]));</span>
<span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">first</span> <span class="special">=</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">c_str</span><span class="special">();</span>
<span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">last</span> <span class="special">=</span> <span class="special">&</span><span class="identifier">first</span><span class="special">[</span><span class="identifier">str</span><span class="special">.</span><span class="identifier">size</span><span class="special">()];</span>
-<span class="callout_bug"><a class="co" name="spirit8co" href="lexer_quickstart2.html#spirit8"><img src="../../../../../../../doc/src/images/callouts/5.png" alt="5" border="0"></a></span> <span class="identifier">lexer_type</span><span class="special">::</span><span class="identifier">iterator_type</span> <span class="identifier">iter</span> <span class="special">=</span> <span class="identifier">word_count_lexer</span><span class="special">.</span><span class="identifier">begin</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="callout_bug"><a name="spirit8co" href="lexer_quickstart2.html#spirit8"><img src="../../../../../../../doc/src/images/callouts/5.png" alt="5" border="0"></a></span> <span class="identifier">lexer_type</span><span class="special">::</span><span class="identifier">iterator_type</span> <span class="identifier">iter</span> <span class="special">=</span> <span class="identifier">word_count_lexer</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">);</span>
<span class="identifier">lexer_type</span><span class="special">::</span><span class="identifier">iterator_type</span> <span class="identifier">end</span> <span class="special">=</span> <span class="identifier">word_count_lexer</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span>
-<span class="callout_bug"><a class="co" name="spirit9co" href="lexer_quickstart2.html#spirit9"><img src="../../../../../../../doc/src/images/callouts/6.png" alt="6" border="0"></a></span> <span class="keyword">while</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">token_is_valid</span><span class="special">(*</span><span class="identifier">iter</span><span class="special">))</span>
+<span class="callout_bug"><a name="spirit9co" href="lexer_quickstart2.html#spirit9"><img src="../../../../../../../doc/src/images/callouts/6.png" alt="6" border="0"></a></span> <span class="keyword">while</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">token_is_valid</span><span class="special">(*</span><span class="identifier">iter</span><span class="special">))</span>
<span class="special">++</span><span class="identifier">iter</span><span class="special">;</span>
<span class="keyword">if</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>
@@ -266,38 +277,44 @@
</p>
<div class="calloutlist"><table border="0" summary="Callout list">
<tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit4"></a> </p></td>
-<td valign="top" align="left"><p> Specifying <code class="computeroutput"><span class="identifier">omit</span></code> as the
+<td width="5%" valign="top" align="left">
+<a name="spirit4"></a> </td>
+<td valign="top" align="left"><p> Specifying <tt class="computeroutput"><span class="identifier">omit</span></tt> as the
token attribute type generates a token class not holding any token attribute
at all (not even the iterator range of the matched input sequence), therefore
optimizing the token, the lexer, and possibly the parser implementation
- as much as possible. Specifying <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>
+ as much as possible. Specifying <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>
as the 3rd template parameter generates a token type and an iterator,
both holding no lexer state, allowing for even more aggressive optimizations.
As a result the token instances contain the token ids as the only data
member. </p></td>
</tr>
<tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit5"></a> </p></td>
+<td width="5%" valign="top" align="left">
+<a name="spirit5"></a> </td>
<td valign="top" align="left"><p> This defines the lexer type to use </p></td>
</tr>
<tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit6"></a> </p></td>
+<td width="5%" valign="top" align="left">
+<a name="spirit6"></a> </td>
<td valign="top" align="left"><p> Create the lexer object instance
needed to invoke the lexical analysis </p></td>
</tr>
<tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit7"></a> </p></td>
+<td width="5%" valign="top" align="left">
+<a name="spirit7"></a> </td>
<td valign="top" align="left"><p> Read input from the given file,
tokenize all the input, while discarding all generated tokens </p></td>
</tr>
<tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit8"></a> </p></td>
+<td width="5%" valign="top" align="left">
+<a name="spirit8"></a> </td>
<td valign="top" align="left"><p> Create
a pair of iterators returning the sequence of generated tokens </p></td>
</tr>
<tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit9"></a> </p></td>
+<td width="5%" valign="top" align="left">
+<a name="spirit9"></a> </td>
<td valign="top" align="left"><p> Here we
simply iterate over all tokens, making sure to break the loop if an invalid
token gets returned from the lexer </p></td>
Modified: trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_quickstart3.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Quickstart 3 - Counting Words Using a Parser</title>
+<title> Quickstart
+ 3 - Counting Words Using a Parser</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../tutorials.html" title="Spirit.Lex Tutorials">
-<link rel="prev" href="lexer_quickstart2.html" title="Quickstart 2 - A better word counter using Spirit.Lex">
-<link rel="next" href="../abstracts.html" title="Abstracts">
+<link rel="up" href="../tutorials.html" title=" Spirit.Lex
+ Tutorials">
+<link rel="previous" href="lexer_quickstart2.html" title=" Quickstart
+ 2 - A better word counter using Spirit.Lex">
+<link rel="next" href="../abstracts.html" title=" Abstracts">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +25,15 @@
<div class="spirit-nav">
<a accesskey="p" href="lexer_quickstart2.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../abstracts.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Quickstart 3 - Counting Words Using a Parser">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.tutorials.lexer_quickstart3"></a><a class="link" href="lexer_quickstart3.html" title="Quickstart 3 - Counting Words Using a Parser"> Quickstart
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.lex.tutorials.lexer_quickstart3"></a><a href="lexer_quickstart3.html" title=" Quickstart
+ 3 - Counting Words Using a Parser"> Quickstart
3 - Counting Words Using a Parser</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<p>
The whole purpose of integrating <span class="emphasis"><em>Spirit.Lex</em></span> as part
of the Spirit library
@@ -39,7 +46,8 @@
usage of different lexical analyzer libraries. The utilization of iterators
seemed to be the right choice from this standpoint as well, mainly because
these can be used as an abstraction layer hiding implementation specifics
- of the used lexer library. The <a class="link" href="lexer_quickstart3.html#spirit.lex.flowcontrol" title="Figure 7. The common flow control implemented while parsing combined with lexical analysis">picture</a>
+ of the used lexer library. The <a href="lexer_quickstart3.html#spirit.lex.flowcontrol" title="Figure 7. The common flow control implemented while parsing
+ combined with lexical analysis">picture</a>
below shows the common flow control implemented while parsing combined
with lexical analysis.
</p>
@@ -48,15 +56,16 @@
<div class="figure">
<a name="spirit.lex.flowcontrol"></a><p class="title"><b>Figure 7. The common flow control implemented while parsing
combined with lexical analysis</b></p>
-<div class="figure-contents"><span class="inlinemediaobject"><img src="../../.././images/flowofcontrol.png" alt="The common flow control implemented while parsing combined with lexical analysis"></span></div>
+<span class="inlinemediaobject"><img src="./images/flowofcontrol.png" alt="The common flow control
+ implemented while parsing combined with lexical analysis"></span>
</div>
-<p><br class="figure-break">
+<p>
</p>
<p>
Another problem related to the integration of the lexical analyzer with
the parser was to find a way how the defined tokens syntactically could
be blended with the grammar definition syntax of Spirit.
- For tokens defined as instances of the <code class="computeroutput"><span class="identifier">token_def</span><span class="special"><></span></code> class the most natural way of integration
+ For tokens defined as instances of the <tt class="computeroutput"><span class="identifier">token_def</span><span class="special"><></span></tt> class the most natural way of integration
was to allow to directly use these as parser components. Semantically these
parser components succeed matching their input whenever the corresponding
token type has been matched by the lexer. This quick start example will
@@ -64,14 +73,14 @@
the numbers inside of semantic actions of a parser (for the full example
code see here: word_count.cpp).
</p>
-<a name="spirit.lex.tutorials.lexer_quickstart3.prerequisites"></a><h6>
-<a name="id885125"></a>
- <a class="link" href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.prerequisites">Prerequisites</a>
- </h6>
+<a name="spirit.lex.tutorials.lexer_quickstart3.prerequisites"></a><h5>
+<a name="id696702"></a>
+ Prerequisites
+ </h5>
<p>
This example uses two of the Spirit
library components: <span class="emphasis"><em>Spirit.Lex</em></span> and <span class="emphasis"><em>Spirit.Qi</em></span>,
- consequently we have to <code class="computeroutput"><span class="preprocessor">#include</span></code>
+ consequently we have to <tt class="computeroutput"><span class="preprocessor">#include</span></tt>
the corresponding header files. Again, we need to include a couple of header
files from the Boost.Phoenix
library. This example shows how to attach functors to parser components,
@@ -112,20 +121,22 @@
</p>
<p>
</p>
-<a name="spirit.lex.tutorials.lexer_quickstart3.defining_tokens"></a><h6>
-<a name="id885491"></a>
- <a class="link" href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.defining_tokens">Defining
+<a name="spirit.lex.tutorials.lexer_quickstart3.defining_tokens"></a><h5>
+<a name="id697221"></a>
+ <a href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.defining_tokens">Defining
Tokens</a>
- </h6>
+ </h5>
<p>
- If compared to the two previous quick start examples (<a class="link" href="lexer_quickstart1.html" title="Quickstart 1 - A word counter using Spirit.Lex">Lex
+ If compared to the two previous quick start examples (<a href="lexer_quickstart1.html" title=" Quickstart
+ 1 - A word counter using Spirit.Lex">Lex
Quickstart 1 - A word counter using <span class="emphasis"><em>Spirit.Lex</em></span></a>
- and <a class="link" href="lexer_quickstart2.html" title="Quickstart 2 - A better word counter using Spirit.Lex">Lex Quickstart
+ and <a href="lexer_quickstart2.html" title=" Quickstart
+ 2 - A better word counter using Spirit.Lex">Lex Quickstart
2 - A better word counter using <span class="emphasis"><em>Spirit.Lex</em></span></a>)
the token definition class for this example does not reveal any surprises.
However, it uses lexer token definition macros to simplify the composition
of the regular expressions, which will be described in more detail in the
- section <span class="bold"><strong>FIXME</strong></span>. Generally, any token definition
+ section <span class="bold"><b>FIXME</b></span>. Generally, any token definition
is usable without modification from either a standalone lexical analyzer
or in conjunction with a parser.
</p>
@@ -165,29 +176,29 @@
</p>
<p>
</p>
-<a name="spirit.lex.tutorials.lexer_quickstart3.using_token_definition_instances_as_parsers"></a><h6>
-<a name="id885843"></a>
- <a class="link" href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.using_token_definition_instances_as_parsers">Using
+<a name="spirit.lex.tutorials.lexer_quickstart3.using_token_definition_instances_as_parsers"></a><h5>
+<a name="id697716"></a>
+ <a href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.using_token_definition_instances_as_parsers">Using
Token Definition Instances as Parsers</a>
- </h6>
+ </h5>
<p>
While the integration of lexer and parser in the control flow is achieved
by using special iterators wrapping the lexical analyzer, we still need
a means of expressing in the grammar what tokens to match and where. The
token definition class above uses three different ways of defining a token:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
- Using an instance of a <code class="computeroutput"><span class="identifier">token_def</span><span class="special"><></span></code>, which is handy whenever you
+<div class="itemizedlist"><ul type="disc">
+<li>
+ Using an instance of a <tt class="computeroutput"><span class="identifier">token_def</span><span class="special"><></span></tt>, which is handy whenever you
need to specify a token attribute (for more information about lexer related
- attributes please look here: <a class="link" href="../abstracts/lexer_attributes.html" title="Lexer Attributes">Lexer
+ attributes please look here: <a href="../abstracts/lexer_attributes.html" title=" Lexer Attributes">Lexer
Attributes</a>).
</li>
-<li class="listitem">
+<li>
Using a single character as the token, in this case the character represents
itself as a token, where the token id is the ASCII character value.
</li>
-<li class="listitem">
+<li>
Using a regular expression represented as a string, where the token id
needs to be specified explicitly to make the token accessible from the
grammar level.
@@ -205,63 +216,47 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Token definition
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Parser integration
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">token_def</span><span class="special"><></span></code>
- </p>
- </td>
-<td>
- <p>
- The <code class="computeroutput"><span class="identifier">token_def</span><span class="special"><></span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">token_def</span><span class="special"><></span></tt>
+ </p></td>
+<td><p>
+ The <tt class="computeroutput"><span class="identifier">token_def</span><span class="special"><></span></tt>
instance is directly usable as a parser component. Parsing of this
component will succeed if the regular expression used to define
this has been matched successfully.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
single character
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
The single character is directly usable in the grammar. However,
- under certain circumstances it needs to be wrapped by a <code class="computeroutput"><span class="identifier">char_</span><span class="special">()</span></code>
+ under certain circumstances it needs to be wrapped by a <tt class="computeroutput"><span class="identifier">char_</span><span class="special">()</span></tt>
parser component. Parsing of this component will succeed if the
single character has been matched.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
explicit token id
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
To use an explicit token id in a <span class="emphasis"><em>Spirit.Qi</em></span>
- grammar you are required to wrap it with the special <code class="computeroutput"><span class="identifier">token</span><span class="special">()</span></code>
+ grammar you are required to wrap it with the special <tt class="computeroutput"><span class="identifier">token</span><span class="special">()</span></tt>
parser component. Parsing of this component will succeed if the
current token has the same token id as specified in the expression
- <code class="computeroutput"><span class="identifier">token</span><span class="special">(<</span><span class="identifier">id</span><span class="special">>)</span></code>.
- </p>
- </td>
+ <tt class="computeroutput"><span class="identifier">token</span><span class="special">(<</span><span class="identifier">id</span><span class="special">>)</span></tt>.
+ </p></td>
</tr>
</tbody>
</table></div>
@@ -301,36 +296,37 @@
<p>
</p>
<p>
- As already described (see: <a class="link" href="../../abstracts/attributes.html" title="Attributes">Attributes</a>),
+ As already described (see: Attributes),
the <span class="emphasis"><em>Spirit.Qi</em></span> parser library builds upon a set of
of fully attributed parser components. Consequently, all token definitions
support this attribute model as well. The most natural way of implementing
this was to use the token values as the attributes exposed by the parser
component corresponding to the token definition (you can read more about
- this topic here: <a class="link" href="../abstracts/lexer_primitives/lexer_token_values.html" title="About Tokens and Token Values">About
+ this topic here: <a href="../abstracts/lexer_primitives/lexer_token_values.html" title="
+ About Tokens and Token Values">About
Tokens and Token Values</a>). The example above takes advantage of the
- full integration of the token values as the <code class="computeroutput"><span class="identifier">token_def</span><span class="special"><></span></code>'s parser attributes: the <code class="computeroutput"><span class="identifier">word</span></code> token definition is declared as
- a <code class="computeroutput"><span class="identifier">token_def</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span></code>,
- making every instance of a <code class="computeroutput"><span class="identifier">word</span></code>
+ full integration of the token values as the <tt class="computeroutput"><span class="identifier">token_def</span><span class="special"><></span></tt>'s parser attributes: the <tt class="computeroutput"><span class="identifier">word</span></tt> token definition is declared as
+ a <tt class="computeroutput"><span class="identifier">token_def</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span></tt>,
+ making every instance of a <tt class="computeroutput"><span class="identifier">word</span></tt>
token carry the string representation of the matched input sequence as
- its value. The semantic action attached to <code class="computeroutput"><span class="identifier">tok</span><span class="special">.</span><span class="identifier">word</span></code>
- receives this string (represented by the <code class="computeroutput"><span class="identifier">_1</span></code>
+ its value. The semantic action attached to <tt class="computeroutput"><span class="identifier">tok</span><span class="special">.</span><span class="identifier">word</span></tt>
+ receives this string (represented by the <tt class="computeroutput"><span class="identifier">_1</span></tt>
placeholder) and uses it to calculate the number of matched characters:
- <code class="computeroutput"><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">size</span><span class="special">(</span><span class="identifier">_1</span><span class="special">)</span></code>.
+ <tt class="computeroutput"><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">size</span><span class="special">(</span><span class="identifier">_1</span><span class="special">)</span></tt>.
</p>
-<a name="spirit.lex.tutorials.lexer_quickstart3.pulling_everything_together"></a><h6>
-<a name="id886742"></a>
- <a class="link" href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.pulling_everything_together">Pulling
+<a name="spirit.lex.tutorials.lexer_quickstart3.pulling_everything_together"></a><h5>
+<a name="id698953"></a>
+ <a href="lexer_quickstart3.html#spirit.lex.tutorials.lexer_quickstart3.pulling_everything_together">Pulling
Everything Together</a>
- </h6>
+ </h5>
<p>
The main function needs to implement a bit more logic now as we have to
initialize and start not only the lexical analysis but the parsing process
- as well. The three type definitions (<code class="computeroutput"><span class="keyword">typedef</span></code>
+ as well. The three type definitions (<tt class="computeroutput"><span class="keyword">typedef</span></tt>
statements) simplify the creation of the lexical analyzer and the grammar.
After reading the contents of the given file into memory it calls the function
- <code class="computeroutput"><span class="identifier">tokenize_and_parse</span><span class="special">()</span></code>
+ <tt class="computeroutput"><span class="identifier">tokenize_and_parse</span><span class="special">()</span></tt>
to initialize the lexical analysis and parsing processes.
</p>
<p>
@@ -340,13 +336,13 @@
</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>
<span class="special">{</span>
-<span class="callout_bug"><a class="co" name="spirit10co" href="lexer_quickstart3.html#spirit10"><img src="../../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span> <span class="keyword">typedef</span> <span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">token</span><span class="special"><</span>
+<span class="callout_bug"><a name="spirit10co" href="lexer_quickstart3.html#spirit10"><img src="../../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span> <span class="keyword">typedef</span> <span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">token</span><span class="special"><</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>
<span class="special">></span> <span class="identifier">token_type</span><span class="special">;</span>
-<span class="callout_bug"><a class="co" name="spirit11co" href="lexer_quickstart3.html#spirit11"><img src="../../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a></span> <span class="keyword">typedef</span> <span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">lexer</span><span class="special"><</span><span class="identifier">token_type</span><span class="special">></span> <span class="identifier">lexer_type</span><span class="special">;</span>
+<span class="callout_bug"><a name="spirit11co" href="lexer_quickstart3.html#spirit11"><img src="../../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a></span> <span class="keyword">typedef</span> <span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">lexer</span><span class="special"><</span><span class="identifier">token_type</span><span class="special">></span> <span class="identifier">lexer_type</span><span class="special">;</span>
-<span class="callout_bug"><a class="co" name="spirit12co" href="lexer_quickstart3.html#spirit12"><img src="../../../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a></span> <span class="keyword">typedef</span> <span class="identifier">word_count_tokens</span><span class="special"><</span><span class="identifier">lexer_type</span><span class="special">>::</span><span class="identifier">iterator_type</span> <span class="identifier">iterator_type</span><span class="special">;</span>
+<span class="callout_bug"><a name="spirit12co" href="lexer_quickstart3.html#spirit12"><img src="../../../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a></span> <span class="keyword">typedef</span> <span class="identifier">word_count_tokens</span><span class="special"><</span><span class="identifier">lexer_type</span><span class="special">>::</span><span class="identifier">iterator_type</span> <span class="identifier">iterator_type</span><span class="special">;</span>
<span class="comment">// now we use the types defined above to create the lexer and grammar
</span> <span class="comment">// object instances needed to invoke the parsing process
@@ -358,7 +354,7 @@
<span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">first</span> <span class="special">=</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">c_str</span><span class="special">();</span>
<span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">last</span> <span class="special">=</span> <span class="special">&</span><span class="identifier">first</span><span class="special">[</span><span class="identifier">str</span><span class="special">.</span><span class="identifier">size</span><span class="special">()];</span>
-<span class="callout_bug"><a class="co" name="spirit13co" href="lexer_quickstart3.html#spirit13"><img src="../../../../../../../doc/src/images/callouts/4.png" alt="4" border="0"></a></span> <span class="keyword">bool</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">lex</span><span class="special">::</span><span class="identifier">tokenize_and_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="identifier">word_count</span><span class="special">,</span> <span class="identifier">g</span><span class="special">);</span>
+<span class="callout_bug"><a name="spirit13co" href="lexer_quickstart3.html#spirit13"><img src="../../../../../../../doc/src/images/callouts/4.png" alt="4" border="0"></a></span> <span class="keyword">bool</span> <span class="identifier">r</span> <span class="special">=</span> <span class="identifier">lex</span><span class="special">::</span><span class="identifier">tokenize_and_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="identifier">word_count</span><span class="special">,</span> <span class="identifier">g</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="special">{</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"lines: "</span> <span class="special"><<</span> <span class="identifier">g</span><span class="special">.</span><span class="identifier">l</span> <span class="special"><<</span> <span class="string">", words: "</span> <span class="special"><<</span> <span class="identifier">g</span><span class="special">.</span><span class="identifier">w</span>
@@ -380,25 +376,29 @@
</p>
<div class="calloutlist"><table border="0" summary="Callout list">
<tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit10"></a> </p></td>
-<td valign="top" align="left"><p> Define the token type to be used: <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code>
+<td width="5%" valign="top" align="left">
+<a name="spirit10"></a> </td>
+<td valign="top" align="left"><p> Define the token type to be used: <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></tt>
is available as the type of the token attribute </p></td>
</tr>
<tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit11"></a> </p></td>
+<td width="5%" valign="top" align="left">
+<a name="spirit11"></a> </td>
<td valign="top" align="left"><p> Define the lexer type
to use implementing the state machine </p></td>
</tr>
<tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit12"></a> </p></td>
+<td width="5%" valign="top" align="left">
+<a name="spirit12"></a> </td>
<td valign="top" align="left"><p> Define the iterator type exposed
by the lexer type </p></td>
</tr>
<tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit13"></a> </p></td>
+<td width="5%" valign="top" align="left">
+<a name="spirit13"></a> </td>
<td valign="top" align="left"><p> Parsing is done based on the the token stream, not
- the character stream read from the input. The function <code class="computeroutput"><span class="identifier">tokenize_and_parse</span><span class="special">()</span></code>
- wraps the passed iterator range <code class="computeroutput"><span class="special">[</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">)</span></code>
+ the character stream read from the input. The function <tt class="computeroutput"><span class="identifier">tokenize_and_parse</span><span class="special">()</span></tt>
+ wraps the passed iterator range <tt class="computeroutput"><span class="special">[</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">)</span></tt>
by the lexical analyzer and uses its exposed iterators to parse the toke
stream. </p></td>
</tr>
Modified: trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_tutorials.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_tutorials.html (original)
+++ trunk/libs/spirit/doc/html/spirit/lex/tutorials/lexer_tutorials.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,17 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Spirit.Lex Tutorials Overview</title>
+<title> Spirit.Lex
+ Tutorials Overview</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../tutorials.html" title="Spirit.Lex Tutorials">
-<link rel="prev" href="../tutorials.html" title="Spirit.Lex Tutorials">
-<link rel="next" href="lexer_quickstart1.html" title="Quickstart 1 - A word counter using Spirit.Lex">
+<link rel="up" href="../tutorials.html" title=" Spirit.Lex
+ Tutorials">
+<link rel="previous" href="../tutorials.html" title=" Spirit.Lex
+ Tutorials">
+<link rel="next" href="lexer_quickstart1.html" title=" Quickstart
+ 1 - A word counter using Spirit.Lex">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +26,15 @@
<div class="spirit-nav">
<a accesskey="p" href="../tutorials.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="lexer_quickstart1.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Spirit.Lex Tutorials Overview">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.lex.tutorials.lexer_tutorials"></a><a class="link" href="lexer_tutorials.html" title="Spirit.Lex Tutorials Overview"> <span class="emphasis"><em>Spirit.Lex</em></span>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.lex.tutorials.lexer_tutorials"></a><a href="lexer_tutorials.html" title=" Spirit.Lex
+ Tutorials Overview"> <span class="emphasis"><em>Spirit.Lex</em></span>
Tutorials Overview</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<p>
The <span class="emphasis"><em>Spirit.Lex</em></span> library implements several components
on top of possibly different lexer generator libraries. It exposes a pair
@@ -45,12 +53,12 @@
generator library, all what needs to be implemented is a set of wrapper
objects exposing a well defined interface as described in this documentation.
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
For the sake of clarity all examples in this documentation assume <span class="emphasis"><em>Spirit.Lex</em></span>
to be used on top of Lexertl.
</p></td></tr>
@@ -63,23 +71,23 @@
list of features you can tweak to adjust the generated lexer instance to
the actual needs:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
Select and customize the token type to be generated by the lexer instance.
</li>
-<li class="listitem">
+<li>
Select and customize the token value types the generated token instances
will be able to hold.
</li>
-<li class="listitem">
+<li>
Select the iterator type of the underlying input stream, which will be
used as the source for the character stream to tokenize.
</li>
-<li class="listitem">
+<li>
Customize the iterator type returned by the lexer to enable debug support,
special handling of certain input sequences, etc.
</li>
-<li class="listitem">
+<li>
Select the <span class="emphasis"><em>dynamic</em></span> or the <span class="emphasis"><em>static</em></span>
runtime model for the lexical analyzer.
</li>
@@ -92,14 +100,17 @@
<p>
The series of tutorial examples of this section will guide you through
some common use cases helping to understand the big picture. The first
- two quick start examples (<a class="link" href="lexer_quickstart1.html" title="Quickstart 1 - A word counter using Spirit.Lex">Lex
+ two quick start examples (<a href="lexer_quickstart1.html" title=" Quickstart
+ 1 - A word counter using Spirit.Lex">Lex
Quickstart 1 - A word counter using <span class="emphasis"><em>Spirit.Lex</em></span></a>
- and <a class="link" href="lexer_quickstart2.html" title="Quickstart 2 - A better word counter using Spirit.Lex">Lex Quickstart
+ and <a href="lexer_quickstart2.html" title=" Quickstart
+ 2 - A better word counter using Spirit.Lex">Lex Quickstart
2 - A better word counter using <span class="emphasis"><em>Spirit.Lex</em></span></a>)
introduce the <span class="emphasis"><em>Spirit.Lex</em></span> library while building two
standalone applications, not being connected to or depending on any other
part of Spirit. The
- section <a class="link" href="lexer_quickstart3.html" title="Quickstart 3 - Counting Words Using a Parser">Lex Quickstart
+ section <a href="lexer_quickstart3.html" title=" Quickstart
+ 3 - Counting Words Using a Parser">Lex Quickstart
3 - Counting Words Using a Parser</a> demonstrates how to use a lexer
in conjunction with a parser (where obviously the parser is built using
<span class="emphasis"><em>Spirit.Qi</em></span>).
Modified: trunk/libs/spirit/doc/html/spirit/notes.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/notes.html (original)
+++ trunk/libs/spirit/doc/html/spirit/notes.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,12 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Notes</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../index.html" title="Spirit 2.1">
<link rel="up" href="../index.html" title="Spirit 2.1">
-<link rel="prev" href="faq.html" title="Spirit FAQ">
-<link rel="next" href="notes/porting_from_spirit_1_8_x.html" title="Porting from Spirit 1.8.x">
+<link rel="previous" href="faq.html" title=" Spirit FAQ">
+<link rel="next" href="notes/porting_from_spirit_1_8_x.html" title="Porting from
+ Spirit 1.8.x">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,10 +23,13 @@
<div class="spirit-nav">
<a accesskey="p" href="faq.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="notes/porting_from_spirit_1_8_x.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Notes">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.notes"></a><a class="link" href="notes.html" title="Notes">Notes</a>
-</h2></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h2 class="title" style="clear: both">
+<a name="spirit.notes"></a>Notes
+</h2></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section"><a href="notes/porting_from_spirit_1_8_x.html">Porting from
Spirit 1.8.x</a></span></dt>
Modified: trunk/libs/spirit/doc/html/spirit/notes/porting_from_spirit_1_8_x.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/notes/porting_from_spirit_1_8_x.html (original)
+++ trunk/libs/spirit/doc/html/spirit/notes/porting_from_spirit_1_8_x.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Porting from Spirit 1.8.x</title>
+<title>Porting from
+ Spirit 1.8.x</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../index.html" title="Spirit 2.1">
<link rel="up" href="../notes.html" title="Notes">
-<link rel="prev" href="../notes.html" title="Notes">
+<link rel="previous" href="../notes.html" title="Notes">
<link rel="next" href="style_guide.html" title="Style Guide">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,11 +23,15 @@
<div class="spirit-nav">
<a accesskey="p" href="../notes.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../notes.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="style_guide.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Porting from Spirit 1.8.x">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.notes.porting_from_spirit_1_8_x"></a><a class="link" href="porting_from_spirit_1_8_x.html" title="Porting from Spirit 1.8.x">Porting from
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h3 class="title">
+<a name="spirit.notes.porting_from_spirit_1_8_x"></a><a href="porting_from_spirit_1_8_x.html" title="Porting from
+ Spirit 1.8.x">Porting from
Spirit 1.8.x</a>
-</h3></div></div></div>
+</h3></div></div>
+<div></div>
+</div>
<p>
The current version of Spirit
is a complete rewrite of earlier versions (we refer to earlier versions as
@@ -40,17 +45,17 @@
on how to approach porting your older parsers to the current version of
<a href="http://spirit.sourceforge.net" target="_top">Spirit</a>.
</p>
-<a name="spirit.notes.porting_from_spirit_1_8_x.include_files"></a><h5>
-<a name="id918416"></a>
- <a class="link" href="porting_from_spirit_1_8_x.html#spirit.notes.porting_from_spirit_1_8_x.include_files">Include
+<a name="spirit.notes.porting_from_spirit_1_8_x.include_files"></a><h4>
+<a name="id749093"></a>
+ <a href="porting_from_spirit_1_8_x.html#spirit.notes.porting_from_spirit_1_8_x.include_files">Include
Files</a>
- </h5>
+ </h4>
<p>
The overall directory structure of the Spirit
- directories is described in the section <a class="link" href="../structure/include.html" title="Include">Include
- Structure</a> and the FAQ entry <a class="link" href="../faq.html#spirit.faq.i_m_very_confused_about_the_header_hell_in_my_boost_spirit_directory__what_s_all_this_about_">Header
+ directories is described in the section <a href="../structure/include.html" title="Include">Include
+ Structure</a> and the FAQ entry <a href="../faq.html#spirit.faq.i_m_very_confused_about_the_header_hell_in_my_boost_spirit_directory__what_s_all_this_about_">Header
Hell</a>. This should give you a good overview on how to find the needed
- header files for your new parsers. Moreover, each section in the <a class="link" href="../qi/reference.html" title="Reference">Qi
+ header files for your new parsers. Moreover, each section in the <a href="../qi/reference.html" title="Reference">Qi
Reference</a> lists the required include files needed for any particular
component.
</p>
@@ -83,165 +88,121 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Include file in <span class="emphasis"><em>Spirit.Classic</em></span>
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Include file in <span class="emphasis"><em>Spirit.Qi</em></span>
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">classic</span><span class="special">.</span><span class="identifier">hpp</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">qi</span><span class="special">.</span><span class="identifier">hpp</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">classic_actor</span><span class="special">.</span><span class="identifier">hpp</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">classic</span><span class="special">.</span><span class="identifier">hpp</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">qi</span><span class="special">.</span><span class="identifier">hpp</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">classic_actor</span><span class="special">.</span><span class="identifier">hpp</span></tt>
+ </p></td>
+<td><p>
none, use Boost.Phoenix
for writing semantic actions
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">classic_attribute</span><span class="special">.</span><span class="identifier">hpp</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">classic_attribute</span><span class="special">.</span><span class="identifier">hpp</span></tt>
+ </p></td>
+<td><p>
none, use local variables for rules instead of closures, the primitives
parsers now directly support lazy parametrization
- </p>
- </td>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">classic_core</span><span class="special">.</span><span class="identifier">hpp</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">qi_core</span><span class="special">.</span><span class="identifier">hpp</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">classic_core</span><span class="special">.</span><span class="identifier">hpp</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">qi_core</span><span class="special">.</span><span class="identifier">hpp</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">classic_debug</span><span class="special">.</span><span class="identifier">hpp</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">qi_debug</span><span class="special">.</span><span class="identifier">hpp</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">classic_dynamic</span><span class="special">.</span><span class="identifier">hpp</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">classic_debug</span><span class="special">.</span><span class="identifier">hpp</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">qi_debug</span><span class="special">.</span><span class="identifier">hpp</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">classic_dynamic</span><span class="special">.</span><span class="identifier">hpp</span></tt>
+ </p></td>
+<td><p>
none, use <span class="emphasis"><em>Spirit.Qi</em></span> predicates instead of if_p,
- while_p, for_p (included by <code class="computeroutput"><span class="identifier">qi_core</span><span class="special">.</span><span class="identifier">hpp</span></code>),
- the equivalent for lazy_p is now included by <code class="computeroutput"><span class="identifier">qi_auxiliary</span><span class="special">.</span><span class="identifier">hpp</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">classic_error_handling</span><span class="special">.</span><span class="identifier">hpp</span></code>
- </p>
- </td>
-<td>
- <p>
- none, included in <code class="computeroutput"><span class="identifier">qi_core</span><span class="special">.</span><span class="identifier">hpp</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">classic_meta</span><span class="special">.</span><span class="identifier">hpp</span></code>
- </p>
- </td>
-<td>
- <p>
+ while_p, for_p (included by <tt class="computeroutput"><span class="identifier">qi_core</span><span class="special">.</span><span class="identifier">hpp</span></tt>),
+ the equivalent for lazy_p is now included by <tt class="computeroutput"><span class="identifier">qi_auxiliary</span><span class="special">.</span><span class="identifier">hpp</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">classic_error_handling</span><span class="special">.</span><span class="identifier">hpp</span></tt>
+ </p></td>
+<td><p>
+ none, included in <tt class="computeroutput"><span class="identifier">qi_core</span><span class="special">.</span><span class="identifier">hpp</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">classic_meta</span><span class="special">.</span><span class="identifier">hpp</span></tt>
+ </p></td>
+<td><p>
none
- </p>
- </td>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">classic_symbols</span><span class="special">.</span><span class="identifier">hpp</span></tt>
+ </p></td>
+<td><p>
+ none, included in <tt class="computeroutput"><span class="identifier">qi_core</span><span class="special">.</span><span class="identifier">hpp</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">classic_symbols</span><span class="special">.</span><span class="identifier">hpp</span></code>
- </p>
- </td>
-<td>
- <p>
- none, included in <code class="computeroutput"><span class="identifier">qi_core</span><span class="special">.</span><span class="identifier">hpp</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">classic_utility</span><span class="special">.</span><span class="identifier">hpp</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">classic_utility</span><span class="special">.</span><span class="identifier">hpp</span></tt>
+ </p></td>
+<td><p>
none, not part of <span class="emphasis"><em>Spirit.Qi</em></span> anymore, these components
will be added over time to the Repository
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
-<a name="spirit.notes.porting_from_spirit_1_8_x.the_free_parse_functions"></a><h5>
-<a name="id919054"></a>
- <a class="link" href="porting_from_spirit_1_8_x.html#spirit.notes.porting_from_spirit_1_8_x.the_free_parse_functions">The
+<a name="spirit.notes.porting_from_spirit_1_8_x.the_free_parse_functions"></a><h4>
+<a name="id749962"></a>
+ <a href="porting_from_spirit_1_8_x.html#spirit.notes.porting_from_spirit_1_8_x.the_free_parse_functions">The
Free Parse Functions</a>
- </h5>
+ </h4>
<p>
The free parse functions (i.e. the main parser API) has been changed. This
includes the names of the free functions as well as their interface. In
<a href="../../../../../../libs/spirit/classic/index.html" target="_top"><span class="emphasis"><em>Spirit.Classic</em></span></a>
- all free functions were named <code class="computeroutput"><span class="identifier">parse</span></code>.
- In <span class="emphasis"><em>Spirit.Qi</em></span> they are are named either <code class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">parse</span></code>
- or <code class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">phrase_parse</span></code> depending on whether the parsing
- should be done using a skipper (<code class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">phrase_parse</span></code>)
- or not (<code class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">parse</span></code>). All free functions now return a
- simple <code class="computeroutput"><span class="keyword">bool</span></code>. A returned <code class="computeroutput"><span class="keyword">true</span></code> means success (i.e. the parser has matched)
- or <code class="computeroutput"><span class="keyword">false</span></code> (i.e. the parser either
- didn't match). This is equivalent to the former old <code class="computeroutput"><span class="identifier">parse_info</span></code>
- member <code class="computeroutput"><span class="identifier">hit</span></code>. <span class="emphasis"><em>Spirit.Qi</em></span>
- doesn't support tracking of the matched input length anymore. The old <code class="computeroutput"><span class="identifier">parse_info</span></code> member <code class="computeroutput"><span class="identifier">full</span></code>
- can be emulated by comparing the iterators after <code class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">parse</span></code>
+ all free functions were named <tt class="computeroutput"><span class="identifier">parse</span></tt>.
+ In <span class="emphasis"><em>Spirit.Qi</em></span> they are are named either <tt class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">parse</span></tt>
+ or <tt class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">phrase_parse</span></tt> depending on whether the parsing
+ should be done using a skipper (<tt class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">phrase_parse</span></tt>)
+ or not (<tt class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">parse</span></tt>). All free functions now return a
+ simple <tt class="computeroutput"><span class="keyword">bool</span></tt>. A returned <tt class="computeroutput"><span class="keyword">true</span></tt> means success (i.e. the parser has matched)
+ or <tt class="computeroutput"><span class="keyword">false</span></tt> (i.e. the parser either
+ didn't match). This is equivalent to the former old <tt class="computeroutput"><span class="identifier">parse_info</span></tt>
+ member <tt class="computeroutput"><span class="identifier">hit</span></tt>. <span class="emphasis"><em>Spirit.Qi</em></span>
+ doesn't support tracking of the matched input length anymore. The old <tt class="computeroutput"><span class="identifier">parse_info</span></tt> member <tt class="computeroutput"><span class="identifier">full</span></tt>
+ can be emulated by comparing the iterators after <tt class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">parse</span></tt>
returned.
</p>
<p>
@@ -404,56 +365,58 @@
<p>
</p>
<p>
- Note, how character parsers are in a separate namespace (here <code class="computeroutput"><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><span class="identifier">space</span></code>) as <span class="emphasis"><em>Spirit.Qi</em></span>
- now supports working with different character sets. See the section <a class="link" href="../qi/reference/basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
+ Note, how character parsers are in a separate namespace (here <tt class="computeroutput"><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><span class="identifier">space</span></tt>) as <span class="emphasis"><em>Spirit.Qi</em></span>
+ now supports working with different character sets. See the section <a href="../qi/reference/basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
Encoding Namespace</a> for more information.
</p>
-<a name="spirit.notes.porting_from_spirit_1_8_x.naming_conventions"></a><h5>
-<a name="id921266"></a>
- <a class="link" href="porting_from_spirit_1_8_x.html#spirit.notes.porting_from_spirit_1_8_x.naming_conventions">Naming
+<a name="spirit.notes.porting_from_spirit_1_8_x.naming_conventions"></a><h4>
+<a name="id752903"></a>
+ <a href="porting_from_spirit_1_8_x.html#spirit.notes.porting_from_spirit_1_8_x.naming_conventions">Naming
Conventions</a>
- </h5>
+ </h4>
<p>
In Spirit.Classic
all parser primitives have suffixes appended to their names, encoding their
- type: <code class="computeroutput"><span class="string">"_p"</span></code> for parsers,
- <code class="computeroutput"><span class="string">"_a"</span></code> for lazy actions,
- <code class="computeroutput"><span class="string">"_d"</span></code> for directives,
+ type: <tt class="computeroutput"><span class="string">"_p"</span></tt> for parsers,
+ <tt class="computeroutput"><span class="string">"_a"</span></tt> for lazy actions,
+ <tt class="computeroutput"><span class="string">"_d"</span></tt> for directives,
etc. In <span class="emphasis"><em>Spirit.Qi</em></span> we don't have anything similar. The
- only suffixes are single underscore letters <code class="computeroutput"><span class="string">"_"</span></code>
+ only suffixes are single underscore letters <tt class="computeroutput"><span class="string">"_"</span></tt>
applied where the name would otherwise conflict with a keyword or predefined
- name (such as <code class="computeroutput"><span class="identifier">int_</span></code> for the
+ name (such as <tt class="computeroutput"><span class="identifier">int_</span></tt> for the
integer parser). Overall, most, if not all primitive parsers and directives
- have been renamed. Please see the <a class="link" href="../qi/quick_reference.html" title="Quick Reference">Qi
+ have been renamed. Please see the <a href="../qi/quick_reference.html" title="Quick Reference">Qi
Quick Reference</a> for an overview on the names for the different available
parser primitives, directives and operators.
</p>
-<a name="spirit.notes.porting_from_spirit_1_8_x.parser_attributes"></a><h5>
-<a name="id923113"></a>
- <a class="link" href="porting_from_spirit_1_8_x.html#spirit.notes.porting_from_spirit_1_8_x.parser_attributes">Parser
+<a name="spirit.notes.porting_from_spirit_1_8_x.parser_attributes"></a><h4>
+<a name="id753018"></a>
+ <a href="porting_from_spirit_1_8_x.html#spirit.notes.porting_from_spirit_1_8_x.parser_attributes">Parser
Attributes</a>
- </h5>
+ </h4>
<p>
In Spirit.Classic
most of the parser primitives don't expose a specific attribute type. Most
parsers expose the pair of iterators pointing to the matched input sequence.
As in <span class="emphasis"><em>Spirit.Qi</em></span> all parsers expose a parser specific
- attribute type it introduces a special directive <a class="link" href="../qi/reference/directive/raw.html" title="Transduction Parsing (raw[])"><code class="computeroutput"><span class="identifier">raw</span></code></a><code class="computeroutput"><span class="special">[]</span></code>
+ attribute type it introduces a special directive <a href="../qi/reference/directive/raw.html" title=" Transduction
+ Parsing (raw[])"><tt class="computeroutput"><span class="identifier">raw</span></tt></a><tt class="computeroutput"><span class="special">[]</span></tt>
allowing to achieve a similar effect as in Spirit.Classic.
- The <a class="link" href="../qi/reference/directive/raw.html" title="Transduction Parsing (raw[])"><code class="computeroutput"><span class="identifier">raw</span></code></a><code class="computeroutput"><span class="special">[]</span></code> directive exposes the pair of iterators
+ The <a href="../qi/reference/directive/raw.html" title=" Transduction
+ Parsing (raw[])"><tt class="computeroutput"><span class="identifier">raw</span></tt></a><tt class="computeroutput"><span class="special">[]</span></tt> directive exposes the pair of iterators
pointing to the matching sequence of its embedded parser. Even if we very
much encourage you to rewrite your parsers to take advantage of the generated
parser specific attributes, sometimes it is helpful to get access to the
underlying matched input sequence.
</p>
-<a name="spirit.notes.porting_from_spirit_1_8_x.grammars_and_rules"></a><h5>
-<a name="id923182"></a>
- <a class="link" href="porting_from_spirit_1_8_x.html#spirit.notes.porting_from_spirit_1_8_x.grammars_and_rules">Grammars
+<a name="spirit.notes.porting_from_spirit_1_8_x.grammars_and_rules"></a><h4>
+<a name="id753135"></a>
+ <a href="porting_from_spirit_1_8_x.html#spirit.notes.porting_from_spirit_1_8_x.grammars_and_rules">Grammars
and Rules</a>
- </h5>
+ </h4>
<p>
- The <code class="computeroutput"><span class="identifier">grammar</span><span class="special"><></span></code>
- and <code class="computeroutput"><span class="identifier">rule</span><span class="special"><></span></code>
+ The <tt class="computeroutput"><span class="identifier">grammar</span><span class="special"><></span></tt>
+ and <tt class="computeroutput"><span class="identifier">rule</span><span class="special"><></span></tt>
types are of equal importance to <span class="emphasis"><em>Spirit.Qi</em></span> as they are
for Spirit.Classic.
Their main purpose is still the same: they allow to define non-terminals
@@ -586,21 +549,21 @@
Both versions look similarily enough, but we see several differences (we
will cover each of those differences in more detail below):
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
Neither the grammars nor the rules depend on a scanner type anymore, both
depend only on the underlying iterator type. That means the dreaded scanner
business is no issue anymore!
</li>
-<li class="listitem">
- Grammars have no embedded class <code class="computeroutput"><span class="identifier">definition</span></code>
+<li>
+ Grammars have no embedded class <tt class="computeroutput"><span class="identifier">definition</span></tt>
anymore
</li>
-<li class="listitem">
+<li>
Grammars and rules may have an explicit attribute type specified in their
definition
</li>
-<li class="listitem">
+<li>
Grammars do not have any explicit start rules anymore. Instead one of the
contained rules is used as a start rule by default.
</li>
@@ -620,9 +583,9 @@
All <span class="emphasis"><em>Spirit.Qi</em></span> parser components have well defined attribute
types. Grammars and rules are no exception. But since both need to be generic
enough to be usable for any parser their attribute type has to be explicitly
- specified. In the example above the <code class="computeroutput"><span class="identifier">roman</span></code>
- grammar and the rule <code class="computeroutput"><span class="identifier">first</span></code>
- both have an <code class="computeroutput"><span class="keyword">unsigned</span></code> attribute:
+ specified. In the example above the <tt class="computeroutput"><span class="identifier">roman</span></tt>
+ grammar and the rule <tt class="computeroutput"><span class="identifier">first</span></tt>
+ both have an <tt class="computeroutput"><span class="keyword">unsigned</span></tt> attribute:
</p>
<pre class="programlisting"><span class="comment">// grammar definition
</span><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
@@ -637,12 +600,12 @@
the rule as of its 'return value'. In fact the rule and the grammar both
'return' an unsigned value - the value they matched.
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
The function type notation allows to specify parameters as well. These
are interpreted as the types of inherited attributes the rule or grammar
expect to be passed during parsing. For more information please see the
@@ -651,8 +614,8 @@
</table></div>
<p>
If no attribute is desired none needs to be specified. The default attrribute
- type for both, grammars and rules, is <code class="computeroutput"><span class="identifier">unused_type</span></code>,
- which is a special placeholder type. Generally, using <code class="computeroutput"><span class="identifier">unused_type</span></code>
+ type for both, grammars and rules, is <tt class="computeroutput"><span class="identifier">unused_type</span></tt>,
+ which is a special placeholder type. Generally, using <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
as the attribute of a parser is interpreted as 'this parser has no attribute'.
This is mostly used for parsers applied to parts of the input not carrying
any significant information, rather being delimiters or structural elements
@@ -661,7 +624,7 @@
<p>
The last difference might seem to be rather cosmetic and insignificant. But
it turns out that not having to specify which rule in a grammar is the start
- rule (by returning it from the function <code class="computeroutput"><span class="identifier">start</span><span class="special">()</span></code>) also means that any rule in a grammar
+ rule (by returning it from the function <tt class="computeroutput"><span class="identifier">start</span><span class="special">()</span></tt>) also means that any rule in a grammar
can be directly used as the start rule. Nevertheless, the grammar base class
gets initialized with the rule it has to use as the start rule in case the
grammar instance is directly used as a parser.
Modified: trunk/libs/spirit/doc/html/spirit/notes/style_guide.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/notes/style_guide.html (original)
+++ trunk/libs/spirit/doc/html/spirit/notes/style_guide.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,12 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Style Guide</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../index.html" title="Spirit 2.1">
<link rel="up" href="../notes.html" title="Notes">
-<link rel="prev" href="porting_from_spirit_1_8_x.html" title="Porting from Spirit 1.8.x">
-<link rel="next" href="../repository.html" title="Spirit Repository">
+<link rel="previous" href="porting_from_spirit_1_8_x.html" title="Porting from
+ Spirit 1.8.x">
+<link rel="next" href="../repository.html" title=" Spirit Repository">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,10 +23,13 @@
<div class="spirit-nav">
<a accesskey="p" href="porting_from_spirit_1_8_x.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../notes.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../repository.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Style Guide">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.notes.style_guide"></a><a class="link" href="style_guide.html" title="Style Guide">Style Guide</a>
-</h3></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h3 class="title">
+<a name="spirit.notes.style_guide"></a>Style Guide
+</h3></div></div>
+<div></div>
+</div>
<p>
At some point, especially when there are lots of semantic actions attached
to various points, the grammar tends to be quite difficult to follow. In
@@ -38,22 +42,22 @@
Requirements and Guidelines</a> and is the combined work of Joel de Guzman,
Chris Uzdavinis, and Hartmut Kaiser.
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
Rule names use std C++ (Boost) convention. The rule name may be very long.
</li>
-<li class="listitem">
+<li>
The '=' is neatly indented 4 spaces below. Like in Boost, use spaces instead
of tabs.
</li>
-<li class="listitem">
+<li>
Breaking the operands into separate lines puts the semantic actions neatly
to the right.
</li>
-<li class="listitem">
+<li>
Semicolon at the last line terminates the rule.
</li>
-<li class="listitem">
+<li>
The adjacent parts of a sequence should be indented accordingly to have
all, what belongs to one level, at one indentation level.
</li>
@@ -66,20 +70,20 @@
<span class="special">>></span> <span class="identifier">etc</span>
<span class="special">;</span>
</pre>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
- Prefer literals in the grammar instead of identifiers. e.g. <code class="computeroutput"><span class="string">"program"</span></code> instead of <code class="computeroutput"><span class="identifier">PROGRAM</span></code>, <code class="computeroutput"><span class="char">'>='</span></code>
- instead of <code class="computeroutput"><span class="identifier">GTE</span></code> and <code class="computeroutput"><span class="char">'.'</span></code> instead of <code class="computeroutput"><span class="identifier">DOT</span></code>.
+<div class="itemizedlist"><ul type="disc">
+<li>
+ Prefer literals in the grammar instead of identifiers. e.g. <tt class="computeroutput"><span class="string">"program"</span></tt> instead of <tt class="computeroutput"><span class="identifier">PROGRAM</span></tt>, <tt class="computeroutput"><span class="char">'>='</span></tt>
+ instead of <tt class="computeroutput"><span class="identifier">GTE</span></tt> and <tt class="computeroutput"><span class="char">'.'</span></tt> instead of <tt class="computeroutput"><span class="identifier">DOT</span></tt>.
This makes it much easier to read. If this isn't possible (for instance
where the used tokens must be identified through integers) capitalized
identifiers should be used instead.
</li>
-<li class="listitem">
- Breaking the operands may not be needed for short expressions. e.g. <code class="computeroutput"><span class="special">*(</span><span class="char">','</span> <span class="special">>></span>
- <span class="identifier">file_identifier</span><span class="special">)</span></code>
+<li>
+ Breaking the operands may not be needed for short expressions. e.g. <tt class="computeroutput"><span class="special">*(</span><span class="char">','</span> <span class="special">>></span>
+ <span class="identifier">file_identifier</span><span class="special">)</span></tt>
as long as the line does not exceed 80 characters.
</li>
-<li class="listitem">
+<li>
If a sequence fits on one line, put spaces inside the parentheses to clearly
separate them from the rules.
</li>
@@ -94,7 +98,7 @@
<span class="special">>></span> <span class="char">';'</span>
<span class="special">;</span>
</pre>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+<div class="itemizedlist"><ul type="disc"><li>
Nesting directives: If a rule does not fit on one line (80 characters)
it should be continued on the next line intended by one level. The brackets
of directives, semantic expressions (using Phoenix or LL lambda expressions)
@@ -110,9 +114,9 @@
<span class="special">]</span>
<span class="special">;</span>
</pre>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+<div class="itemizedlist"><ul type="disc"><li>
Nesting unary operators (e.g.Kleene star): Unary rule operators (Kleene
- star, <code class="computeroutput"><span class="char">'!'</span></code>, <code class="computeroutput"><span class="char">'+'</span></code>
+ star, <tt class="computeroutput"><span class="char">'!'</span></tt>, <tt class="computeroutput"><span class="char">'+'</span></tt>
etc.) should be moved out one space before the corresponding indentation
level, if this rule has a body or a sequence after it, which does not fit
on on line. This makes the formatting more consistent and moves the rule
Modified: trunk/libs/spirit/doc/html/spirit/preface.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/preface.html (original)
+++ trunk/libs/spirit/doc/html/spirit/preface.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Preface</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../index.html" title="Spirit 2.1">
<link rel="up" href="../index.html" title="Spirit 2.1">
-<link rel="prev" href="../index.html" title="Spirit 2.1">
+<link rel="previous" href="../index.html" title="Spirit 2.1">
<link rel="next" href="what_s_new.html" title="What's New">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,32 +22,35 @@
<div class="spirit-nav">
<a accesskey="p" href="../index.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="what_s_new.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Preface">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.preface"></a><a class="link" href="preface.html" title="Preface">Preface</a>
-</h2></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h2 class="title" style="clear: both">
+<a name="spirit.preface"></a>Preface
+</h2></div></div>
+<div></div>
+</div>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <span class="emphasis"><em><span class="quote">“<span class="quote">Examples of designs that meet most of the criteria for
+ <span class="emphasis"><em>“<span class="quote">Examples of designs that meet most of the criteria for
"goodness" (easy to understand, flexible, efficient) are a recursive-descent
parser, which is traditional procedural code. Another example is the STL,
which is a generic library of containers and algorithms depending crucially
- on both traditional procedural code and on parametric polymorphism.</span>”</span></em></span>
- <span class="bold"><strong>--Bjarne Stroustrup</strong></span>
+ on both traditional procedural code and on parametric polymorphism.</span>”</em></span>
+ <span class="bold"><b>--Bjarne Stroustrup</b></span>
</p>
<p>
</p>
</blockquote></div>
-<a name="spirit.preface.history"></a><h4>
-<a name="id573848"></a>
- <a class="link" href="preface.html#spirit.preface.history">History</a>
- </h4>
-<a name="spirit.preface._emphasis_80s__emphasis_"></a><h4>
-<a name="id573861"></a>
- <a class="link" href="preface.html#spirit.preface._emphasis_80s__emphasis_"><span class="emphasis"><em>80s</em></span></a>
- </h4>
+<a name="spirit.preface.history"></a><h3>
+<a name="id355362"></a>
+ History
+ </h3>
+<a name="spirit.preface._emphasis_80s__emphasis_"></a><h3>
+<a name="id355375"></a>
+ 80s
+ </h3>
<p>
In the mid-80s, Joel wrote his first calculator in Pascal. Such an unforgettable
coding experience, he was amazed at how a mutually recursive set of functions
@@ -58,10 +61,10 @@
Pascal-like syntax diagrams and then a corresponding recursive-descent parser.
This process worked very well.
</p>
-<a name="spirit.preface._emphasis_90s__emphasis_"></a><h4>
-<a name="id573879"></a>
- <a class="link" href="preface.html#spirit.preface._emphasis_90s__emphasis_"><span class="emphasis"><em>90s</em></span></a>
- </h4>
+<a name="spirit.preface._emphasis_90s__emphasis_"></a><h3>
+<a name="id353807"></a>
+ 90s
+ </h3>
<p>
The arrival of the Internet and the World Wide Web magnified the need for parsing
a thousand-fold. At one point Joel had to write an HTML parser for a Web browser
@@ -95,11 +98,11 @@
objects and linking semantic actions on the fly. A very early text can be found
here: pre-Spirit.
</p>
-<a name="spirit.preface._emphasis_2001_to_2006__emphasis_"></a><h4>
-<a name="id573921"></a>
- <a class="link" href="preface.html#spirit.preface._emphasis_2001_to_2006__emphasis_"><span class="emphasis"><em>2001
+<a name="spirit.preface._emphasis_2001_to_2006__emphasis_"></a><h3>
+<a name="id353908"></a>
+ <a href="preface.html#spirit.preface._emphasis_2001_to_2006__emphasis_"><span class="emphasis"><em>2001
to 2006</em></span></a>
- </h4>
+ </h3>
<p>
Version 1.0 to 1.8 was a complete rewrite of the original Spirit parser using
expression templates and static polymorphism, inspired by the works of Todd
@@ -125,13 +128,13 @@
of domains. The Boost Libraries have become widely known as an industry standard
for design and implementation quality, robustness, and reusability.
</p>
-<a name="spirit.preface._emphasis_2007__emphasis_"></a><h4>
-<a name="id573956"></a>
- <a class="link" href="preface.html#spirit.preface._emphasis_2007__emphasis_"><span class="emphasis"><em>2007</em></span></a>
- </h4>
+<a name="spirit.preface._emphasis_2007__emphasis_"></a><h3>
+<a name="id355492"></a>
+ 2007
+ </h3>
<p>
Over the years, especially after Spirit was accepted into Boost, Spirit has
- served its purpose quite admirably. <span class="bold"><strong><span class="emphasis"><em>Classic-Spirit</em></span></strong></span>
+ served its purpose quite admirably. <span class="bold"><b><span class="emphasis"><em>Classic-Spirit</em></span></b></span>
(versions prior to 2.0) focused on transduction parsing, where the input string
is merely translated to an output string. Many parsers fall into the transduction
type. When the time came to add attributes to the parser library, it was done
@@ -162,10 +165,10 @@
its modularity and extensibility. Instead of giving you a sledgehammer, it
gives you the right ingredients to easily create a sledgehammer.
</p>
-<a name="spirit.preface.new_ideas__spirit_v2"></a><h4>
-<a name="id574030"></a>
- <a class="link" href="preface.html#spirit.preface.new_ideas__spirit_v2">New Ideas: Spirit V2</a>
- </h4>
+<a name="spirit.preface.new_ideas__spirit_v2"></a><h3>
+<a name="id355605"></a>
+ New Ideas: Spirit V2
+ </h3>
<p>
Just before the development of Spirit V2 began, Hartmut came across the StringTemplate library that is
a part of the ANTLR parser framework. <span class="emphasis"><em>attribute quote to http:<span class="emphasis"><em>/www.stringtemplate.org</em></span></em></span>
@@ -193,27 +196,27 @@
parser grammars. Again, Spirit's modular structure allowed us to reuse the
same underlying component library as for the parser and generator libraries.
</p>
-<a name="spirit.preface.how_to_use_this_manual"></a><h4>
-<a name="id574088"></a>
- <a class="link" href="preface.html#spirit.preface.how_to_use_this_manual">How to use this manual</a>
- </h4>
+<a name="spirit.preface.how_to_use_this_manual"></a><h3>
+<a name="id353108"></a>
+ How to use this manual
+ </h3>
<p>
- Each major section (there are 3: <a class="link" href="qi.html" title="Qi - Writing Parsers">Qi</a>, <a class="link" href="karma.html" title="Karma - Writing Generators">Karma</a>, and <a class="link" href="lex.html" title="Lex - Writing Lexical Analyzers">Lex</a>)
+ Each major section (there are 3: Qi, Karma, and Lex)
is roughly divided into 3 parts:
</p>
-<div class="orderedlist"><ol class="orderedlist" type="1">
-<li class="listitem">
+<div class="orderedlist"><ol type="1">
+<li>
Tutorials: A step by step guide with heavily annotated code. These are meant
to get the user acquainted with the library as quickly as possible. The objective
is to build the confidence of the user in using the library through abundant
examples and detailed instructions. Examples speak volumes and we have volumes
of examples!
</li>
-<li class="listitem">
+<li>
Abstracts: A high level summary of key topics. The objective is to give the
user a high level view of the library, the key concepts, background and theories.
</li>
-<li class="listitem">
+<li>
Reference: Detailed formal technical reference. We start with a quick reference
-- an easy to use table that maps into the reference proper. The reference
proper starts with C++ Concepts
@@ -225,130 +228,94 @@
icons precede some text to indicate:
</p>
<div class="table">
-<a name="id574141"></a><p class="title"><b>Table 1. Icons</b></p>
-<div class="table-contents"><table class="table" summary="Icons">
+<a name="id353658"></a><p class="title"><b>Table 1. Icons</b></p>
+<table class="table" summary="Icons">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Icon
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Name
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Meaning
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <span class="inlinemediaobject"><img src=".././images/note.png" alt="note"></span>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <span class="inlinemediaobject"><img src="./images/note.png" alt="note"></span>
+ </p></td>
+<td><p>
Note
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Generally useful information (an aside that doesn't fit in the flow of
the text)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <span class="inlinemediaobject"><img src=".././images/tip.png" alt="tip"></span>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <span class="inlinemediaobject"><img src="./images/tip.png" alt="tip"></span>
+ </p></td>
+<td><p>
Tip
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Suggestion on how to do something (especially something that not be obvious)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <span class="inlinemediaobject"><img src=".././images/important.png" alt="important"></span>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <span class="inlinemediaobject"><img src="./images/important.png" alt="important"></span>
+ </p></td>
+<td><p>
Important
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Important note on something to take particular notice of
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <span class="inlinemediaobject"><img src=".././images/caution.png" alt="caution"></span>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <span class="inlinemediaobject"><img src="./images/caution.png" alt="caution"></span>
+ </p></td>
+<td><p>
Caution
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Take special care with this - it may not be what you expect and may cause
bad results
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <span class="inlinemediaobject"><img src=".././images/alert.png" alt="alert"></span>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <span class="inlinemediaobject"><img src="./images/alert.png" alt="alert"></span>
+ </p></td>
+<td><p>
Danger
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
This is likely to cause serious trouble if ignored
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
-</table></div>
+</table>
</div>
-<br class="table-break"><p>
+<p>
This documentation is automatically generated by Boost QuickBook documentation
tool. QuickBook can be found in the <a href="http://www.boost.org/tools/index.html" target="_top">Boost
Tools</a>.
</p>
-<a name="spirit.preface.support"></a><h4>
-<a name="id574382"></a>
- <a class="link" href="preface.html#spirit.preface.support">Support</a>
- </h4>
+<a name="spirit.preface.support"></a><h3>
+<a name="id353156"></a>
+ Support
+ </h3>
<p>
Please direct all questions to Spirit's mailing list. You can subscribe to
the <a href="http://www.nabble.com/The-Spirit-Parser-Library-f3430.html" target="_top">Spirit
Modified: trunk/libs/spirit/doc/html/spirit/qi.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Qi - Writing Parsers</title>
+<title> Qi - Writing Parsers</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../index.html" title="Spirit 2.1">
<link rel="up" href="../index.html" title="Spirit 2.1">
-<link rel="prev" href="abstracts/customize/extract_from.html" title="Extract an Attribute Value to Generate Output (Karma)">
+<link rel="previous" href="abstracts/attributes/nonterminal_attributes.html" title="
+ Attributes of Rules and Grammars">
<link rel="next" href="qi/tutorials.html" title="Tutorials">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -20,12 +21,15 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="abstracts/customize/extract_from.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="qi/tutorials.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="abstracts/attributes/nonterminal_attributes.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="qi/tutorials.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h2 class="title" style="clear: both">
+<a name="spirit.qi"></a> Qi - Writing Parsers
+</h2></div></div>
+<div></div>
</div>
-<div class="section" title="Qi - Writing Parsers">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.qi"></a><a class="link" href="qi.html" title="Qi - Writing Parsers"> Qi - Writing Parsers</a>
-</h2></div></div></div>
<div class="toc"><dl>
<dt><span class="section">Tutorials</span></dt>
<dd><dl>
@@ -85,7 +89,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="abstracts/customize/extract_from.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="qi/tutorials.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="abstracts/attributes/nonterminal_attributes.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="qi/tutorials.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
</body>
</html>
Modified: trunk/libs/spirit/doc/html/spirit/qi/quick_reference.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/quick_reference.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/quick_reference.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,11 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Quick Reference</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../index.html" title="Spirit 2.1">
-<link rel="up" href="../qi.html" title="Qi - Writing Parsers">
-<link rel="prev" href="tutorials/mini_xml___error_handling.html" title="Mini XML - Error Handling">
+<link rel="up" href="../qi.html" title=" Qi - Writing Parsers">
+<link rel="previous" href="tutorials/mini_xml___error_handling.html" title="Mini
+ XML - Error Handling">
<link rel="next" href="quick_reference/common_notation.html" title="Common Notation">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,10 +23,13 @@
<div class="spirit-nav">
<a accesskey="p" href="tutorials/mini_xml___error_handling.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../qi.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="quick_reference/common_notation.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Quick Reference">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.qi.quick_reference"></a><a class="link" href="quick_reference.html" title="Quick Reference">Quick Reference</a>
-</h3></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h3 class="title">
+<a name="spirit.qi.quick_reference"></a>Quick Reference
+</h3></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section">Common Notation</span></dt>
<dt><span class="section"> Qi Parsers</span></dt>
Modified: trunk/libs/spirit/doc/html/spirit/qi/quick_reference/common_notation.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/quick_reference/common_notation.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/quick_reference/common_notation.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,11 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Common Notation</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../quick_reference.html" title="Quick Reference">
-<link rel="prev" href="../quick_reference.html" title="Quick Reference">
-<link rel="next" href="qi_parsers.html" title="Qi Parsers">
+<link rel="previous" href="../quick_reference.html" title="Quick Reference">
+<link rel="next" href="qi_parsers.html" title=" Qi Parsers">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,112 +22,115 @@
<div class="spirit-nav">
<a accesskey="p" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="qi_parsers.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Common Notation">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.quick_reference.common_notation"></a><a class="link" href="common_notation.html" title="Common Notation">Common Notation</a>
-</h4></div></div></div>
-<div class="variablelist" title="Notation">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.quick_reference.common_notation"></a>Common Notation
+</h4></div></div>
+<div></div>
+</div>
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">P</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">P</span></tt></span></dt>
<dd><p>
Parser type
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">p</span><span class="special">,</span> <span class="identifier">a</span><span class="special">,</span>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">p</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></code></span></dt>
+ <span class="identifier">c</span></tt></span></dt>
<dd><p>
Parser objects
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">,</span>
- <span class="identifier">C</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">,</span>
+ <span class="identifier">C</span></tt></span></dt>
<dd><p>
- Attribute types of parsers <code class="computeroutput"><span class="identifier">a</span></code>,
- <code class="computeroutput"><span class="identifier">b</span></code> and <code class="computeroutput"><span class="identifier">c</span></code>
+ Attribute types of parsers <tt class="computeroutput"><span class="identifier">a</span></tt>,
+ <tt class="computeroutput"><span class="identifier">b</span></tt> and <tt class="computeroutput"><span class="identifier">c</span></tt>
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">I</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">I</span></tt></span></dt>
<dd><p>
The iterator type used for parsing
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Unused</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Unused</span></tt></span></dt>
<dd><p>
- An <code class="computeroutput"><span class="identifier">unused_type</span></code>
+ An <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Context</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Context</span></tt></span></dt>
<dd><p>
- The enclosing rule's <code class="computeroutput"><span class="identifier">Context</span></code>
+ The enclosing rule's <tt class="computeroutput"><span class="identifier">Context</span></tt>
type
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">attrib</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">attrib</span></tt></span></dt>
<dd><p>
An attribute value
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Attrib</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Attrib</span></tt></span></dt>
<dd><p>
An attribute type
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">b</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">b</span></tt></span></dt>
<dd><p>
A boolean expression
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">fp</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">fp</span></tt></span></dt>
<dd><p>
- A (lazy parser) function with signature <code class="computeroutput"><span class="identifier">P</span><span class="special">(</span><span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">)</span></code>
+ A (lazy parser) function with signature <tt class="computeroutput"><span class="identifier">P</span><span class="special">(</span><span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">)</span></tt>
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">fa</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">fa</span></tt></span></dt>
<dd><p>
- A (semantic action) function with signature <code class="computeroutput"><span class="keyword">void</span><span class="special">(</span><span class="identifier">Attrib</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&)</span></code>. The third parameter is a boolean
- flag that can be set to false to force the parse to fail. Both <code class="computeroutput"><span class="identifier">Context</span></code> and the boolean flag are
+ A (semantic action) function with signature <tt class="computeroutput"><span class="keyword">void</span><span class="special">(</span><span class="identifier">Attrib</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&)</span></tt>. The third parameter is a boolean
+ flag that can be set to false to force the parse to fail. Both <tt class="computeroutput"><span class="identifier">Context</span></tt> and the boolean flag are
optional.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">first</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">first</span></tt></span></dt>
<dd><p>
An iterator pointing to the start of input
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">last</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">last</span></tt></span></dt>
<dd><p>
An iterator pointing to the end of input
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Ch</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Ch</span></tt></span></dt>
<dd><p>
Character-class specific character type (See Character Class Types)
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">ch</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">ch</span></tt></span></dt>
<dd><p>
Character-class specific character (See Character Class Types)
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">ch2</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">ch2</span></tt></span></dt>
<dd><p>
Character-class specific character (See Character Class Types)
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">charset</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">charset</span></tt></span></dt>
<dd><p>
Character-set specifier string (example: "a-z0-9")
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">str</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">str</span></tt></span></dt>
<dd><p>
Character-class specific string (See Character Class Types)
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Str</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Str</span></tt></span></dt>
<dd><p>
- Attribute of <code class="computeroutput"><span class="identifier">str</span></code>:
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></code>
- where <code class="computeroutput"><span class="identifier">T</span></code> is the underlying
- character type of <code class="computeroutput"><span class="identifier">str</span></code>
+ Attribute of <tt class="computeroutput"><span class="identifier">str</span></tt>:
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></tt>
+ where <tt class="computeroutput"><span class="identifier">T</span></tt> is the underlying
+ character type of <tt class="computeroutput"><span class="identifier">str</span></tt>
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">tuple</span><span class="special"><></span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">tuple</span><span class="special"><></span></tt></span></dt>
<dd><p>
Used as a placeholder for a fusion sequence
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">vector</span><span class="special"><></span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">vector</span><span class="special"><></span></tt></span></dt>
<dd><p>
Used as a placeholder for an STL container
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">variant</span><span class="special"><></span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">variant</span><span class="special"><></span></tt></span></dt>
<dd><p>
Used as a placeholder for a boost::variant
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">optional</span><span class="special"><></span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">optional</span><span class="special"><></span></tt></span></dt>
<dd><p>
Used as a placeholder for a boost::optional
</p></dd>
Modified: trunk/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/quick_reference/compound_attribute_rules.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Compound Attribute Rules</title>
+<title>Compound
+ Attribute Rules</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../quick_reference.html" title="Quick Reference">
-<link rel="prev" href="qi_parsers/action.html" title="Parser Semantic Actions">
+<link rel="previous" href="qi_parsers/action.html" title=" Parser
+ Semantic Actions">
<link rel="next" href="non_terminals.html" title="Non-terminals">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,26 +24,30 @@
<div class="spirit-nav">
<a accesskey="p" href="qi_parsers/action.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="non_terminals.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Compound Attribute Rules">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.quick_reference.compound_attribute_rules"></a><a class="link" href="compound_attribute_rules.html" title="Compound Attribute Rules">Compound
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.quick_reference.compound_attribute_rules"></a><a href="compound_attribute_rules.html" title="Compound
+ Attribute Rules">Compound
Attribute Rules</a>
-</h4></div></div></div>
-<a name="spirit.qi.quick_reference.compound_attribute_rules.notation"></a><h6>
-<a name="id640532"></a>
- <a class="link" href="compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Notation</a>
- </h6>
+</h4></div></div>
+<div></div>
+</div>
+<a name="spirit.qi.quick_reference.compound_attribute_rules.notation"></a><h5>
+<a name="id451529"></a>
+ Notation
+ </h5>
<p>
The notation we will use will be of the form:
</p>
<pre class="programlisting"><span class="identifier">a</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">B</span><span class="special">,</span> <span class="special">...</span> <span class="special">--></span> <span class="identifier">composite</span><span class="special">-</span><span class="identifier">expression</span><span class="special">:</span> <span class="identifier">composite</span><span class="special">-</span><span class="identifier">attribute</span>
</pre>
<p>
- <code class="computeroutput"><span class="identifier">a</span></code>, <code class="computeroutput"><span class="identifier">b</span></code>,
- etc. are the operands. <code class="computeroutput"><span class="identifier">A</span></code>,
- <code class="computeroutput"><span class="identifier">B</span></code>, etc. are the operand's
- attribute types. <code class="computeroutput"><span class="identifier">composite</span><span class="special">-</span><span class="identifier">expression</span></code>
- is the expression involving the operands and <code class="computeroutput"><span class="identifier">composite</span><span class="special">-</span><span class="identifier">attribute</span></code>
+ <tt class="computeroutput"><span class="identifier">a</span></tt>, <tt class="computeroutput"><span class="identifier">b</span></tt>,
+ etc. are the operands. <tt class="computeroutput"><span class="identifier">A</span></tt>,
+ <tt class="computeroutput"><span class="identifier">B</span></tt>, etc. are the operand's
+ attribute types. <tt class="computeroutput"><span class="identifier">composite</span><span class="special">-</span><span class="identifier">expression</span></tt>
+ is the expression involving the operands and <tt class="computeroutput"><span class="identifier">composite</span><span class="special">-</span><span class="identifier">attribute</span></tt>
is the resulting attribute type of the composite expression.
</p>
<p>
@@ -50,58 +56,52 @@
<pre class="programlisting"><span class="identifier">a</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">B</span> <span class="special">--></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">tuple</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>
- reads as: given, <code class="computeroutput"><span class="identifier">a</span></code> and
- <code class="computeroutput"><span class="identifier">b</span></code> are parsers, and <code class="computeroutput"><span class="identifier">A</span></code> is the type of the attribute of <code class="computeroutput"><span class="identifier">a</span></code>, and <code class="computeroutput"><span class="identifier">B</span></code>
- is the type of the attribute of <code class="computeroutput"><span class="identifier">b</span></code>,
- then the type of the attribute of <code class="computeroutput"><span class="identifier">a</span>
- <span class="special">>></span> <span class="identifier">b</span></code>
- will be <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></code>.
+ reads as: given, <tt class="computeroutput"><span class="identifier">a</span></tt> and
+ <tt class="computeroutput"><span class="identifier">b</span></tt> are parsers, and <tt class="computeroutput"><span class="identifier">A</span></tt> is the type of the attribute of <tt class="computeroutput"><span class="identifier">a</span></tt>, and <tt class="computeroutput"><span class="identifier">B</span></tt>
+ is the type of the attribute of <tt class="computeroutput"><span class="identifier">b</span></tt>,
+ then the type of the attribute of <tt class="computeroutput"><span class="identifier">a</span>
+ <span class="special">>></span> <span class="identifier">b</span></tt>
+ will be <tt class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span></tt>.
</p>
-<div class="important" title="Important"><table border="0" summary="Important">
+<div class="important"><table border="0" summary="Important">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../images/important.png"></td>
<th align="left">Important</th>
</tr>
-<tr><td align="left" valign="top"><p>
- In the attribute tables, we will use <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code> and <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">...></span></code> as placeholders only. The notation
- of <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>
+<tr><td colspan="2" align="left" valign="top"><p>
+ In the attribute tables, we will use <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt> and <tt class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">...></span></tt> as placeholders only. The notation
+ of <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>
stands for <span class="emphasis"><em>any STL
- container</em></span> holding elements of type <code class="computeroutput"><span class="identifier">A</span></code>
- and the notation <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">...></span></code> stands for <span class="emphasis"><em>any Boost.Fusion sequence</em></span>
- holding <code class="computeroutput"><span class="identifier">A</span></code>, <code class="computeroutput"><span class="identifier">B</span></code>, ... etc. elements. Finally, <code class="computeroutput"><span class="identifier">Unused</span></code> stands for <code class="computeroutput"><span class="identifier">unused_type</span></code>.
+ container</em></span> holding elements of type <tt class="computeroutput"><span class="identifier">A</span></tt>
+ and the notation <tt class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">...></span></tt> stands for <span class="emphasis"><em>any Boost.Fusion sequence</em></span>
+ holding <tt class="computeroutput"><span class="identifier">A</span></tt>, <tt class="computeroutput"><span class="identifier">B</span></tt>, ... etc. elements. Finally, <tt class="computeroutput"><span class="identifier">Unused</span></tt> stands for <tt class="computeroutput"><span class="identifier">unused_type</span></tt>.
</p></td></tr>
</table></div>
-<a name="spirit.qi.quick_reference.compound_attribute_rules.compound_parser_attribute_types"></a><h6>
-<a name="id641014"></a>
- <a class="link" href="compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.compound_parser_attribute_types">Compound
+<a name="spirit.qi.quick_reference.compound_attribute_rules.compound_parser_attribute_types"></a><h5>
+<a name="id452233"></a>
+ <a href="compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.compound_parser_attribute_types">Compound
Parser Attribute Types</a>
- </h6>
+ </h5>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
+<td><p>
+ sequence (<tt class="computeroutput"><span class="special">>></span></tt>)
+ </p></td>
<td>
- <p>
- sequence (<code class="computeroutput"><span class="special">>></span></code>)
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</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">B</span> <span class="special">--></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">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span>
@@ -115,16 +115,14 @@
<span class="identifier">a</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">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span> <span class="special">--></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">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ expect (<tt class="computeroutput"><span class="special">></span></tt>)
+ </p></td>
<td>
- <p>
- expect (<code class="computeroutput"><span class="special">></span></code>)
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</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">B</span> <span class="special">--></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">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span>
@@ -138,16 +136,14 @@
<span class="identifier">a</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">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span> <span class="special">--></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">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ alternative (<tt class="computeroutput"><span class="special">|</span></tt>)
+ </p></td>
<td>
- <p>
- alternative (<code class="computeroutput"><span class="special">|</span></code>)
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</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">B</span> <span class="special">--></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">variant</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span>
@@ -157,96 +153,84 @@
<span class="identifier">a</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">A</span> <span class="special">--></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">A</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ difference (<tt class="computeroutput"><span class="special">-</span></tt>)
+ </p></td>
<td>
- <p>
- difference (<code class="computeroutput"><span class="special">-</span></code>)
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</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">B</span> <span class="special">--></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">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--></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">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ kleene (unary <tt class="computeroutput"><span class="special">*</span></tt>)
+ </p></td>
<td>
- <p>
- kleene (unary <code class="computeroutput"><span class="special">*</span></code>)
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="special">*</span><span class="identifier">a</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">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">*</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ plus (unary <tt class="computeroutput"><span class="special">+</span></tt>)
+ </p></td>
<td>
- <p>
- plus (unary <code class="computeroutput"><span class="special">+</span></code>)
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="special">+</span><span class="identifier">a</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">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">+</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ list (<tt class="computeroutput"><span class="special">%</span></tt>)
+ </p></td>
<td>
- <p>
- list (<code class="computeroutput"><span class="special">%</span></code>)
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</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">B</span> <span class="special">--></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">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--></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">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
repetition
- </p>
- </td>
+ </p></td>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">repeat</span><span class="special">(...,...)[</span><span class="identifier">a</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">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">repeat</span><span class="special">(...,...)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ sequential or (<tt class="computeroutput"><span class="special">||</span></tt>)
+ </p></td>
<td>
- <p>
- sequential or (<code class="computeroutput"><span class="special">||</span></code>)
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</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">B</span> <span class="special">--></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">tuple</span><span class="special"><</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">A</span><span class="special">>,</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">B</span><span class="special">></span> <span class="special">></span>
@@ -255,60 +239,48 @@
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></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">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ optional (unary <tt class="computeroutput"><span class="special">-</span></tt>)
+ </p></td>
<td>
- <p>
- optional (unary <code class="computeroutput"><span class="special">-</span></code>)
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="special">-</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">-</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
-<td>
- <p>
- and predicate (<code class="computeroutput"><span class="special">&</span></code>)
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+<td><p>
+ and predicate (<tt class="computeroutput"><span class="special">&</span></tt>)
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
<span class="identifier">A</span> <span class="special">--></span>
- <span class="special">&</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></code>
- </p>
- </td>
+ <span class="special">&</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- not predicate (<code class="computeroutput"><span class="special">!</span></code>)
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
+<td><p>
+ not predicate (<tt class="computeroutput"><span class="special">!</span></tt>)
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span><span class="special">:</span>
<span class="identifier">A</span> <span class="special">--></span>
- <span class="special">!</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></code>
- </p>
- </td>
+ <span class="special">!</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></tt>
+ </p></td>
</tr>
<tr>
+<td><p>
+ permutation (<tt class="computeroutput"><span class="special">^</span></tt>)
+ </p></td>
<td>
- <p>
- permutation (<code class="computeroutput"><span class="special">^</span></code>)
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</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">B</span> <span class="special">--></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">tuple</span><span class="special"><</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">A</span><span class="special">>,</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">B</span><span class="special">></span> <span class="special">></span>
@@ -317,7 +289,7 @@
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></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">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
</tbody>
</table></div>
Modified: trunk/libs/spirit/doc/html/spirit/qi/quick_reference/non_terminals.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/quick_reference/non_terminals.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/quick_reference/non_terminals.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,13 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Non-terminals</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../quick_reference.html" title="Quick Reference">
-<link rel="prev" href="compound_attribute_rules.html" title="Compound Attribute Rules">
-<link rel="next" href="semantic_actions.html" title="Semantic Actions">
+<link rel="previous" href="compound_attribute_rules.html" title="Compound
+ Attribute Rules">
+<link rel="next" href="semantic_actions.html" title="Semantic
+ Actions">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,58 +24,61 @@
<div class="spirit-nav">
<a accesskey="p" href="compound_attribute_rules.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="semantic_actions.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Non-terminals">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.quick_reference.non_terminals"></a><a class="link" href="non_terminals.html" title="Non-terminals">Non-terminals</a>
-</h4></div></div></div>
-<div class="variablelist" title="Notation">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.quick_reference.non_terminals"></a>Non-terminals
+</h4></div></div>
+<div></div>
+</div>
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">RT</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">RT</span></tt></span></dt>
<dd><p>
Synthesized attribute. The rule or grammar's return type.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Arg1</span></code>,
- <code class="computeroutput"><span class="identifier">Arg2</span></code>, <code class="computeroutput"><span class="identifier">ArgN</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Arg1</span></tt>,
+ <tt class="computeroutput"><span class="identifier">Arg2</span></tt>, <tt class="computeroutput"><span class="identifier">ArgN</span></tt></span></dt>
<dd><p>
Inherited attributes. Zero or more arguments.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">L1</span></code>,
- <code class="computeroutput"><span class="identifier">L2</span></code>, <code class="computeroutput"><span class="identifier">LN</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">L1</span></tt>,
+ <tt class="computeroutput"><span class="identifier">L2</span></tt>, <tt class="computeroutput"><span class="identifier">LN</span></tt></span></dt>
<dd><p>
Zero or more local variables.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">r</span><span class="special">,</span> <span class="identifier">r2</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">r</span><span class="special">,</span> <span class="identifier">r2</span></tt></span></dt>
<dd><p>
Rules
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">g</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">g</span></tt></span></dt>
<dd><p>
A grammar
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">p</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">p</span></tt></span></dt>
<dd><p>
A parser expression
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">my_grammar</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">my_grammar</span></tt></span></dt>
<dd><p>
A user defined grammar
</p></dd>
</dl>
</div>
-<div class="variablelist" title="Terminology">
+<div class="variablelist">
<p class="title"><b>Terminology</b></p>
<dl>
<dt><span class="term">Signature</span></dt>
<dd><p>
- <code class="computeroutput"><span class="identifier">RT</span><span class="special">(</span><span class="identifier">Arg1</span><span class="special">,</span> <span class="identifier">Arg2</span> <span class="special">...</span>
- <span class="special">,</span><span class="identifier">ArgN</span><span class="special">)</span></code>. The signature specifies the synthesized
+ <tt class="computeroutput"><span class="identifier">RT</span><span class="special">(</span><span class="identifier">Arg1</span><span class="special">,</span> <span class="identifier">Arg2</span> <span class="special">...</span>
+ <span class="special">,</span><span class="identifier">ArgN</span><span class="special">)</span></tt>. The signature specifies the synthesized
(return value) and inherited (arguments) attributes.
</p></dd>
<dt><span class="term">Locals</span></dt>
<dd><p>
- <code class="computeroutput"><span class="identifier">locals</span><span class="special"><</span><span class="identifier">L1</span><span class="special">,</span> <span class="identifier">L2</span> <span class="special">...,</span>
- <span class="identifier">LN</span><span class="special">></span></code>.
+ <tt class="computeroutput"><span class="identifier">locals</span><span class="special"><</span><span class="identifier">L1</span><span class="special">,</span> <span class="identifier">L2</span> <span class="special">...,</span>
+ <span class="identifier">LN</span><span class="special">></span></tt>.
The local variables.
</p></dd>
<dt><span class="term">Skipper</span></dt>
@@ -82,15 +87,15 @@
</p></dd>
</dl>
</div>
-<div class="variablelist" title="Template Arguments">
+<div class="variablelist">
<p class="title"><b>Template Arguments</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Iterator</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Iterator</span></tt></span></dt>
<dd><p>
The iterator type you will use for parsing.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">A1</span></code>,
- <code class="computeroutput"><span class="identifier">A2</span></code>, <code class="computeroutput"><span class="identifier">A3</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">A1</span></tt>,
+ <tt class="computeroutput"><span class="identifier">A2</span></tt>, <tt class="computeroutput"><span class="identifier">A3</span></tt></span></dt>
<dd><p>
Can be one of 1)Signature 2)Locals 3)Skipper.
</p></dd>
@@ -102,162 +107,118 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span>
<span class="identifier">A1</span><span class="special">,</span>
<span class="identifier">A2</span><span class="special">,</span>
<span class="identifier">A3</span><span class="special">></span>
- <span class="identifier">r</span><span class="special">(</span><span class="identifier">name</span><span class="special">);</span></code>
- </p>
- </td>
-<td>
- <p>
- Rule declaration. <code class="computeroutput"><span class="identifier">Iterator</span></code>
- is required. <code class="computeroutput"><span class="identifier">A1</span><span class="special">,</span> <span class="identifier">A2</span><span class="special">,</span> <span class="identifier">A3</span></code>
- are optional and can be specified in any order. <code class="computeroutput"><span class="identifier">name</span></code>
+ <span class="identifier">r</span><span class="special">(</span><span class="identifier">name</span><span class="special">);</span></tt>
+ </p></td>
+<td><p>
+ Rule declaration. <tt class="computeroutput"><span class="identifier">Iterator</span></tt>
+ is required. <tt class="computeroutput"><span class="identifier">A1</span><span class="special">,</span> <span class="identifier">A2</span><span class="special">,</span> <span class="identifier">A3</span></tt>
+ are optional and can be specified in any order. <tt class="computeroutput"><span class="identifier">name</span></tt>
is an optional string that gives the rule its name, useful for
debugging and error handling.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">rule</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">,</span>
<span class="identifier">A1</span><span class="special">,</span>
<span class="identifier">A2</span><span class="special">,</span>
<span class="identifier">A3</span><span class="special">></span>
- <span class="identifier">r</span><span class="special">(</span><span class="identifier">r2</span><span class="special">);</span></code>
- </p>
- </td>
-<td>
- <p>
- Copy construct rule <code class="computeroutput"><span class="identifier">r</span></code>
- from rule <code class="computeroutput"><span class="identifier">r2</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">r</span> <span class="special">=</span>
- <span class="identifier">r2</span><span class="special">;</span></code>
- </p>
- </td>
-<td>
- <p>
- Assign rule <code class="computeroutput"><span class="identifier">r2</span></code>
- to <code class="computeroutput"><span class="identifier">r</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">alias</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
- return an alias of <code class="computeroutput"><span class="identifier">r</span></code>.
- The alias is a parser that holds a reference to <code class="computeroutput"><span class="identifier">r</span></code>.
+ <span class="identifier">r</span><span class="special">(</span><span class="identifier">r2</span><span class="special">);</span></tt>
+ </p></td>
+<td><p>
+ Copy construct rule <tt class="computeroutput"><span class="identifier">r</span></tt>
+ from rule <tt class="computeroutput"><span class="identifier">r2</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">r</span> <span class="special">=</span>
+ <span class="identifier">r2</span><span class="special">;</span></tt>
+ </p></td>
+<td><p>
+ Assign rule <tt class="computeroutput"><span class="identifier">r2</span></tt>
+ to <tt class="computeroutput"><span class="identifier">r</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">alias</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
+ return an alias of <tt class="computeroutput"><span class="identifier">r</span></tt>.
+ The alias is a parser that holds a reference to <tt class="computeroutput"><span class="identifier">r</span></tt>.
Reference semantics.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">copy</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
- Get a copy of <code class="computeroutput"><span class="identifier">r</span></code>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">copy</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
+ Get a copy of <tt class="computeroutput"><span class="identifier">r</span></tt>.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="identifier">name</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="identifier">name</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Naming a rule
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">name</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">r</span><span class="special">.</span><span class="identifier">name</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
Getting the name of a rule
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
debug(r)
- </p>
- </td>
-<td>
- <p>
- Debug rule <code class="computeroutput"><span class="identifier">r</span></code>
- </p>
- </td>
+ </p></td>
+<td><p>
+ Debug rule <tt class="computeroutput"><span class="identifier">r</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">r</span> <span class="special">=</span>
- <span class="identifier">p</span><span class="special">;</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">r</span> <span class="special">=</span>
+ <span class="identifier">p</span><span class="special">;</span></tt>
+ </p></td>
+<td><p>
Rule definition
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">r</span> <span class="special">%=</span>
- <span class="identifier">p</span><span class="special">;</span></code>
- </p>
- </td>
-<td>
- <p>
- Auto-rule definition. The attribute of <code class="computeroutput"><span class="identifier">p</span></code>
- should be compatible with the synthesized attribute of <code class="computeroutput"><span class="identifier">r</span></code>. When <code class="computeroutput"><span class="identifier">p</span></code>
- is successful, its attribute is automatically propagated to <code class="computeroutput"><span class="identifier">r</span></code>'s synthesized attribute.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">r</span> <span class="special">%=</span>
+ <span class="identifier">p</span><span class="special">;</span></tt>
+ </p></td>
+<td><p>
+ Auto-rule definition. The attribute of <tt class="computeroutput"><span class="identifier">p</span></tt>
+ should be compatible with the synthesized attribute of <tt class="computeroutput"><span class="identifier">r</span></tt>. When <tt class="computeroutput"><span class="identifier">p</span></tt>
+ is successful, its attribute is automatically propagated to <tt class="computeroutput"><span class="identifier">r</span></tt>'s synthesized attribute.
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
@@ -275,50 +236,36 @@
</pre>
<p>
</p>
- </td>
-<td>
- <p>
- Grammar definition. <code class="computeroutput"><span class="identifier">name</span></code>
+</td>
+<td><p>
+ Grammar definition. <tt class="computeroutput"><span class="identifier">name</span></tt>
is an optional string that gives the grammar its name, useful for
debugging and error handling.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
my_grammar<Iterator> g
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Instantiating a grammar
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="identifier">name</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">name</span><span class="special">(</span><span class="identifier">name</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Naming a grammar
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">name</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">g</span><span class="special">.</span><span class="identifier">name</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
Getting the name of a grammar
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
Modified: trunk/libs/spirit/doc/html/spirit/qi/quick_reference/phoenix.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/quick_reference/phoenix.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/quick_reference/phoenix.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,11 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Phoenix</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../quick_reference.html" title="Quick Reference">
-<link rel="prev" href="semantic_actions.html" title="Semantic Actions">
+<link rel="previous" href="semantic_actions.html" title="Semantic
+ Actions">
<link rel="next" href="../reference.html" title="Reference">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,10 +23,13 @@
<div class="spirit-nav">
<a accesskey="p" href="semantic_actions.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Phoenix">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.quick_reference.phoenix"></a><a class="link" href="phoenix.html" title="Phoenix">Phoenix</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.quick_reference.phoenix"></a>Phoenix
+</h4></div></div>
+<div></div>
+</div>
<p>
<a href="../../../../../phoenix/doc/html/index.html" target="_top">Boost.Phoenix</a> makes
it easier to attach semantic actions. You just inline your lambda expressions:
@@ -34,33 +38,33 @@
</pre>
<p>
Spirit.Qi provides some Boost.Phoenix
- placeholders to important information from the <code class="computeroutput"><span class="identifier">Attrib</span></code>
- and <code class="computeroutput"><span class="identifier">Context</span></code> that are otherwise
+ placeholders to important information from the <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ and <tt class="computeroutput"><span class="identifier">Context</span></tt> that are otherwise
fiddly to extract.
</p>
-<div class="variablelist" title="Spirit.Qi specific Phoenix placeholders">
+<div class="variablelist">
<p class="title"><b>Spirit.Qi specific Phoenix placeholders</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">_1</span><span class="special">,</span> <span class="identifier">_2</span><span class="special">...</span> <span class="special">,</span> <span class="identifier">_N</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">_1</span><span class="special">,</span> <span class="identifier">_2</span><span class="special">...</span> <span class="special">,</span> <span class="identifier">_N</span></tt></span></dt>
<dd><p>
- Nth attribute of <code class="computeroutput"><span class="identifier">p</span></code>
+ Nth attribute of <tt class="computeroutput"><span class="identifier">p</span></tt>
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">_val</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">_val</span></tt></span></dt>
<dd><p>
The enclosing rule's synthesized attribute.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">_r1</span><span class="special">,</span> <span class="identifier">_r2</span><span class="special">...</span> <span class="special">,</span> <span class="identifier">_rN</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">_r1</span><span class="special">,</span> <span class="identifier">_r2</span><span class="special">...</span> <span class="special">,</span> <span class="identifier">_rN</span></tt></span></dt>
<dd><p>
The enclosing rule's Nth inherited attribute.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">_a</span><span class="special">,</span> <span class="identifier">_b</span><span class="special">...</span> <span class="special">,</span> <span class="identifier">_j</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">_a</span><span class="special">,</span> <span class="identifier">_b</span><span class="special">...</span> <span class="special">,</span> <span class="identifier">_j</span></tt></span></dt>
<dd><p>
- The enclosing rule's local variables (<code class="computeroutput"><span class="identifier">_a</span></code>
+ The enclosing rule's local variables (<tt class="computeroutput"><span class="identifier">_a</span></tt>
refers to the first).
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">_pass</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">_pass</span></tt></span></dt>
<dd><p>
- Assign <code class="computeroutput"><span class="keyword">false</span></code> to <code class="computeroutput"><span class="identifier">_pass</span></code> to force a parser failure.
+ Assign <tt class="computeroutput"><span class="keyword">false</span></tt> to <tt class="computeroutput"><span class="identifier">_pass</span></tt> to force a parser failure.
</p></dd>
</dl>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Qi Parsers</title>
+<title> Qi Parsers</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../quick_reference.html" title="Quick Reference">
-<link rel="prev" href="common_notation.html" title="Common Notation">
-<link rel="next" href="qi_parsers/char.html" title="Character Parsers">
+<link rel="previous" href="common_notation.html" title="Common Notation">
+<link rel="next" href="qi_parsers/char.html" title=" Character
+ Parsers">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,10 +23,13 @@
<div class="spirit-nav">
<a accesskey="p" href="common_notation.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="qi_parsers/char.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Qi Parsers">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.quick_reference.qi_parsers"></a><a class="link" href="qi_parsers.html" title="Qi Parsers"> Qi Parsers</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.quick_reference.qi_parsers"></a> Qi Parsers
+</h4></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section"><a href="qi_parsers/char.html"> Character
Parsers</a></span></dt>
Modified: trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/action.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/action.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/action.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Parser Semantic Actions</title>
+<title> Parser
+ Semantic Actions</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../qi_parsers.html" title="Qi Parsers">
-<link rel="prev" href="operator.html" title="Parser Operators">
-<link rel="next" href="../compound_attribute_rules.html" title="Compound Attribute Rules">
+<link rel="up" href="../qi_parsers.html" title=" Qi Parsers">
+<link rel="previous" href="operator.html" title=" Parser
+ Operators">
+<link rel="next" href="../compound_attribute_rules.html" title="Compound
+ Attribute Rules">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +25,15 @@
<div class="spirit-nav">
<a accesskey="p" href="operator.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../qi_parsers.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../compound_attribute_rules.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Parser Semantic Actions">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.quick_reference.qi_parsers.action"></a><a class="link" href="action.html" title="Parser Semantic Actions"> Parser
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.quick_reference.qi_parsers.action"></a><a href="action.html" title=" Parser
+ Semantic Actions"> Parser
Semantic Actions</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<div class="informaltable"><table class="table">
<colgroup>
<col>
@@ -34,39 +41,27 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">p</span><span class="special">[</span><span class="identifier">fa</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Attribute of <code class="computeroutput"><span class="identifier">p</span></code>
- </p>
- </td>
-<td>
- <p>
- Call semantic action, <code class="computeroutput"><span class="identifier">fa</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">p</span><span class="special">[</span><span class="identifier">fa</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Attribute of <tt class="computeroutput"><span class="identifier">p</span></tt>
+ </p></td>
+<td><p>
+ Call semantic action, <tt class="computeroutput"><span class="identifier">fa</span></tt>
if p succeeds.
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/auxiliary.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/auxiliary.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/auxiliary.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Auxiliary Parsers</title>
+<title>
+ Auxiliary Parsers</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../qi_parsers.html" title="Qi Parsers">
-<link rel="prev" href="string.html" title="String Parsers">
-<link rel="next" href="binary.html" title="Binary Parsers">
+<link rel="up" href="../qi_parsers.html" title=" Qi Parsers">
+<link rel="previous" href="string.html" title=" String
+ Parsers">
+<link rel="next" href="binary.html" title=" Binary
+ Parsers">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +25,15 @@
<div class="spirit-nav">
<a accesskey="p" href="string.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../qi_parsers.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="binary.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Auxiliary Parsers">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.quick_reference.qi_parsers.auxiliary"></a><a class="link" href="auxiliary.html" title="Auxiliary Parsers">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.quick_reference.qi_parsers.auxiliary"></a><a href="auxiliary.html" title="
+ Auxiliary Parsers">
Auxiliary Parsers</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<div class="informaltable"><table class="table">
<colgroup>
<col>
@@ -34,147 +41,99 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">eol</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Unused</span></code>
- </p>
- </td>
-<td>
- <p>
- Matches the end of line (<code class="computeroutput"><span class="special">\</span><span class="identifier">r</span></code> or <code class="computeroutput"><span class="special">\</span><span class="identifier">n</span></code> or <code class="computeroutput"><span class="special">\</span><span class="identifier">r</span><span class="special">\</span><span class="identifier">n</span></code>)
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">eoi</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Unused</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">eol</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Unused</span></tt>
+ </p></td>
+<td><p>
+ Matches the end of line (<tt class="computeroutput"><span class="special">\</span><span class="identifier">r</span></tt> or <tt class="computeroutput"><span class="special">\</span><span class="identifier">n</span></tt> or <tt class="computeroutput"><span class="special">\</span><span class="identifier">r</span><span class="special">\</span><span class="identifier">n</span></tt>)
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">eoi</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Unused</span></tt>
+ </p></td>
+<td><p>
Matches the end of input (first == last)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">eps</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Unused</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">eps</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Unused</span></tt>
+ </p></td>
+<td><p>
Match an empty string
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Unused</span></code>
- </p>
- </td>
-<td>
- <p>
- If <code class="computeroutput"><span class="identifier">b</span></code> is true,
+<td><p>
+ <tt class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Unused</span></tt>
+ </p></td>
+<td><p>
+ If <tt class="computeroutput"><span class="identifier">b</span></tt> is true,
match an empty string
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fp</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Attribute of <code class="computeroutput"><span class="identifier">P</span></code>
- where <code class="computeroutput"><span class="identifier">P</span></code> is the
- return type of <code class="computeroutput"><span class="identifier">fp</span></code>
- </p>
- </td>
-<td>
- <p>
- Invoke <code class="computeroutput"><span class="identifier">fp</span></code> at
- parse time, returning a parser <code class="computeroutput"><span class="identifier">p</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fp</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Attribute of <tt class="computeroutput"><span class="identifier">P</span></tt>
+ where <tt class="computeroutput"><span class="identifier">P</span></tt> is the
+ return type of <tt class="computeroutput"><span class="identifier">fp</span></tt>
+ </p></td>
+<td><p>
+ Invoke <tt class="computeroutput"><span class="identifier">fp</span></tt> at
+ parse time, returning a parser <tt class="computeroutput"><span class="identifier">p</span></tt>
which is then called to parse.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">fp</span></code>
- </p>
- </td>
-<td>
- <p>
- see <code class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fp</span><span class="special">)</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">fp</span></tt>
+ </p></td>
+<td><p>
+ see <tt class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fp</span><span class="special">)</span></tt>
above
- </p>
- </td>
-<td>
- <p>
- Equivalent to <code class="computeroutput"><span class="identifier">lazy</span><span class="special">[</span><span class="identifier">fp</span><span class="special">]</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/auxiliary/attr.html" title="Attribute (attr)"><code class="computeroutput"><span class="identifier">attr</span><span class="special">(</span><span class="identifier">attrib</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Attrib</span></code>
- </p>
- </td>
-<td>
- <p>
- Doesn't consume/parse any input, but exposes the argument <code class="computeroutput"><span class="identifier">attrib</span></code> as its attribute.
- </p>
- </td>
+ </p></td>
+<td><p>
+ Equivalent to <tt class="computeroutput"><span class="identifier">lazy</span><span class="special">[</span><span class="identifier">fp</span><span class="special">]</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ attr(attrib)
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Attrib</span></tt>
+ </p></td>
+<td><p>
+ Doesn't consume/parse any input, but exposes the argument <tt class="computeroutput"><span class="identifier">attrib</span></tt> as its attribute.
+ </p></td>
</tr>
</tbody>
</table></div>
Modified: trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/binary.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/binary.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/binary.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Binary Parsers</title>
+<title> Binary
+ Parsers</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../qi_parsers.html" title="Qi Parsers">
-<link rel="prev" href="auxiliary.html" title="Auxiliary Parsers">
-<link rel="next" href="directive.html" title="Parser Directives">
+<link rel="up" href="../qi_parsers.html" title=" Qi Parsers">
+<link rel="previous" href="auxiliary.html" title="
+ Auxiliary Parsers">
+<link rel="next" href="directive.html" title="
+ Parser Directives">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +25,15 @@
<div class="spirit-nav">
<a accesskey="p" href="auxiliary.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../qi_parsers.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="directive.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Binary Parsers">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.quick_reference.qi_parsers.binary"></a><a class="link" href="binary.html" title="Binary Parsers"> Binary
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.quick_reference.qi_parsers.binary"></a><a href="binary.html" title=" Binary
+ Parsers"> Binary
Parsers</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<div class="informaltable"><table class="table">
<colgroup>
<col>
@@ -34,192 +41,126 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">byte_</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">byte_</span></tt>
+ </p></td>
+<td><p>
8 bits native endian
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Matches an 8 bit binary
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">word</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">word</span></tt>
+ </p></td>
+<td><p>
16 bits native endian
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Matches a 16 bit binary
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_word</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_word</span></tt>
+ </p></td>
+<td><p>
16 bits big endian
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Matches a 16 bit binary
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_word</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_word</span></tt>
+ </p></td>
+<td><p>
16 bits little endian
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Matches a 16 bit binary
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">dword</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">dword</span></tt>
+ </p></td>
+<td><p>
32 bits native endian
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Matches a 32 bit binary
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_dword</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_dword</span></tt>
+ </p></td>
+<td><p>
32 bits big endian
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Matches a 32 bit binary
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_dword</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_dword</span></tt>
+ </p></td>
+<td><p>
32 bits little endian
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Matches a 32 bit binary
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">qword</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">qword</span></tt>
+ </p></td>
+<td><p>
64 bits native endian
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Matches a 64 bit binary
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_qword</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_qword</span></tt>
+ </p></td>
+<td><p>
64 bits big endian
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Matches a 64 bit binary
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_qword</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_qword</span></tt>
+ </p></td>
+<td><p>
64 bits little endian
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Matches a 64 bit binary
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
Modified: trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/char.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/char.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/char.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Character Parsers</title>
+<title> Character
+ Parsers</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../qi_parsers.html" title="Qi Parsers">
-<link rel="prev" href="../qi_parsers.html" title="Qi Parsers">
-<link rel="next" href="numeric.html" title="Numeric Parsers">
+<link rel="up" href="../qi_parsers.html" title=" Qi Parsers">
+<link rel="previous" href="../qi_parsers.html" title=" Qi Parsers">
+<link rel="next" href="numeric.html" title=" Numeric
+ Parsers">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +24,15 @@
<div class="spirit-nav">
<a accesskey="p" href="../qi_parsers.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../qi_parsers.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="numeric.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Character Parsers">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.quick_reference.qi_parsers.char"></a><a class="link" href="char.html" title="Character Parsers"> Character
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.quick_reference.qi_parsers.char"></a><a href="char.html" title=" Character
+ Parsers"> Character
Parsers</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<div class="informaltable"><table class="table">
<colgroup>
<col>
@@ -34,359 +40,239 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/string/string.html" title="String (string, lit)"><code class="computeroutput"><span class="identifier">ch</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Unused</span></code>
- </p>
- </td>
-<td>
- <p>
- Matches <code class="computeroutput"><span class="identifier">ch</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/string/string.html" title="String (string, lit)"><code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Unused</span></code>
- </p>
- </td>
-<td>
- <p>
- Matches <code class="computeroutput"><span class="identifier">ch</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">char_</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ ch
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Unused</span></tt>
+ </p></td>
+<td><p>
+ Matches <tt class="computeroutput"><span class="identifier">ch</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ lit(ch)
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Unused</span></tt>
+ </p></td>
+<td><p>
+ Matches <tt class="computeroutput"><span class="identifier">ch</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">char_</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
Matches any character
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Matches <code class="computeroutput"><span class="identifier">ch</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="string">"c"</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Matches a single char string literal, <code class="computeroutput"><span class="identifier">c</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch</span><span class="special">,</span>
- <span class="identifier">ch2</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Matches a range of chars from <code class="computeroutput"><span class="identifier">ch</span></code>
- to <code class="computeroutput"><span class="identifier">ch2</span></code> (inclusive)
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="identifier">charset</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Matches a character set <code class="computeroutput"><span class="identifier">charset</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">alnum</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Matches a character based on the equivalent of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isalnum</span></code> in the current character
- set
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">alpha</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Matches a character based on the equivalent of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isalpha</span></code> in the current character
- set
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">blank</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Matches a character based on the equivalent of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isblank</span></code> in the current character
- set
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">cntrl</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Matches a character based on the equivalent of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">iscntrl</span></code> in the current character
- set
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">digit</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Matches a character based on the equivalent of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isdigit</span></code> in the current character
- set
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">graph</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Matches a character based on the equivalent of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isgraph</span></code> in the current character
- set
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">print</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Matches a character based on the equivalent of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isprint</span></code> in the current character
- set
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">punct</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Matches a character based on the equivalent of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ispunct</span></code> in the current character
- set
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">space</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Matches a character based on the equivalent of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isspace</span></code> in the current character
- set
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">xdigit</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Matches a character based on the equivalent of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isxdigit</span></code> in the current character
- set
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lower</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Matches a character based on the equivalent of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">islower</span></code> in the current character
- set
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">upper</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Ch</span></code>
- </p>
- </td>
-<td>
- <p>
- Matches a character based on the equivalent of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isupper</span></code> in the current character
+<td><p>
+ <tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Matches <tt class="computeroutput"><span class="identifier">ch</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="string">"c"</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Matches a single char string literal, <tt class="computeroutput"><span class="identifier">c</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="identifier">ch</span><span class="special">,</span>
+ <span class="identifier">ch2</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Matches a range of chars from <tt class="computeroutput"><span class="identifier">ch</span></tt>
+ to <tt class="computeroutput"><span class="identifier">ch2</span></tt> (inclusive)
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="identifier">charset</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Matches a character set <tt class="computeroutput"><span class="identifier">charset</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">alnum</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Matches a character based on the equivalent of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isalnum</span></tt> in the current character
+ set
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">alpha</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Matches a character based on the equivalent of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isalpha</span></tt> in the current character
+ set
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">blank</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Matches a character based on the equivalent of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isblank</span></tt> in the current character
+ set
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">cntrl</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Matches a character based on the equivalent of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">iscntrl</span></tt> in the current character
+ set
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">digit</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Matches a character based on the equivalent of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isdigit</span></tt> in the current character
+ set
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">graph</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Matches a character based on the equivalent of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isgraph</span></tt> in the current character
+ set
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">print</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Matches a character based on the equivalent of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isprint</span></tt> in the current character
+ set
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">punct</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Matches a character based on the equivalent of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ispunct</span></tt> in the current character
+ set
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">space</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Matches a character based on the equivalent of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isspace</span></tt> in the current character
+ set
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">xdigit</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Matches a character based on the equivalent of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isxdigit</span></tt> in the current character
+ set
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lower</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Matches a character based on the equivalent of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">islower</span></tt> in the current character
+ set
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">upper</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt>
+ </p></td>
+<td><p>
+ Matches a character based on the equivalent of <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">isupper</span></tt> in the current character
set
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
Modified: trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/directive.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/directive.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/directive.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Parser Directives</title>
+<title>
+ Parser Directives</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../qi_parsers.html" title="Qi Parsers">
-<link rel="prev" href="binary.html" title="Binary Parsers">
-<link rel="next" href="operator.html" title="Parser Operators">
+<link rel="up" href="../qi_parsers.html" title=" Qi Parsers">
+<link rel="previous" href="binary.html" title=" Binary
+ Parsers">
+<link rel="next" href="operator.html" title=" Parser
+ Operators">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +25,15 @@
<div class="spirit-nav">
<a accesskey="p" href="binary.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../qi_parsers.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="operator.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Parser Directives">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.quick_reference.qi_parsers.directive"></a><a class="link" href="directive.html" title="Parser Directives">
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.quick_reference.qi_parsers.directive"></a><a href="directive.html" title="
+ Parser Directives">
Parser Directives</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<div class="informaltable"><table class="table">
<colgroup>
<col>
@@ -34,196 +41,140 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/lexeme.html" title="Inhibiting Skipping (lexeme[])"><code class="computeroutput"><span class="identifier">lexeme</span></code></a><code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
- Disable skip parsing for <code class="computeroutput"><span class="identifier">a</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/no_case.html" title="Inhibiting Case Sensitivity (no_case[])"><code class="computeroutput"><span class="identifier">no_case</span></code></a><code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
- Inhibits case-sensitivity for <code class="computeroutput"><span class="identifier">a</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/omit.html" title="Ignoring Attribute (omit[])"><code class="computeroutput"><span class="identifier">omit</span></code></a><code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Unused</span></code>
- </p>
- </td>
-<td>
- <p>
- Ignores the attribute type of <code class="computeroutput"><span class="identifier">a</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/raw.html" title="Transduction Parsing (raw[])"><code class="computeroutput"><span class="identifier">raw</span></code></a><code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- boost::iterator_range
<code class="computeroutput"><span class="special"><</span><span class="identifier">I</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- Presents the transduction of <code class="computeroutput"><span class="identifier">a</span></code>
+<td><p>
+ <a href="../../reference/directive/lexeme.html" title=" Inhibiting
+ Skipping (lexeme[])"><tt class="computeroutput"><span class="identifier">lexeme</span></tt></a><tt class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
+ Disable skip parsing for <tt class="computeroutput"><span class="identifier">a</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/directive/no_case.html" title=" Inhibiting
+ Case Sensitivity (no_case[])"><tt class="computeroutput"><span class="identifier">no_case</span></tt></a><tt class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
+ Inhibits case-sensitivity for <tt class="computeroutput"><span class="identifier">a</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/directive/omit.html" title=" Ignoring Attribute
+ (omit[])"><tt class="computeroutput"><span class="identifier">omit</span></tt></a><tt class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Unused</span></tt>
+ </p></td>
+<td><p>
+ Ignores the attribute type of <tt class="computeroutput"><span class="identifier">a</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/directive/raw.html" title=" Transduction
+ Parsing (raw[])"><tt class="computeroutput"><span class="identifier">raw</span></tt></a><tt class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ boost::iterator_range<tt class="computeroutput"><span class="special"><</span><span class="identifier">I</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Presents the transduction of <tt class="computeroutput"><span class="identifier">a</span></tt>
as an iterator range
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/repeat.html" title="Repetition (repeat[])"><code class="computeroutput"><span class="identifier">repeat</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- Repeat <code class="computeroutput"><span class="identifier">a</span></code> zero
+<td><p>
+ <a href="../../reference/directive/repeat.html" title=" Repetition
+ (repeat[])"><tt class="computeroutput"><span class="identifier">repeat</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Repeat <tt class="computeroutput"><span class="identifier">a</span></tt> zero
or more times
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/repeat.html" title="Repetition (repeat[])"><code class="computeroutput"><span class="special">(</span><span class="identifier">N</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- Repeat <code class="computeroutput"><span class="identifier">a</span></code> <code class="computeroutput"><span class="identifier">N</span></code> times
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/repeat.html" title="Repetition (repeat[])"><code class="computeroutput"><span class="special">(</span><span class="identifier">N</span><span class="special">,</span> <span class="identifier">M</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- Repeat <code class="computeroutput"><span class="identifier">a</span></code> <code class="computeroutput"><span class="identifier">N</span></code> to <code class="computeroutput"><span class="identifier">M</span></code>
+<td><p>
+ <a href="../../reference/directive/repeat.html" title=" Repetition
+ (repeat[])"><tt class="computeroutput"><span class="special">(</span><span class="identifier">N</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Repeat <tt class="computeroutput"><span class="identifier">a</span></tt> <tt class="computeroutput"><span class="identifier">N</span></tt> times
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/directive/repeat.html" title=" Repetition
+ (repeat[])"><tt class="computeroutput"><span class="special">(</span><span class="identifier">N</span><span class="special">,</span> <span class="identifier">M</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Repeat <tt class="computeroutput"><span class="identifier">a</span></tt> <tt class="computeroutput"><span class="identifier">N</span></tt> to <tt class="computeroutput"><span class="identifier">M</span></tt>
times
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/repeat.html" title="Repetition (repeat[])"><code class="computeroutput"><span class="special">(</span><span class="identifier">N</span><span class="special">,</span> <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- Repeat <code class="computeroutput"><span class="identifier">a</span></code> <code class="computeroutput"><span class="identifier">N</span></code> or more times
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/skip.html" title="Re-Establish Skipping (skip[])"><code class="computeroutput"><span class="identifier">skip</span></code></a><code class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <a href="../../reference/directive/repeat.html" title=" Repetition
+ (repeat[])"><tt class="computeroutput"><span class="special">(</span><span class="identifier">N</span><span class="special">,</span> <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt></a>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Repeat <tt class="computeroutput"><span class="identifier">a</span></tt> <tt class="computeroutput"><span class="identifier">N</span></tt> or more times
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/directive/skip.html" title=" Re-Establish
+ Skipping (skip[])"><tt class="computeroutput"><span class="identifier">skip</span></tt></a><tt class="computeroutput"><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
Re-establish the skipper that got inhibited by lexeme
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/directive/skip.html" title="Re-Establish Skipping (skip[])"><code class="computeroutput"><span class="identifier">skip</span></code></a><code class="computeroutput"><span class="special">(</span><span class="identifier">p</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
- Use <code class="computeroutput"><span class="identifier">p</span></code> as a skipper
- for parsing <code class="computeroutput"><span class="identifier">a</span></code>
- </p>
- </td>
+<td><p>
+ <a href="../../reference/directive/skip.html" title=" Re-Establish
+ Skipping (skip[])"><tt class="computeroutput"><span class="identifier">skip</span></tt></a><tt class="computeroutput"><span class="special">(</span><span class="identifier">p</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
+ Use <tt class="computeroutput"><span class="identifier">p</span></tt> as a skipper
+ for parsing <tt class="computeroutput"><span class="identifier">a</span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
Modified: trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/numeric.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/numeric.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/numeric.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Numeric Parsers</title>
+<title> Numeric
+ Parsers</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../qi_parsers.html" title="Qi Parsers">
-<link rel="prev" href="char.html" title="Character Parsers">
-<link rel="next" href="string.html" title="String Parsers">
+<link rel="up" href="../qi_parsers.html" title=" Qi Parsers">
+<link rel="previous" href="char.html" title=" Character
+ Parsers">
+<link rel="next" href="string.html" title=" String
+ Parsers">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +25,15 @@
<div class="spirit-nav">
<a accesskey="p" href="char.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../qi_parsers.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="string.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Numeric Parsers">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.quick_reference.qi_parsers.numeric"></a><a class="link" href="numeric.html" title="Numeric Parsers"> Numeric
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.quick_reference.qi_parsers.numeric"></a><a href="numeric.html" title=" Numeric
+ Parsers"> Numeric
Parsers</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<div class="informaltable"><table class="table">
<colgroup>
<col>
@@ -34,262 +41,172 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">float_</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">float</span></code>
- </p>
- </td>
-<td>
- <p>
- Parse a floating point number into a <code class="computeroutput"><span class="keyword">float</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">double_</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">double</span></code>
- </p>
- </td>
-<td>
- <p>
- Parse a floating point number into a <code class="computeroutput"><span class="keyword">double</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">long_double</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>
- </p>
- </td>
-<td>
- <p>
- Parse a floating point number into a <code class="computeroutput"><span class="keyword">long</span>
- <span class="keyword">double</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">bin</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span></code>
- </p>
- </td>
-<td>
- <p>
- Parse a binary integer into an <code class="computeroutput"><span class="keyword">unsigned</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">oct</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span></code>
- </p>
- </td>
-<td>
- <p>
- Parse an octal integer into an <code class="computeroutput"><span class="keyword">unsigned</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">hex</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span></code>
- </p>
- </td>
-<td>
- <p>
- Parse a hexadecimal integer into an <code class="computeroutput"><span class="keyword">unsigned</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ushort_</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">short</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">float_</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">float</span></tt>
+ </p></td>
+<td><p>
+ Parse a floating point number into a <tt class="computeroutput"><span class="keyword">float</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">double_</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">double</span></tt>
+ </p></td>
+<td><p>
+ Parse a floating point number into a <tt class="computeroutput"><span class="keyword">double</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">long_double</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></tt>
+ </p></td>
+<td><p>
+ Parse a floating point number into a <tt class="computeroutput"><span class="keyword">long</span>
+ <span class="keyword">double</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">bin</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span></tt>
+ </p></td>
+<td><p>
+ Parse a binary integer into an <tt class="computeroutput"><span class="keyword">unsigned</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">oct</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span></tt>
+ </p></td>
+<td><p>
+ Parse an octal integer into an <tt class="computeroutput"><span class="keyword">unsigned</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">hex</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span></tt>
+ </p></td>
+<td><p>
+ Parse a hexadecimal integer into an <tt class="computeroutput"><span class="keyword">unsigned</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ushort_</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">short</span></tt>
+ </p></td>
+<td><p>
Parse an unsigned short integer
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ulong_</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ulong_</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span></tt>
+ </p></td>
+<td><p>
Parse an unsigned long integer
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">uint_</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">uint_</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">int</span></tt>
+ </p></td>
+<td><p>
Parse an unsigned int
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ulong_long</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span>
- <span class="keyword">long</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ulong_long</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span>
+ <span class="keyword">long</span></tt>
+ </p></td>
+<td><p>
Parse an unsigned long long
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">short_</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">short</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">short_</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">short</span></tt>
+ </p></td>
+<td><p>
Parse a short integer
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">long_</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">long</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">long_</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">long</span></tt>
+ </p></td>
+<td><p>
Parse a long integer
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">int_</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">int</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">int_</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">int</span></tt>
+ </p></td>
+<td><p>
Parse an int
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">long_long</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">long</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">long_long</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">long</span> <span class="keyword">long</span></tt>
+ </p></td>
+<td><p>
Parse a long long
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
Modified: trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/operator.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/operator.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/operator.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Parser Operators</title>
+<title> Parser
+ Operators</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../qi_parsers.html" title="Qi Parsers">
-<link rel="prev" href="directive.html" title="Parser Directives">
-<link rel="next" href="action.html" title="Parser Semantic Actions">
+<link rel="up" href="../qi_parsers.html" title=" Qi Parsers">
+<link rel="previous" href="directive.html" title="
+ Parser Directives">
+<link rel="next" href="action.html" title=" Parser
+ Semantic Actions">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +25,15 @@
<div class="spirit-nav">
<a accesskey="p" href="directive.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../qi_parsers.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="action.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Parser Operators">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.quick_reference.qi_parsers.operator"></a><a class="link" href="operator.html" title="Parser Operators"> Parser
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.quick_reference.qi_parsers.operator"></a><a href="operator.html" title=" Parser
+ Operators"> Parser
Operators</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<div class="informaltable"><table class="table">
<colgroup>
<col>
@@ -34,258 +41,180 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">!</span><span class="identifier">a</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Unused</span></code>
- </p>
- </td>
-<td>
- <p>
- Not predicate. If the predicate <code class="computeroutput"><span class="identifier">a</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="special">!</span><span class="identifier">a</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Unused</span></tt>
+ </p></td>
+<td><p>
+ Not predicate. If the predicate <tt class="computeroutput"><span class="identifier">a</span></tt>
matches, fail. Otherwise, return a zero length match.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">&</span><span class="identifier">a</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Unused</span></code>
- </p>
- </td>
-<td>
- <p>
- And predicate. If the predicate <code class="computeroutput"><span class="identifier">a</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="special">&</span><span class="identifier">a</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Unused</span></tt>
+ </p></td>
+<td><p>
+ And predicate. If the predicate <tt class="computeroutput"><span class="identifier">a</span></tt>
matches, return a zero length match. Otherwise, fail.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">-</span><span class="identifier">a</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- Optional. Parse <code class="computeroutput"><span class="identifier">a</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="special">-</span><span class="identifier">a</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Optional. Parse <tt class="computeroutput"><span class="identifier">a</span></tt>
zero or one time
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">*</span><span class="identifier">a</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- Kleene. Parse <code class="computeroutput"><span class="identifier">a</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="special">*</span><span class="identifier">a</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Kleene. Parse <tt class="computeroutput"><span class="identifier">a</span></tt>
zero or more times
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">+</span><span class="identifier">a</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- Plus. Parse <code class="computeroutput"><span class="identifier">a</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="special">+</span><span class="identifier">a</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Plus. Parse <tt class="computeroutput"><span class="identifier">a</span></tt>
one or more times
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><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></code>
- </p>
- </td>
-<td>
- <p>
- Alternative. Parse <code class="computeroutput"><span class="identifier">a</span></code>
- or <code class="computeroutput"><span class="identifier">b</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">>></span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span>
- <span class="identifier">B</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- Sequence. Parse <code class="computeroutput"><span class="identifier">a</span></code>
- followed by <code class="computeroutput"><span class="identifier">b</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">></span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span>
- <span class="identifier">B</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- Expect. Parse <code class="computeroutput"><span class="identifier">a</span></code>
- followed by <code class="computeroutput"><span class="identifier">b</span></code>.
- <code class="computeroutput"><span class="identifier">b</span></code> is expected
- to match when <code class="computeroutput"><span class="identifier">a</span></code>
- matches, otherwise, an <code class="computeroutput"><span class="identifier">expectation_failure</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
+ <span class="identifier">b</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><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></tt>
+ </p></td>
+<td><p>
+ Alternative. Parse <tt class="computeroutput"><span class="identifier">a</span></tt>
+ or <tt class="computeroutput"><span class="identifier">b</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">>></span>
+ <span class="identifier">b</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span>
+ <span class="identifier">B</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Sequence. Parse <tt class="computeroutput"><span class="identifier">a</span></tt>
+ followed by <tt class="computeroutput"><span class="identifier">b</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">></span>
+ <span class="identifier">b</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span>
+ <span class="identifier">B</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Expect. Parse <tt class="computeroutput"><span class="identifier">a</span></tt>
+ followed by <tt class="computeroutput"><span class="identifier">b</span></tt>.
+ <tt class="computeroutput"><span class="identifier">b</span></tt> is expected
+ to match when <tt class="computeroutput"><span class="identifier">a</span></tt>
+ matches, otherwise, an <tt class="computeroutput"><span class="identifier">expectation_failure</span></tt>
is thrown.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">-</span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
-<td>
- <p>
- Difference. Parse <code class="computeroutput"><span class="identifier">a</span></code>
- but not <code class="computeroutput"><span class="identifier">b</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">||</span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span>
- <span class="identifier">B</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- Sequential Or. Parse <code class="computeroutput"><span class="identifier">a</span></code>
- or <code class="computeroutput"><span class="identifier">b</span></code> or <code class="computeroutput"><span class="identifier">a</span></code> followed by <code class="computeroutput"><span class="identifier">b</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">%</span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- List. Parse <code class="computeroutput"><span class="identifier">a</span></code>
- delimited <code class="computeroutput"><span class="identifier">b</span></code> one
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">-</span>
+ <span class="identifier">b</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
+<td><p>
+ Difference. Parse <tt class="computeroutput"><span class="identifier">a</span></tt>
+ but not <tt class="computeroutput"><span class="identifier">b</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">||</span>
+ <span class="identifier">b</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span>
+ <span class="identifier">B</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Sequential Or. Parse <tt class="computeroutput"><span class="identifier">a</span></tt>
+ or <tt class="computeroutput"><span class="identifier">b</span></tt> or <tt class="computeroutput"><span class="identifier">a</span></tt> followed by <tt class="computeroutput"><span class="identifier">b</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">%</span>
+ <span class="identifier">b</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ List. Parse <tt class="computeroutput"><span class="identifier">a</span></tt>
+ delimited <tt class="computeroutput"><span class="identifier">b</span></tt> one
or more times
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">^</span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span></code>
- <code class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">A</span><span class="special">>,</span></code>
- <code class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">B</span><span class="special">></span>
- <span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- Permutation. Parse <code class="computeroutput"><span class="identifier">a</span></code>
- and <code class="computeroutput"><span class="identifier">b</span></code> in any
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">^</span>
+ <span class="identifier">b</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">tuple</span><span class="special"><</span></tt>
+ <tt class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">A</span><span class="special">>,</span></tt>
+ <tt class="computeroutput"><span class="identifier">optional</span><span class="special"><</span><span class="identifier">B</span><span class="special">></span>
+ <span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Permutation. Parse <tt class="computeroutput"><span class="identifier">a</span></tt>
+ and <tt class="computeroutput"><span class="identifier">b</span></tt> in any
order
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
Modified: trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/string.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/string.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/quick_reference/qi_parsers/string.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>String Parsers</title>
+<title> String
+ Parsers</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../qi_parsers.html" title="Qi Parsers">
-<link rel="prev" href="numeric.html" title="Numeric Parsers">
-<link rel="next" href="auxiliary.html" title="Auxiliary Parsers">
+<link rel="up" href="../qi_parsers.html" title=" Qi Parsers">
+<link rel="previous" href="numeric.html" title=" Numeric
+ Parsers">
+<link rel="next" href="auxiliary.html" title="
+ Auxiliary Parsers">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +25,15 @@
<div class="spirit-nav">
<a accesskey="p" href="numeric.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../qi_parsers.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="auxiliary.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="String Parsers">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.quick_reference.qi_parsers.string"></a><a class="link" href="string.html" title="String Parsers"> String
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.quick_reference.qi_parsers.string"></a><a href="string.html" title=" String
+ Parsers"> String
Parsers</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<div class="informaltable"><table class="table">
<colgroup>
<col>
@@ -34,98 +41,68 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <a class="link" href="../../reference/string/string.html" title="String (string, lit)"><code class="computeroutput"><span class="identifier">str</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Unused</span></code>
- </p>
- </td>
-<td>
- <p>
- Matches <code class="computeroutput"><span class="identifier">str</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/string/string.html" title="String (string, lit)"><code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">str</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Unused</span></code>
- </p>
- </td>
-<td>
- <p>
- Matches <code class="computeroutput"><span class="identifier">str</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/string/string.html" title="String (string, lit)"><code class="computeroutput"><span class="identifier">string</span><span class="special">(</span><span class="identifier">str</span><span class="special">)</span></code></a>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Str</span></code>
- </p>
- </td>
-<td>
- <p>
- Matches <code class="computeroutput"><span class="identifier">str</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <a class="link" href="../../reference/string/symbols.html" title="Symbols (symbols)"><code class="computeroutput"><span class="identifier">symbols</span><span class="special"><</span><span class="identifier">Ch</span><span class="special">,</span>
- <span class="identifier">T</span><span class="special">></span></code></a>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ str
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Unused</span></tt>
+ </p></td>
+<td><p>
+ Matches <tt class="computeroutput"><span class="identifier">str</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ lit(str)
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Unused</span></tt>
+ </p></td>
+<td><p>
+ Matches <tt class="computeroutput"><span class="identifier">str</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ string(str)
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Str</span></tt>
+ </p></td>
+<td><p>
+ Matches <tt class="computeroutput"><span class="identifier">str</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <a href="../../reference/string/symbols.html" title=" Symbols (symbols)"><tt class="computeroutput"><span class="identifier">symbols</span><span class="special"><</span><span class="identifier">Ch</span><span class="special">,</span>
+ <span class="identifier">T</span><span class="special">></span></tt></a>
+ </p></td>
+<td><p>
N/A
- </p>
- </td>
-<td>
- <p>
- Declare a symbol table, <code class="computeroutput"><span class="identifier">sym</span></code>.
- <code class="computeroutput"><span class="identifier">Ch</span></code> is the underlying
- char type of the symbol table keys. <code class="computeroutput"><span class="identifier">T</span></code>
+ </p></td>
+<td><p>
+ Declare a symbol table, <tt class="computeroutput"><span class="identifier">sym</span></tt>.
+ <tt class="computeroutput"><span class="identifier">Ch</span></tt> is the underlying
+ char type of the symbol table keys. <tt class="computeroutput"><span class="identifier">T</span></tt>
is the data type associated with each key.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">sym</span><span class="special">.</span><span class="identifier">add</span>
@@ -136,37 +113,27 @@
</pre>
<p>
</p>
- </td>
-<td>
- <p>
+</td>
+<td><p>
N/A
- </p>
- </td>
-<td>
- <p>
- Add symbols into a symbol table, <code class="computeroutput"><span class="identifier">sym</span></code>.
- val1 and val2 are optional data of type <code class="computeroutput"><span class="identifier">T</span></code>,
+ </p></td>
+<td><p>
+ Add symbols into a symbol table, <tt class="computeroutput"><span class="identifier">sym</span></tt>.
+ val1 and val2 are optional data of type <tt class="computeroutput"><span class="identifier">T</span></tt>,
the data type associated with each key.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">sym</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">T</span></code>
- </p>
- </td>
-<td>
- <p>
- Matches entries in the symbol table, <code class="computeroutput"><span class="identifier">sym</span></code>.
+<td><p>
+ <tt class="computeroutput"><span class="identifier">sym</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">T</span></tt>
+ </p></td>
+<td><p>
+ Matches entries in the symbol table, <tt class="computeroutput"><span class="identifier">sym</span></tt>.
If successful, returns the data associated with the key
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
Modified: trunk/libs/spirit/doc/html/spirit/qi/quick_reference/semantic_actions.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/quick_reference/semantic_actions.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/quick_reference/semantic_actions.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Semantic Actions</title>
+<title>Semantic
+ Actions</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../quick_reference.html" title="Quick Reference">
-<link rel="prev" href="non_terminals.html" title="Non-terminals">
+<link rel="previous" href="non_terminals.html" title="Non-terminals">
<link rel="next" href="phoenix.html" title="Phoenix">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,18 +23,22 @@
<div class="spirit-nav">
<a accesskey="p" href="non_terminals.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="phoenix.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Semantic Actions">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.quick_reference.semantic_actions"></a><a class="link" href="semantic_actions.html" title="Semantic Actions">Semantic
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.quick_reference.semantic_actions"></a><a href="semantic_actions.html" title="Semantic
+ Actions">Semantic
Actions</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<p>
Has the form:
</p>
<pre class="programlisting"><span class="identifier">p</span><span class="special">[</span><span class="identifier">f</span><span class="special">]</span>
</pre>
<p>
- where <code class="computeroutput"><span class="identifier">f</span></code> is a function with
+ where <tt class="computeroutput"><span class="identifier">f</span></tt> is a function with
the signatures:
</p>
<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Attrib</span> <span class="keyword">const</span><span class="special">&);</span>
@@ -50,7 +55,7 @@
<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">Attrib</span> <span class="keyword">const</span><span class="special">&,</span> <span class="identifier">Context</span><span class="special">&,</span> <span class="keyword">bool</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span>
</pre>
<p>
- The <code class="computeroutput"><span class="identifier">unused_type</span></code> is used
+ The <tt class="computeroutput"><span class="identifier">unused_type</span></tt> is used
in the signatures above to signify 'don't care'.
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Reference</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../index.html" title="Spirit 2.1">
-<link rel="up" href="../qi.html" title="Qi - Writing Parsers">
-<link rel="prev" href="quick_reference/phoenix.html" title="Phoenix">
+<link rel="up" href="../qi.html" title=" Qi - Writing Parsers">
+<link rel="previous" href="quick_reference/phoenix.html" title="Phoenix">
<link rel="next" href="reference/parser_concepts.html" title="Parser Concepts">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,10 +22,13 @@
<div class="spirit-nav">
<a accesskey="p" href="quick_reference/phoenix.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../qi.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="reference/parser_concepts.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Reference">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.qi.reference"></a><a class="link" href="reference.html" title="Reference">Reference</a>
-</h3></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h3 class="title">
+<a name="spirit.qi.reference"></a>Reference
+</h3></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section">Parser Concepts</span></dt>
<dt><span class="section">Basics</span></dt>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,11 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Auxiliary</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="basics.html" title="Basics">
-<link rel="next" href="auxiliary/attr.html" title="Attribute (attr)">
+<link rel="previous" href="basics.html" title="Basics">
+<link rel="next" href="auxiliary/attr.html" title=" Attribute (attr)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,33 +22,36 @@
<div class="spirit-nav">
<a accesskey="p" href="basics.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="auxiliary/attr.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Auxiliary">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.reference.auxiliary"></a><a class="link" href="auxiliary.html" title="Auxiliary">Auxiliary</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.reference.auxiliary"></a>Auxiliary
+</h4></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
-<dt><span class="section"> Attribute (attr
)</span></dt>
-<dt><span class="section"> End of Line (eol
)</span></dt>
+<dt><span class="section"> Attribute (attr)</span></dt>
+<dt><span class="section"> End of Line (eol)</span></dt>
<dt><span class="section"><a href="auxiliary/eoi.html"> End of Input
- (<code class="computeroutput"><span class="identifier">eoi</span></code>)</a></span></dt>
-<dt><span class="section"> Epsilon (eps
)</span></dt>
-<dt><span class="section"> Lazy (lazy
)</span></dt>
+ (<tt class="computeroutput"><span class="identifier">eoi</span></tt>)</a></span></dt>
+<dt><span class="section"> Epsilon (eps)</span></dt>
+<dt><span class="section"> Lazy (lazy)</span></dt>
</dl></div>
<p>
This module includes different auxiliary parsers not fitting into any of
- the other categories. This module includes the <code class="computeroutput"><span class="identifier">attr</span></code>,
- <code class="computeroutput"><span class="identifier">eoi</span></code>, <code class="computeroutput"><span class="identifier">eol</span></code>,
- <code class="computeroutput"><span class="identifier">eps</span></code>, and <code class="computeroutput"><span class="identifier">lazy</span></code> parsers.
+ the other categories. This module includes the <tt class="computeroutput"><span class="identifier">attr</span></tt>,
+ <tt class="computeroutput"><span class="identifier">eoi</span></tt>, <tt class="computeroutput"><span class="identifier">eol</span></tt>,
+ <tt class="computeroutput"><span class="identifier">eps</span></tt>, and <tt class="computeroutput"><span class="identifier">lazy</span></tt> parsers.
</p>
-<a name="spirit.qi.reference.auxiliary.module_header"></a><h6>
-<a name="id656187"></a>
- <a class="link" href="auxiliary.html#spirit.qi.reference.auxiliary.module_header">Module Header</a>
- </h6>
+<a name="spirit.qi.reference.auxiliary.module_header"></a><h5>
+<a name="id467932"></a>
+ Module Header
+ </h5>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/auxiliary.hpp>
</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">qi_auxiliary</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/attr.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Attribute (attr)</title>
+<title> Attribute (attr)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../auxiliary.html" title="Auxiliary">
-<link rel="prev" href="../auxiliary.html" title="Auxiliary">
-<link rel="next" href="eol.html" title="End of Line (eol)">
+<link rel="previous" href="../auxiliary.html" title="Auxiliary">
+<link rel="next" href="eol.html" title=" End of Line (eol)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,13 +22,16 @@
<div class="spirit-nav">
<a accesskey="p" href="../auxiliary.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../auxiliary.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="eol.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Attribute (attr)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.auxiliary.attr"></a><a class="link" href="attr.html" title="Attribute (attr)"> Attribute (<code class="computeroutput"><span class="identifier">attr</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.auxiliary.attr"></a> Attribute (attr)
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.auxiliary.attr.description"></a><h6>
-<a name="id656278"></a>
- <a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.description">Description</a>
+<a name="id468073"></a>
+ Description
</h6>
<p>
The Attribute parser does not consume any input, for this reason it always
@@ -36,71 +39,67 @@
its specified parameter as an attribute.
</p>
<a name="spirit.qi.reference.auxiliary.attr.header"></a><h6>
-<a name="id656295"></a>
- <a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.header">Header</a>
+<a name="id468104"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/auxiliary/attr.hpp>
</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">qi_attr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.auxiliary.attr.namespace"></a><h6>
-<a name="id656369"></a>
- <a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.namespace">Namespace</a>
+<a name="id468218"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
-<tbody><tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">attr</span> <span class="comment">// alias:
- boost::spirit::qi::attr</span></code>
- </p>
- </td></tr></tbody>
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">attr</span> <span class="comment">// alias:
+ boost::spirit::qi::attr</span></tt>
+ </p></td></tr></tbody>
</table></div>
<a name="spirit.qi.reference.auxiliary.attr.model_of"></a><h6>
-<a name="id656447"></a>
- <a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.model_of">Model of</a>
+<a name="id468320"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>
+ PrimitiveParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt></span></dt>
<dd><p>
A arbitrary typed constant value, e.g. 0.0, "Hello", or
a variable of arbitrary type or a __lazy<span class="underline">argument</span>_
that evaluates to an arbitrary type.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">A</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">A</span></tt></span></dt>
<dd><p>
- The type of <code class="computeroutput"><span class="identifier">a</span></code> or
+ The type of <tt class="computeroutput"><span class="identifier">a</span></tt> or
if it is a __lazy<span class="underline">argument</span>_,
its return type.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.auxiliary.attr.expression_semantics"></a><h6>
-<a name="id656541"></a>
- <a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.expression_semantics">Expression
+<a name="id468454"></a>
+ <a href="attr.html#spirit.qi.reference.auxiliary.attr.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>.
+ is not defined in PrimitiveParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -108,34 +107,26 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">attr</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Create a pseudo parser exposing the current value of <code class="computeroutput"><span class="identifier">a</span></code> as its attribute without
+<td><p>
+ <tt class="computeroutput"><span class="identifier">attr</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Create a pseudo parser exposing the current value of <tt class="computeroutput"><span class="identifier">a</span></tt> as its attribute without
consuming any input at parse time.
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.auxiliary.attr.attributes"></a><h6>
-<a name="id656643"></a>
- <a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.attributes">Attributes</a>
+<a name="id468599"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -143,33 +134,25 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">attr</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">A</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">attr</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">A</span></tt>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.auxiliary.attr.complexity"></a><h6>
-<a name="id657825"></a>
- <a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.complexity">Complexity</a>
+<a name="id468714"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -185,8 +168,8 @@
done.
</p>
<a name="spirit.qi.reference.auxiliary.attr.example"></a><h6>
-<a name="id657852"></a>
- <a class="link" href="attr.html#spirit.qi.reference.auxiliary.attr.example">Example</a>
+<a name="id468754"></a>
+ Example
</h6>
<p>
Some using declarations:
@@ -204,7 +187,7 @@
<p>
</p>
<p>
- Using <code class="computeroutput"><span class="identifier">attr</span></code> with literals:
+ Using <tt class="computeroutput"><span class="identifier">attr</span></tt> with literals:
</p>
<p>
</p>
@@ -224,7 +207,7 @@
<p>
</p>
<p>
- Using <code class="computeroutput"><span class="identifier">attr</span></code> with Phoenix function objects:
+ Using <tt class="computeroutput"><span class="identifier">attr</span></tt> with Phoenix function objects:
</p>
<p>
</p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eoi.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eoi.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eoi.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>End of Input (eoi)</title>
+<title> End of Input
+ (eoi)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../auxiliary.html" title="Auxiliary">
-<link rel="prev" href="eol.html" title="End of Line (eol)">
-<link rel="next" href="eps.html" title="Epsilon (eps)">
+<link rel="previous" href="eol.html" title=" End of Line (eol)">
+<link rel="next" href="eps.html" title=" Epsilon (eps)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,69 +23,69 @@
<div class="spirit-nav">
<a accesskey="p" href="eol.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../auxiliary.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="eps.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="End of Input (eoi)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.auxiliary.eoi"></a><a class="link" href="eoi.html" title="End of Input (eoi)"> End of Input
- (<code class="computeroutput"><span class="identifier">eoi</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.auxiliary.eoi"></a><a href="eoi.html" title=" End of Input
+ (eoi)"> End of Input
+ (<tt class="computeroutput"><span class="identifier">eoi</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.auxiliary.eoi.description"></a><h6>
-<a name="id658878"></a>
- <a class="link" href="eoi.html#spirit.qi.reference.auxiliary.eoi.description">Description</a>
+<a name="id470187"></a>
+ Description
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">eoi</span></code> parser matches
+ The <tt class="computeroutput"><span class="identifier">eoi</span></tt> parser matches
the end of input (returns a sucessful match with 0 length when the input
is exhausted)
</p>
<a name="spirit.qi.reference.auxiliary.eoi.header"></a><h6>
-<a name="id658902"></a>
- <a class="link" href="eoi.html#spirit.qi.reference.auxiliary.eoi.header">Header</a>
+<a name="id470229"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/auxiliary/eoi.hpp>
</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">qi_eoi</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.auxiliary.eoi.namespace"></a><h6>
-<a name="id658977"></a>
- <a class="link" href="eoi.html#spirit.qi.reference.auxiliary.eoi.namespace">Namespace</a>
+<a name="id470342"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
-<tbody><tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">eoi</span> <span class="comment">// alias:
- boost::spirit::qi::eoi</span></code>
- </p>
- </td></tr></tbody>
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">eoi</span> <span class="comment">// alias:
+ boost::spirit::qi::eoi</span></tt>
+ </p></td></tr></tbody>
</table></div>
<a name="spirit.qi.reference.auxiliary.eoi.model_of"></a><h6>
-<a name="id659055"></a>
- <a class="link" href="eoi.html#spirit.qi.reference.auxiliary.eoi.model_of">Model of</a>
+<a name="id470445"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>
+ PrimitiveParser
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.qi.reference.auxiliary.eoi.expression_semantics"></a><h6>
-<a name="id659088"></a>
- <a class="link" href="eoi.html#spirit.qi.reference.auxiliary.eoi.expression_semantics">Expression
+<a name="id470498"></a>
+ <a href="eoi.html#spirit.qi.reference.auxiliary.eoi.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>.
+ is not defined in PrimitiveParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -92,33 +93,25 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">eoi</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">eoi</span></tt>
+ </p></td>
+<td><p>
Create a parser that matches the end of input.
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.auxiliary.eoi.attributes"></a><h6>
-<a name="id659172"></a>
- <a class="link" href="eoi.html#spirit.qi.reference.auxiliary.eoi.attributes">Attributes</a>
+<a name="id470612"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -126,33 +119,25 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">eoi</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">eoi</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.auxiliary.eoi.complexity"></a><h6>
-<a name="id659250"></a>
- <a class="link" href="eoi.html#spirit.qi.reference.auxiliary.eoi.complexity">Complexity</a>
+<a name="id470713"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -164,8 +149,8 @@
</p>
</blockquote></div>
<a name="spirit.qi.reference.auxiliary.eoi.example"></a><h6>
-<a name="id659274"></a>
- <a class="link" href="eoi.html#spirit.qi.reference.auxiliary.eoi.example">Example</a>
+<a name="id470749"></a>
+ Example
</h6>
<p>
Some using declarations:
@@ -182,7 +167,7 @@
<p>
</p>
<p>
- Using <code class="computeroutput"><span class="identifier">eoi</span></code>:
+ Using <tt class="computeroutput"><span class="identifier">eoi</span></tt>:
</p>
<p>
</p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eol.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eol.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eol.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>End of Line (eol)</title>
+<title> End of Line (eol)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../auxiliary.html" title="Auxiliary">
-<link rel="prev" href="attr.html" title="Attribute (attr)">
-<link rel="next" href="eoi.html" title="End of Input (eoi)">
+<link rel="previous" href="attr.html" title=" Attribute (attr)">
+<link rel="next" href="eoi.html" title=" End of Input
+ (eoi)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,67 +23,66 @@
<div class="spirit-nav">
<a accesskey="p" href="attr.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../auxiliary.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="eoi.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="End of Line (eol)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.auxiliary.eol"></a><a class="link" href="eol.html" title="End of Line (eol)"> End of Line (<code class="computeroutput"><span class="identifier">eol</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.auxiliary.eol"></a> End of Line (eol)
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.auxiliary.eol.description"></a><h6>
-<a name="id658356"></a>
- <a class="link" href="eol.html#spirit.qi.reference.auxiliary.eol.description">Description</a>
+<a name="id469443"></a>
+ Description
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">eol</span></code> parser matches
+ The <tt class="computeroutput"><span class="identifier">eol</span></tt> parser matches
the end of line (CR/LF and combinations thereof).
</p>
<a name="spirit.qi.reference.auxiliary.eol.header"></a><h6>
-<a name="id658380"></a>
- <a class="link" href="eol.html#spirit.qi.reference.auxiliary.eol.header">Header</a>
+<a name="id469484"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/auxiliary/eol.hpp>
</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">qi_eol</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.auxiliary.eol.namespace"></a><h6>
-<a name="id658455"></a>
- <a class="link" href="eol.html#spirit.qi.reference.auxiliary.eol.namespace">Namespace</a>
+<a name="id469597"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
-<tbody><tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">eol</span> <span class="comment">// alias:
- boost::spirit::qi::eol</span></code>
- </p>
- </td></tr></tbody>
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">eol</span> <span class="comment">// alias:
+ boost::spirit::qi::eol</span></tt>
+ </p></td></tr></tbody>
</table></div>
<a name="spirit.qi.reference.auxiliary.eol.model_of"></a><h6>
-<a name="id658533"></a>
- <a class="link" href="eol.html#spirit.qi.reference.auxiliary.eol.model_of">Model of</a>
+<a name="id469700"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>
+ PrimitiveParser
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.qi.reference.auxiliary.eol.expression_semantics"></a><h6>
-<a name="id658566"></a>
- <a class="link" href="eol.html#spirit.qi.reference.auxiliary.eol.expression_semantics">Expression
+<a name="id469754"></a>
+ <a href="eol.html#spirit.qi.reference.auxiliary.eol.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>.
+ is not defined in PrimitiveParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -90,33 +90,25 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">eol</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">eol</span></tt>
+ </p></td>
+<td><p>
Create a parser that matches the end of line.
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.auxiliary.eol.attributes"></a><h6>
-<a name="id658650"></a>
- <a class="link" href="eol.html#spirit.qi.reference.auxiliary.eol.attributes">Attributes</a>
+<a name="id469870"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -124,33 +116,25 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">eol</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">eol</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.auxiliary.eol.complexity"></a><h6>
-<a name="id658728"></a>
- <a class="link" href="eol.html#spirit.qi.reference.auxiliary.eol.complexity">Complexity</a>
+<a name="id469971"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -162,8 +146,8 @@
</p>
</blockquote></div>
<a name="spirit.qi.reference.auxiliary.eol.example"></a><h6>
-<a name="id658752"></a>
- <a class="link" href="eol.html#spirit.qi.reference.auxiliary.eol.example">Example</a>
+<a name="id470005"></a>
+ Example
</h6>
<p>
Some using declarations:
@@ -180,7 +164,7 @@
<p>
</p>
<p>
- Using <code class="computeroutput"><span class="identifier">eol</span></code>:
+ Using <tt class="computeroutput"><span class="identifier">eol</span></tt>:
</p>
<p>
</p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eps.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eps.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/eps.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Epsilon (eps)</title>
+<title> Epsilon (eps)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../auxiliary.html" title="Auxiliary">
-<link rel="prev" href="eoi.html" title="End of Input (eoi)">
-<link rel="next" href="lazy.html" title="Lazy (lazy)">
+<link rel="previous" href="eoi.html" title=" End of Input
+ (eoi)">
+<link rel="next" href="lazy.html" title=" Lazy (lazy)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,25 +23,28 @@
<div class="spirit-nav">
<a accesskey="p" href="eoi.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../auxiliary.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="lazy.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Epsilon (eps)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.auxiliary.eps"></a><a class="link" href="eps.html" title="Epsilon (eps)"> Epsilon (<code class="computeroutput"><span class="identifier">eps</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.auxiliary.eps"></a> Epsilon (eps)
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.auxiliary.eps.description"></a><h6>
-<a name="id659400"></a>
- <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.description">Description</a>
+<a name="id470932"></a>
+ Description
</h6>
<p>
- The Epsilon (<code class="computeroutput"><span class="identifier">eps</span></code>) is
+ The Epsilon (<tt class="computeroutput"><span class="identifier">eps</span></tt>) is
a multi-purpose parser that returns a zero length match.
</p>
<a name="spirit.qi.reference.auxiliary.eps.simple_form"></a><h6>
-<a name="id659424"></a>
- <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.simple_form">Simple
+<a name="id470973"></a>
+ <a href="eps.html#spirit.qi.reference.auxiliary.eps.simple_form">Simple
Form</a>
</h6>
<p>
- In its simplest form, <code class="computeroutput"><span class="identifier">eps</span></code>
+ In its simplest form, <tt class="computeroutput"><span class="identifier">eps</span></tt>
matches the null string and always returns a match of zero length:
</p>
<pre class="programlisting"><span class="identifier">eps</span> <span class="comment">// always returns a zero-length match
@@ -53,87 +57,83 @@
<pre class="programlisting"><span class="identifier">r</span> <span class="special">=</span> <span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span> <span class="special">|</span> <span class="identifier">c</span> <span class="special">|</span> <span class="identifier">eps</span><span class="special">[</span><span class="identifier">error</span><span class="special">()];</span> <span class="comment">// Call error if a, b, and c fail to match
</span></pre>
<a name="spirit.qi.reference.auxiliary.eps.semantic_predicate"></a><h6>
-<a name="id659525"></a>
- <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.semantic_predicate">Semantic
+<a name="id471119"></a>
+ <a href="eps.html#spirit.qi.reference.auxiliary.eps.semantic_predicate">Semantic
Predicate</a>
</h6>
<p>
Semantic predicates allow you to attach a conditional function anywhere
in the grammar. In this role, the epsilon takes a __lazy<span class="underline">argument</span>_
- that returns <code class="computeroutput"><span class="keyword">true</span></code> or <code class="computeroutput"><span class="keyword">false</span></code>. The __lazy<span class="underline">argument</span>_
+ that returns <tt class="computeroutput"><span class="keyword">true</span></tt> or <tt class="computeroutput"><span class="keyword">false</span></tt>. The __lazy<span class="underline">argument</span>_
is typically a test that is called to resolve ambiguity in the grammar.
A parse failure will be reported when the __lazy<span class="underline">argument</span>_
- result evaluates to <code class="computeroutput"><span class="keyword">false</span></code>.
+ result evaluates to <tt class="computeroutput"><span class="keyword">false</span></tt>.
Otherwise an empty match will be reported. The general form is:
</p>
<pre class="programlisting"><span class="identifier">eps_p</span><span class="special">(</span><span class="identifier">f</span><span class="special">)</span> <span class="special">>></span> <span class="identifier">rest</span><span class="special">;</span>
</pre>
<p>
- The __lazy<span class="underline">argument</span>_ <code class="computeroutput"><span class="identifier">f</span></code> is called to do a semantic test (say,
+ The __lazy<span class="underline">argument</span>_ <tt class="computeroutput"><span class="identifier">f</span></tt> is called to do a semantic test (say,
checking if a symbol is in the symbol table). If test returns true,
- <code class="computeroutput"><span class="identifier">rest</span></code> will be evaluated.
+ <tt class="computeroutput"><span class="identifier">rest</span></tt> will be evaluated.
Otherwise, the production will return early with a no-match without ever
touching rest.
</p>
<a name="spirit.qi.reference.auxiliary.eps.header"></a><h6>
-<a name="id659633"></a>
- <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.header">Header</a>
+<a name="id471294"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/auxiliary/eps.hpp>
</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">qi_eps</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.auxiliary.eps.namespace"></a><h6>
-<a name="id659707"></a>
- <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.namespace">Namespace</a>
+<a name="id471407"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
-<tbody><tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">eps</span> <span class="comment">// alias:
- boost::spirit::qi::eps</span></code>
- </p>
- </td></tr></tbody>
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">eps</span> <span class="comment">// alias:
+ boost::spirit::qi::eps</span></tt>
+ </p></td></tr></tbody>
</table></div>
<a name="spirit.qi.reference.auxiliary.eps.model_of"></a><h6>
-<a name="id659785"></a>
- <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.model_of">Model of</a>
+<a name="id471508"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>
+ PrimitiveParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">f</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">f</span></tt></span></dt>
<dd><p>
A __lazy<span class="underline">argument</span>_ that evaluates
- <code class="computeroutput"><span class="keyword">bool</span></code>.
+ <tt class="computeroutput"><span class="keyword">bool</span></tt>.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.auxiliary.eps.expression_semantics"></a><h6>
-<a name="id659856"></a>
- <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.expression_semantics">Expression
+<a name="id471611"></a>
+ <a href="eps.html#spirit.qi.reference.auxiliary.eps.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>.
+ is not defined in PrimitiveParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -141,49 +141,37 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">eps</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">eps</span></tt>
+ </p></td>
+<td><p>
Match an empty string (always matches).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">f</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- If <code class="computeroutput"><span class="identifier">f</span></code> evaluates
- to <code class="computeroutput"><span class="keyword">true</span></code>, return
+<td><p>
+ <tt class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">f</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ If <tt class="computeroutput"><span class="identifier">f</span></tt> evaluates
+ to <tt class="computeroutput"><span class="keyword">true</span></tt>, return
a zero length match.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.auxiliary.eps.attributes"></a><h6>
-<a name="id659990"></a>
- <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.attributes">Attributes</a>
+<a name="id471794"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -191,48 +179,40 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">eps</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">eps</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.auxiliary.eps.complexity"></a><h6>
-<a name="id660068"></a>
- <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.complexity">Complexity</a>
+<a name="id471893"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- For plain (<code class="computeroutput"><span class="identifier">eps</span></code>) the
- complexity is O(1). For Semantic predicates (<code class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">f</span><span class="special">)</span></code>) the complexity is defined by the
- function <code class="computeroutput"><span class="identifier">f</span></code>.
+ For plain (<tt class="computeroutput"><span class="identifier">eps</span></tt>) the
+ complexity is O(1). For Semantic predicates (<tt class="computeroutput"><span class="identifier">eps</span><span class="special">(</span><span class="identifier">f</span><span class="special">)</span></tt>) the complexity is defined by the
+ function <tt class="computeroutput"><span class="identifier">f</span></tt>.
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.qi.reference.auxiliary.eps.example"></a><h6>
-<a name="id660126"></a>
- <a class="link" href="eps.html#spirit.qi.reference.auxiliary.eps.example">Example</a>
+<a name="id471980"></a>
+ Example
</h6>
<p>
Some using declarations:
@@ -254,7 +234,7 @@
<p>
</p>
<p>
- Basic <code class="computeroutput"><span class="identifier">eps</span></code>:
+ Basic <tt class="computeroutput"><span class="identifier">eps</span></tt>:
</p>
<p>
</p>
@@ -270,9 +250,9 @@
<p>
</p>
<p>
- This example simulates the "classic" <code class="computeroutput"><span class="identifier">if_p</span></code>
- parser. Here, <code class="computeroutput"><span class="identifier">int_</span></code>
- will be tried only if the condition, <code class="computeroutput"><span class="identifier">c</span></code>,
+ This example simulates the "classic" <tt class="computeroutput"><span class="identifier">if_p</span></tt>
+ parser. Here, <tt class="computeroutput"><span class="identifier">int_</span></tt>
+ will be tried only if the condition, <tt class="computeroutput"><span class="identifier">c</span></tt>,
is true.
</p>
<p>
@@ -290,12 +270,12 @@
<p>
</p>
<p>
- This example simulates the "classic" <code class="computeroutput"><span class="identifier">while_p</span></code>
+ This example simulates the "classic" <tt class="computeroutput"><span class="identifier">while_p</span></tt>
parser. Here, the kleene loop will exit once the condition, c, becomes
- true. Notice that the condition, <code class="computeroutput"><span class="identifier">c</span><span class="special">,</span> <span class="identifier">is</span> <span class="identifier">turned</span> <span class="identifier">to</span>
- </code>false<code class="computeroutput"> <span class="identifier">when</span> <span class="identifier">we</span> <span class="identifier">get</span>
+ true. Notice that the condition, <tt class="computeroutput"><span class="identifier">c</span><span class="special">,</span> <span class="identifier">is</span> <span class="identifier">turned</span> <span class="identifier">to</span>
+ </tt>false<tt class="computeroutput"> <span class="identifier">when</span> <span class="identifier">we</span> <span class="identifier">get</span>
<span class="identifier">to</span> <span class="identifier">parse</span>
- </code>4`.
+ </tt>4`.
</p>
<p>
</p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/lazy.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/lazy.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/auxiliary/lazy.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Lazy (lazy)</title>
+<title> Lazy (lazy)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../auxiliary.html" title="Auxiliary">
-<link rel="prev" href="eps.html" title="Epsilon (eps)">
-<link rel="next" href="../binary.html" title="Binary">
+<link rel="previous" href="eps.html" title=" Epsilon (eps)">
+<link rel="next" href="../binary.html" title=" Binary">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,79 +22,78 @@
<div class="spirit-nav">
<a accesskey="p" href="eps.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../auxiliary.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../binary.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Lazy (lazy)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.auxiliary.lazy"></a><a class="link" href="lazy.html" title="Lazy (lazy)"> Lazy (<code class="computeroutput"><span class="identifier">lazy</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.auxiliary.lazy"></a> Lazy (lazy)
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.auxiliary.lazy.description"></a><h6>
-<a name="id660690"></a>
- <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.description">Description</a>
+<a name="id472761"></a>
+ Description
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">lazy</span></code> parser, as its
+ The <tt class="computeroutput"><span class="identifier">lazy</span></tt> parser, as its
name suggests, invokes a lazy Phoenix
function that returns a parser at parse time. This parser will be used
once it is created to continue the parse.
</p>
<a name="spirit.qi.reference.auxiliary.lazy.header"></a><h6>
-<a name="id660720"></a>
- <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.header">Header</a>
+<a name="id472809"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/auxiliary/lazy.hpp>
</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">qi_lazy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.auxiliary.lazy.namespace"></a><h6>
-<a name="id660794"></a>
- <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.namespace">Namespace</a>
+<a name="id472922"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
-<tbody><tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lazy</span> <span class="comment">// alias:
- boost::spirit::qi::lazy</span></code>
- </p>
- </td></tr></tbody>
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lazy</span> <span class="comment">// alias:
+ boost::spirit::qi::lazy</span></tt>
+ </p></td></tr></tbody>
</table></div>
<a name="spirit.qi.reference.auxiliary.lazy.model_of"></a><h6>
-<a name="id660872"></a>
- <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.model_of">Model of</a>
+<a name="id473025"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
+ Parser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">fp</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">fp</span></tt></span></dt>
<dd><p>
A __lazy<span class="underline">argument</span>_ that evaluates
- to a <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>.
+ to a Parser.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.auxiliary.lazy.expression_semantics"></a><h6>
-<a name="id660945"></a>
- <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.expression_semantics">Expression
+<a name="id473132"></a>
+ <a href="lazy.html#spirit.qi.reference.auxiliary.lazy.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>.
+ is not defined in Parser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -102,55 +101,43 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">fp</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">fp</span></tt>
+ </p></td>
+<td><p>
Create a lazy-parser from a __lazy<span class="underline">argument</span>_,
- <code class="computeroutput"><span class="identifier">fp</span></code>. <code class="computeroutput"><span class="identifier">fp</span></code> will be invoked at parse
- time. <code class="computeroutput"><span class="identifier">fp</span></code> is expected
- to return a <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a> object. This
+ <tt class="computeroutput"><span class="identifier">fp</span></tt>. <tt class="computeroutput"><span class="identifier">fp</span></tt> will be invoked at parse
+ time. <tt class="computeroutput"><span class="identifier">fp</span></tt> is expected
+ to return a Parser object. This
parser is then invoked in order to parse the input.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fp</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fp</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Create a lazy-parser from a __lazy<span class="underline">argument</span>_,
- <code class="computeroutput"><span class="identifier">fp</span></code>. <code class="computeroutput"><span class="identifier">fp</span></code> will be invoked at parse
- time. <code class="computeroutput"><span class="identifier">fp</span></code> is expected
- to return a <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a> object. This
+ <tt class="computeroutput"><span class="identifier">fp</span></tt>. <tt class="computeroutput"><span class="identifier">fp</span></tt> will be invoked at parse
+ time. <tt class="computeroutput"><span class="identifier">fp</span></tt> is expected
+ to return a Parser object. This
parser is then invoked in order to parse the input.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.auxiliary.lazy.attributes"></a><h6>
-<a name="id661136"></a>
- <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.attributes">Attributes</a>
+<a name="id473415"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -158,55 +145,43 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">fp</span></code>
- </p>
- </td>
-<td>
- <p>
- The attribute type of the return type of <code class="computeroutput"><span class="identifier">fp</span></code>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">fp</span></tt>
+ </p></td>
+<td><p>
+ The attribute type of the return type of <tt class="computeroutput"><span class="identifier">fp</span></tt>.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fp</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- The attribute type of the return type of <code class="computeroutput"><span class="identifier">fp</span></code>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lazy</span><span class="special">(</span><span class="identifier">fp</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ The attribute type of the return type of <tt class="computeroutput"><span class="identifier">fp</span></tt>.
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.auxiliary.lazy.complexity"></a><h6>
-<a name="id661258"></a>
- <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.complexity">Complexity</a>
+<a name="id473573"></a>
+ Complexity
</h6>
<p>
- The complexity of the <code class="computeroutput"><span class="identifier">lazy</span></code>
- parser is determined by the complexity of the parser returned from <code class="computeroutput"><span class="identifier">fp</span></code>.
+ The complexity of the <tt class="computeroutput"><span class="identifier">lazy</span></tt>
+ parser is determined by the complexity of the parser returned from <tt class="computeroutput"><span class="identifier">fp</span></tt>.
</p>
<a name="spirit.qi.reference.auxiliary.lazy.example"></a><h6>
-<a name="id661290"></a>
- <a class="link" href="lazy.html#spirit.qi.reference.auxiliary.lazy.example">Example</a>
+<a name="id473625"></a>
+ Example
</h6>
<p>
Some using declarations:
@@ -225,7 +200,7 @@
<p>
</p>
<p>
- Using <code class="computeroutput"><span class="identifier">lazy</span></code>:
+ Using <tt class="computeroutput"><span class="identifier">lazy</span></tt>:
</p>
<p>
</p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/basics.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/basics.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/basics.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Basics</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="parser_concepts/naryparser.html" title="NaryParser">
+<link rel="previous" href="parser_concepts/naryparser.html" title="NaryParser">
<link rel="next" href="auxiliary.html" title="Auxiliary">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,14 +22,17 @@
<div class="spirit-nav">
<a accesskey="p" href="parser_concepts/naryparser.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="auxiliary.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Basics">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.reference.basics"></a><a class="link" href="basics.html" title="Basics">Basics</a>
-</h4></div></div></div>
-<a name="spirit.qi.reference.basics.lazy_argument"></a><h6>
-<a name="id652120"></a>
- <a class="link" href="basics.html#spirit.qi.reference.basics.lazy_argument">Lazy Argument</a>
- </h6>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.reference.basics"></a>Basics
+</h4></div></div>
+<div></div>
+</div>
+<a name="spirit.qi.reference.basics.lazy_argument"></a><h5>
+<a name="id463119"></a>
+ Lazy Argument
+ </h5>
<p>
Some parsers (e.g. primitives and non-terminals) may take in additional
attributes. Such parsers take the form:
@@ -37,39 +40,39 @@
<pre class="programlisting"><span class="identifier">p</span><span class="special">(</span><span class="identifier">a1</span><span class="special">,</span> <span class="identifier">a2</span><span class="special">,...</span> <span class="identifier">aN</span><span class="special">)</span>
</pre>
<p>
- where <code class="computeroutput"><span class="identifier">p</span></code> is a parser. Each
+ where <tt class="computeroutput"><span class="identifier">p</span></tt> is a parser. Each
of the arguments (a1...aN) can either be an immediate value, or a function,
- <code class="computeroutput"><span class="identifier">f</span></code>, with signature:
+ <tt class="computeroutput"><span class="identifier">f</span></tt>, with signature:
</p>
<pre class="programlisting"><span class="identifier">T</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">Context</span><span class="special">)</span>
</pre>
<p>
- where <code class="computeroutput"><span class="identifier">T</span></code>, the function's
- return value, is compatible with the argument type expected and <code class="computeroutput"><span class="identifier">Context</span></code> is the parser's Context type
- (The first argument is <code class="computeroutput"><span class="identifier">unused</span></code>
- to make the <code class="computeroutput"><span class="identifier">Context</span></code> the
+ where <tt class="computeroutput"><span class="identifier">T</span></tt>, the function's
+ return value, is compatible with the argument type expected and <tt class="computeroutput"><span class="identifier">Context</span></tt> is the parser's Context type
+ (The first argument is <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ to make the <tt class="computeroutput"><span class="identifier">Context</span></tt> the
second argument. This is done for uniformity with Semantic Actions).
</p>
-<a name="spirit.qi.reference.basics.character_encoding_namespace"></a><h6>
-<a name="id652257"></a>
- <a class="link" href="basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
+<a name="spirit.qi.reference.basics.character_encoding_namespace"></a><h5>
+<a name="id463327"></a>
+ <a href="basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
Encoding Namespace</a>
- </h6>
+ </h5>
<p>
- Some parsers need to know which character set a <code class="computeroutput"><span class="keyword">char</span></code>
- or <code class="computeroutput"><span class="keyword">wchar_t</span></code> is operating on.
- For example, the <code class="computeroutput"><span class="identifier">alnum</span></code>
+ Some parsers need to know which character set a <tt class="computeroutput"><span class="keyword">char</span></tt>
+ or <tt class="computeroutput"><span class="keyword">wchar_t</span></tt> is operating on.
+ For example, the <tt class="computeroutput"><span class="identifier">alnum</span></tt>
parser works differently with ISO8859.1 and ASCII encodings. Where necessary,
Spirit encodes (tags) the parser with the character set.
</p>
<p>
We have a namespace for each character set Spirit will be supporting. That
- includes <code class="computeroutput"><span class="identifier">ascii</span></code>, <code class="computeroutput"><span class="identifier">iso8859_1</span></code>, <code class="computeroutput"><span class="identifier">standard</span></code>
- and <code class="computeroutput"><span class="identifier">standard_wide</span></code> (and
- in the future, <code class="computeroutput"><span class="identifier">unicode</span></code>).
+ includes <tt class="computeroutput"><span class="identifier">ascii</span></tt>, <tt class="computeroutput"><span class="identifier">iso8859_1</span></tt>, <tt class="computeroutput"><span class="identifier">standard</span></tt>
+ and <tt class="computeroutput"><span class="identifier">standard_wide</span></tt> (and
+ in the future, <tt class="computeroutput"><span class="identifier">unicode</span></tt>).
In each of the character encoding namespaces, we place tagged versions
- of parsers such as <code class="computeroutput"><span class="identifier">alnum</span></code>,
- <code class="computeroutput"><span class="identifier">space</span></code> etc.
+ of parsers such as <tt class="computeroutput"><span class="identifier">alnum</span></tt>,
+ <tt class="computeroutput"><span class="identifier">space</span></tt> etc.
</p>
<p>
Example:
@@ -79,17 +82,17 @@
<p>
Namespaces:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
boost::spirit::ascii
</li>
-<li class="listitem">
+<li>
boost::spirit::iso8859_1
</li>
-<li class="listitem">
+<li>
boost::spirit::standard
</li>
-<li class="listitem">
+<li>
boost::spirit::standard_wide
</li>
</ul></div>
@@ -97,24 +100,24 @@
For ease of use, the components in this namespaces are also brought into
the qi sub-namespaces with the same names:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
boost::spirit::qi::ascii
</li>
-<li class="listitem">
+<li>
boost::spirit::qi::iso8859_1
</li>
-<li class="listitem">
+<li>
boost::spirit::qi::standard
</li>
-<li class="listitem">
+<li>
boost::spirit::qi::standard_wide
</li>
</ul></div>
-<a name="spirit.qi.reference.basics.examples"></a><h6>
-<a name="id652440"></a>
- <a class="link" href="basics.html#spirit.qi.reference.basics.examples">Examples</a>
- </h6>
+<a name="spirit.qi.reference.basics.examples"></a><h5>
+<a name="id463602"></a>
+ Examples
+ </h5>
<p>
All sections in the reference present some real world examples. The examples
use a common test harness to keep the example code as minimal and direct
@@ -225,8 +228,8 @@
<p>
</p>
<p>
- The <code class="computeroutput"><span class="identifier">print_info</span></code> utility
- function prints information contained in the <code class="computeroutput"><span class="identifier">info</span></code>
+ The <tt class="computeroutput"><span class="identifier">print_info</span></tt> utility
+ function prints information contained in the <tt class="computeroutput"><span class="identifier">info</span></tt>
class.
</p>
<p>
@@ -263,20 +266,20 @@
</p>
<p>
</p>
-<a name="spirit.qi.reference.basics.string"></a><h6>
-<a name="id655561"></a>
- <a class="link" href="basics.html#spirit.qi.reference.basics.string">String</a>
- </h6>
-<a name="spirit.qi.reference.basics.header"></a><h6>
-<a name="id655574"></a>
- <a class="link" href="basics.html#spirit.qi.reference.basics.header">Header</a>
- </h6>
+<a name="spirit.qi.reference.basics.string"></a><h5>
+<a name="id467033"></a>
+ String
+ </h5>
+<a name="spirit.qi.reference.basics.header"></a><h5>
+<a name="id467055"></a>
+ Header
+ </h5>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/support/string_traits.hpp>
</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">support_string_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- A string can be any object <code class="computeroutput"><span class="identifier">s</span></code>,
- of type, <code class="computeroutput"><span class="identifier">S</span></code>, that satisfies
+ A string can be any object <tt class="computeroutput"><span class="identifier">s</span></tt>,
+ of type, <tt class="computeroutput"><span class="identifier">S</span></tt>, that satisfies
the following expression traits:
</p>
<div class="informaltable"><table class="table">
@@ -285,112 +288,89 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_string</span><span class="special"><</span><span class="identifier">S</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- Metafunction that evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
- if a certain type, <code class="computeroutput"><span class="identifier">S</span></code>
- is a string, <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_string</span><span class="special"><</span><span class="identifier">S</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ Metafunction that evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
+ if a certain type, <tt class="computeroutput"><span class="identifier">S</span></tt>
+ is a string, <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>
otherwise (See <a href="../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
Boolean Constant</a>).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">char_type_of</span><span class="special"><</span><span class="identifier">S</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">char_type_of</span><span class="special"><</span><span class="identifier">S</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
Metafunction that returns the underlying char type of a string
- type, <code class="computeroutput"><span class="identifier">S</span></code>.
- </p>
- </td>
+ type, <tt class="computeroutput"><span class="identifier">S</span></tt>.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">get_c_string</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Function that returns the underlying raw C-string from <code class="computeroutput"><span class="identifier">s</span></code>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">get_c_string</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Function that returns the underlying raw C-string from <tt class="computeroutput"><span class="identifier">s</span></tt>.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">get_begin</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">get_begin</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Function that returns an STL
- iterator from <code class="computeroutput"><span class="identifier">s</span></code>
+ iterator from <tt class="computeroutput"><span class="identifier">s</span></tt>
that points to the beginning the string.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">get_end</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">get_end</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Function that returns an STL
- iterator from <code class="computeroutput"><span class="identifier">s</span></code>
+ iterator from <tt class="computeroutput"><span class="identifier">s</span></tt>
that points to the end of the string.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
-<a name="spirit.qi.reference.basics.models"></a><h6>
-<a name="id656047"></a>
- <a class="link" href="basics.html#spirit.qi.reference.basics.models">Models</a>
- </h6>
+<a name="spirit.qi.reference.basics.models"></a><h5>
+<a name="id467712"></a>
+ Models
+ </h5>
<p>
Predefined models include:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
any literal string, e.g. "Hello, World",
</li>
-<li class="listitem">
+<li>
a pointer/reference to a null-terminated array of characters
</li>
-<li class="listitem">
- a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">Char</span><span class="special">></span></code>
+<li>
+ a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">Char</span><span class="special">></span></tt>
</li>
</ul></div>
<p>
- The namespace <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></code> is open for users to provide their
+ The namespace <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span></tt> is open for users to provide their
own specializations. The customization points implemented by <span class="emphasis"><em>Spirit.Qi</em></span>
usable to customize the behavior of parsers are described in the section
- <a class="link" href="../../abstracts/customize.html" title="Customization of Spirit's Attribute Handling">Customization of Attribute Handling</a>.
+ <a href="../../advanced/customize.html" title=" Customization of Spirit's
+ Attribute Handling">Customization of Attribute Handling</a>.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/binary.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/binary.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/binary.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Binary</title>
+<title> Binary</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="auxiliary/lazy.html" title="Lazy (lazy)">
-<link rel="next" href="binary/binary_native.html" title="Binary Native Endian">
+<link rel="previous" href="auxiliary/lazy.html" title=" Lazy (lazy)">
+<link rel="next" href="binary/binary_native.html" title=" Binary
+ Native Endian">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,10 +23,13 @@
<div class="spirit-nav">
<a accesskey="p" href="auxiliary/lazy.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="binary/binary_native.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Binary">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.reference.binary"></a><a class="link" href="binary.html" title="Binary"> Binary</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.reference.binary"></a> Binary
+</h4></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section"><a href="binary/binary_native.html"> Binary
Native Endian</a></span></dt>
@@ -40,15 +44,15 @@
It includes parsers for default (native), little, and big endian binary
input.
</p>
-<a name="spirit.qi.reference.binary.module_header"></a><h6>
-<a name="id661554"></a>
- <a class="link" href="binary.html#spirit.qi.reference.binary.module_header">Module Header</a>
- </h6>
+<a name="spirit.qi.reference.binary.module_header"></a><h5>
+<a name="id474001"></a>
+ Module Header
+ </h5>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/binary.hpp>
</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">qi_binary</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/binary/binary_big.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/binary/binary_big.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/binary/binary_big.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Binary Big Endian</title>
+<title> Binary Big
+ Endian</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../binary.html" title="Binary">
-<link rel="prev" href="binary_little.html" title="Binary Little Endian">
+<link rel="up" href="../binary.html" title=" Binary">
+<link rel="previous" href="binary_little.html" title=" Binary
+ Little Endian">
<link rel="next" href="../char.html" title="Char">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,118 +24,114 @@
<div class="spirit-nav">
<a accesskey="p" href="binary_little.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../binary.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../char.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Binary Big Endian">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.binary.binary_big"></a><a class="link" href="binary_big.html" title="Binary Big Endian"> Binary Big
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.binary.binary_big"></a><a href="binary_big.html" title=" Binary Big
+ Endian"> Binary Big
Endian</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.binary.binary_big.description"></a><h6>
-<a name="id667724"></a>
- <a class="link" href="binary_big.html#spirit.qi.reference.binary.binary_big.description">Description</a>
+<a name="id479041"></a>
+ Description
</h6>
<p>
Binary big endian parsers are designed to parse binary byte streams that
are laid out in big endian.
</p>
<a name="spirit.qi.reference.binary.binary_big.header"></a><h6>
-<a name="id667741"></a>
- <a class="link" href="binary_big.html#spirit.qi.reference.binary.binary_big.header">Header</a>
+<a name="id479072"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/binary.hpp>
</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">qi_binary</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.binary.binary_big.namespace"></a><h6>
-<a name="id667815"></a>
- <a class="link" href="binary_big.html#spirit.qi.reference.binary.binary_big.namespace">Namespace</a>
+<a name="id479186"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">big_word</span> <span class="comment">//
- alias: boost::spirit::qi::big_word</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">big_dword</span> <span class="comment">//
- alias: boost::spirit::qi::big_dword</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">big_qword</span> <span class="comment">//
- alias: boost::spirit::qi::big_qword</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">big_word</span> <span class="comment">//
+ alias: boost::spirit::qi::big_word</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">big_dword</span> <span class="comment">//
+ alias: boost::spirit::qi::big_dword</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">big_qword</span> <span class="comment">//
+ alias: boost::spirit::qi::big_qword</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- <code class="computeroutput"><span class="identifier">big_qword</span></code> is only available
- on platforms where the preprocessor constant <code class="computeroutput"><span class="identifier">BOOST_HAS_LONG_LONG</span></code>
- is defined (i.e. on platforms having native support for <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span>
- <span class="keyword">long</span></code> (64 bit) integer types).
+<tr><td colspan="2" align="left" valign="top"><p>
+ <tt class="computeroutput"><span class="identifier">big_qword</span></tt> is only available
+ on platforms where the preprocessor constant <tt class="computeroutput"><span class="identifier">BOOST_HAS_LONG_LONG</span></tt>
+ is defined (i.e. on platforms having native support for <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span>
+ <span class="keyword">long</span></tt> (64 bit) integer types).
</p></td></tr>
</table></div>
<a name="spirit.qi.reference.binary.binary_big.model_of"></a><h6>
-<a name="id668009"></a>
- <a class="link" href="binary_big.html#spirit.qi.reference.binary.binary_big.model_of">Model
+<a name="id479447"></a>
+ <a href="binary_big.html#spirit.qi.reference.binary.binary_big.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>
+ PrimitiveParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">w</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">w</span></tt></span></dt>
<dd><p>
- A 16 bit binary value or a <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
+ A 16 bit binary value or a <a href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
Argument</a> that evaluates to a 16 bit binary value. This value
is always in native endian.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">dw</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">dw</span></tt></span></dt>
<dd><p>
- A 32 bit binary value or a <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
+ A 32 bit binary value or a <a href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
Argument</a> that evaluates to a 32 bit binary value. This value
is always in native endian.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">qw</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">qw</span></tt></span></dt>
<dd><p>
- A 64 bit binary value or a <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
+ A 64 bit binary value or a <a href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
Argument</a> that evaluates to a 64 bit binary value. This value
is always in native endian.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.binary.binary_big.expression_semantics"></a><h6>
-<a name="id668121"></a>
- <a class="link" href="binary_big.html#spirit.qi.reference.binary.binary_big.expression_semantics">Expression
+<a name="id479609"></a>
+ <a href="binary_big.html#spirit.qi.reference.binary.binary_big.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>.
+ is not defined in PrimitiveParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -141,95 +139,67 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_word</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_word</span></tt>
+ </p></td>
+<td><p>
Matches any 16 bit big endian binary.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_dword</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_dword</span></tt>
+ </p></td>
+<td><p>
Matches any 32 bit big endian binary.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_qword</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_qword</span></tt>
+ </p></td>
+<td><p>
Matches any 64 bit big endian binary.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Matches an exact 16 bit big endian binary.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Matches an exact 32 bit big endian binary.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Matches an exact 32 bit big endian binary.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.binary.binary_big.attributes"></a><h6>
-<a name="id668360"></a>
- <a class="link" href="binary_big.html#spirit.qi.reference.binary.binary_big.attributes">Attributes</a>
+<a name="id479919"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -237,95 +207,67 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_word</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least16_t</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_dword</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least32_t</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_qword</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least64_t</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">big_qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_word</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least16_t</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_dword</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least32_t</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_qword</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least64_t</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">big_qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.binary.binary_big.complexity"></a><h6>
-<a name="id668648"></a>
- <a class="link" href="binary_big.html#spirit.qi.reference.binary.binary_big.complexity">Complexity</a>
+<a name="id480295"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -337,8 +279,8 @@
</p>
</blockquote></div>
<a name="spirit.qi.reference.binary.binary_big.example"></a><h6>
-<a name="id668672"></a>
- <a class="link" href="binary_big.html#spirit.qi.reference.binary.binary_big.example">Example</a>
+<a name="id480331"></a>
+ Example
</h6>
<p>
</p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/binary/binary_little.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/binary/binary_little.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/binary/binary_little.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Binary Little Endian</title>
+<title> Binary
+ Little Endian</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../binary.html" title="Binary">
-<link rel="prev" href="binary_native.html" title="Binary Native Endian">
-<link rel="next" href="binary_big.html" title="Binary Big Endian">
+<link rel="up" href="../binary.html" title=" Binary">
+<link rel="previous" href="binary_native.html" title=" Binary
+ Native Endian">
+<link rel="next" href="binary_big.html" title=" Binary Big
+ Endian">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,119 +25,115 @@
<div class="spirit-nav">
<a accesskey="p" href="binary_native.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../binary.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="binary_big.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Binary Little Endian">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.binary.binary_little"></a><a class="link" href="binary_little.html" title="Binary Little Endian"> Binary
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.binary.binary_little"></a><a href="binary_little.html" title=" Binary
+ Little Endian"> Binary
Little Endian</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.binary.binary_little.description"></a><h6>
-<a name="id664473"></a>
- <a class="link" href="binary_little.html#spirit.qi.reference.binary.binary_little.description">Description</a>
+<a name="id477048"></a>
+ Description
</h6>
<p>
Binary little endian parsers are designed to parse binary byte streams
that are laid out in little endian.
</p>
<a name="spirit.qi.reference.binary.binary_little.header"></a><h6>
-<a name="id664490"></a>
- <a class="link" href="binary_little.html#spirit.qi.reference.binary.binary_little.header">Header</a>
+<a name="id477079"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/binary.hpp>
</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">qi_binary</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.binary.binary_little.namespace"></a><h6>
-<a name="id664564"></a>
- <a class="link" href="binary_little.html#spirit.qi.reference.binary.binary_little.namespace">Namespace</a>
+<a name="id477192"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">little_word</span> <span class="comment">//
- alias: boost::spirit::qi::little_word</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">little_dword</span> <span class="comment">//
- alias: boost::spirit::qi::little_dword</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">little_qword</span> <span class="comment">//
- alias: boost::spirit::qi::little_qword</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">little_word</span> <span class="comment">//
+ alias: boost::spirit::qi::little_word</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">little_dword</span> <span class="comment">//
+ alias: boost::spirit::qi::little_dword</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">little_qword</span> <span class="comment">//
+ alias: boost::spirit::qi::little_qword</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- <code class="computeroutput"><span class="identifier">little_qword</span></code> is only
- available on platforms where the preprocessor constant <code class="computeroutput"><span class="identifier">BOOST_HAS_LONG_LONG</span></code> is defined (i.e.
- on platforms having native support for <code class="computeroutput"><span class="keyword">unsigned</span>
- <span class="keyword">long</span> <span class="keyword">long</span></code>
+<tr><td colspan="2" align="left" valign="top"><p>
+ <tt class="computeroutput"><span class="identifier">little_qword</span></tt> is only
+ available on platforms where the preprocessor constant <tt class="computeroutput"><span class="identifier">BOOST_HAS_LONG_LONG</span></tt> is defined (i.e.
+ on platforms having native support for <tt class="computeroutput"><span class="keyword">unsigned</span>
+ <span class="keyword">long</span> <span class="keyword">long</span></tt>
(64 bit) integer types).
</p></td></tr>
</table></div>
<a name="spirit.qi.reference.binary.binary_little.model_of"></a><h6>
-<a name="id664759"></a>
- <a class="link" href="binary_little.html#spirit.qi.reference.binary.binary_little.model_of">Model
+<a name="id477454"></a>
+ <a href="binary_little.html#spirit.qi.reference.binary.binary_little.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>
+ PrimitiveParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">w</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">w</span></tt></span></dt>
<dd><p>
- A 16 bit binary value or a <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
+ A 16 bit binary value or a <a href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
Argument</a> that evaluates to a 16 bit binary value. This value
is always in native endian.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">dw</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">dw</span></tt></span></dt>
<dd><p>
- A 32 bit binary value or a <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
+ A 32 bit binary value or a <a href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
Argument</a> that evaluates to a 32 bit binary value. This value
is always in native endian.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">qw</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">qw</span></tt></span></dt>
<dd><p>
- A 64 bit binary value or a <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
+ A 64 bit binary value or a <a href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
Argument</a> that evaluates to a 64 bit binary value. This value
is always in native endian.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.binary.binary_little.expression_semantics"></a><h6>
-<a name="id664870"></a>
- <a class="link" href="binary_little.html#spirit.qi.reference.binary.binary_little.expression_semantics">Expression
+<a name="id477618"></a>
+ <a href="binary_little.html#spirit.qi.reference.binary.binary_little.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>.
+ is not defined in PrimitiveParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -142,95 +141,67 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_word</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_word</span></tt>
+ </p></td>
+<td><p>
Matches any 16 bit little endian binary.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_dword</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_dword</span></tt>
+ </p></td>
+<td><p>
Matches any 32 bit little endian binary.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_qword</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_qword</span></tt>
+ </p></td>
+<td><p>
Matches any 64 bit little endian binary.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Matches an exact 16 bit little endian binary.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Matches an exact 32 bit little endian binary.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Matches an exact 32 bit little endian binary.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.binary.binary_little.attributes"></a><h6>
-<a name="id666902"></a>
- <a class="link" href="binary_little.html#spirit.qi.reference.binary.binary_little.attributes">Attributes</a>
+<a name="id477929"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -238,95 +209,67 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_word</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least16_t</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_dword</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least32_t</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_qword</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least64_t</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">little_qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_word</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least16_t</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_dword</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least32_t</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_qword</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least64_t</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">little_qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.binary.binary_little.complexity"></a><h6>
-<a name="id667190"></a>
- <a class="link" href="binary_little.html#spirit.qi.reference.binary.binary_little.complexity">Complexity</a>
+<a name="id478305"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -338,8 +281,8 @@
</p>
</blockquote></div>
<a name="spirit.qi.reference.binary.binary_little.example"></a><h6>
-<a name="id667214"></a>
- <a class="link" href="binary_little.html#spirit.qi.reference.binary.binary_little.example">Example</a>
+<a name="id478342"></a>
+ Example
</h6>
<p>
</p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/binary/binary_native.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/binary/binary_native.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/binary/binary_native.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Binary Native Endian</title>
+<title> Binary
+ Native Endian</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../binary.html" title="Binary">
-<link rel="prev" href="../binary.html" title="Binary">
-<link rel="next" href="binary_little.html" title="Binary Little Endian">
+<link rel="up" href="../binary.html" title=" Binary">
+<link rel="previous" href="../binary.html" title=" Binary">
+<link rel="next" href="binary_little.html" title=" Binary
+ Little Endian">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,14 +24,18 @@
<div class="spirit-nav">
<a accesskey="p" href="../binary.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../binary.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="binary_little.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Binary Native Endian">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.binary.binary_native"></a><a class="link" href="binary_native.html" title="Binary Native Endian"> Binary
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.binary.binary_native"></a><a href="binary_native.html" title=" Binary
+ Native Endian"> Binary
Native Endian</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.binary.binary_native.description"></a><h6>
-<a name="id661638"></a>
- <a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.description">Description</a>
+<a name="id474132"></a>
+ Description
</h6>
<p>
Binary native endian parsers are designed to parse binary byte streams
@@ -37,116 +43,106 @@
of the target architecture.
</p>
<a name="spirit.qi.reference.binary.binary_native.header"></a><h6>
-<a name="id661659"></a>
- <a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.header">Header</a>
+<a name="id474170"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/binary.hpp>
</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">qi_binary</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.binary.binary_native.namespace"></a><h6>
-<a name="id661734"></a>
- <a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.namespace">Namespace</a>
+<a name="id474285"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">byte_</span> <span class="comment">// alias:
- boost::spirit::qi::byte_</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">word</span> <span class="comment">// alias:
- boost::spirit::qi::word</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">dword</span> <span class="comment">// alias:
- boost::spirit::qi::dword</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qword</span> <span class="comment">// alias:
- boost::spirit::qi::qword</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">byte_</span> <span class="comment">// alias:
+ boost::spirit::qi::byte_</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">word</span> <span class="comment">// alias:
+ boost::spirit::qi::word</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">dword</span> <span class="comment">// alias:
+ boost::spirit::qi::dword</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qword</span> <span class="comment">// alias:
+ boost::spirit::qi::qword</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- <code class="computeroutput"><span class="identifier">qword</span></code> is only available
- on platforms where the preprocessor constant <code class="computeroutput"><span class="identifier">BOOST_HAS_LONG_LONG</span></code>
- is defined (i.e. on platforms having native support for <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span>
- <span class="keyword">long</span></code> (64 bit) integer types).
+<tr><td colspan="2" align="left" valign="top"><p>
+ <tt class="computeroutput"><span class="identifier">qword</span></tt> is only available
+ on platforms where the preprocessor constant <tt class="computeroutput"><span class="identifier">BOOST_HAS_LONG_LONG</span></tt>
+ is defined (i.e. on platforms having native support for <tt class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span>
+ <span class="keyword">long</span></tt> (64 bit) integer types).
</p></td></tr>
</table></div>
<a name="spirit.qi.reference.binary.binary_native.model_of"></a><h6>
-<a name="id661962"></a>
- <a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.model_of">Model
+<a name="id474594"></a>
+ <a href="binary_native.html#spirit.qi.reference.binary.binary_native.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>
+ PrimitiveParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">b</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">b</span></tt></span></dt>
<dd><p>
- A single byte (8 bit binary value) or a <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
+ A single byte (8 bit binary value) or a <a href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
Argument</a> that evaluates to a single byte. This value is always
in native endian.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">w</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">w</span></tt></span></dt>
<dd><p>
- A 16 bit binary value or a <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
+ A 16 bit binary value or a <a href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
Argument</a> that evaluates to a 16 bit binary value. This value
is always in native endian.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">dw</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">dw</span></tt></span></dt>
<dd><p>
- A 32 bit binary value or a <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
+ A 32 bit binary value or a <a href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
Argument</a> that evaluates to a 32 bit binary value. This value
is always in native endian.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">qw</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">qw</span></tt></span></dt>
<dd><p>
- A 64 bit binary value or a <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
+ A 64 bit binary value or a <a href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy
Argument</a> that evaluates to a 64 bit binary value. This value
is always in native endian.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.binary.binary_native.expression_semantics"></a><h6>
-<a name="id662097"></a>
- <a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.expression_semantics">Expression
+<a name="id474792"></a>
+ <a href="binary_native.html#spirit.qi.reference.binary.binary_native.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>.
+ is not defined in PrimitiveParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -154,119 +150,83 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">byte_</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">byte_</span></tt>
+ </p></td>
+<td><p>
Matches any 8 bit native endian binary.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">word</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">word</span></tt>
+ </p></td>
+<td><p>
Matches any 16 bit native endian binary.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">dword</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">dword</span></tt>
+ </p></td>
+<td><p>
Matches any 32 bit native endian binary.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">qword</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">qword</span></tt>
+ </p></td>
+<td><p>
Matches any 64 bit native endian binary.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">byte_</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">byte_</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Matches an exact 8 bit native endian binary.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Matches an exact 16 bit native endian binary.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Matches an exact 32 bit native endian binary.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Matches an exact 64 bit native endian binary.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.binary.binary_native.attributes"></a><h6>
-<a name="id663084"></a>
- <a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.attributes">Attributes</a>
+<a name="id475176"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -274,119 +234,83 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">byte_</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least8_t</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">word</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least16_t</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">dword</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least32_t</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">qword</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least64_t</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">byte_</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">byte_</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least8_t</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">word</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least16_t</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">dword</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least32_t</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">qword</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least64_t</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">byte_</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.binary.binary_native.complexity"></a><h6>
-<a name="id663452"></a>
- <a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.complexity">Complexity</a>
+<a name="id475654"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -398,8 +322,8 @@
</p>
</blockquote></div>
<a name="spirit.qi.reference.binary.binary_native.example"></a><h6>
-<a name="id663476"></a>
- <a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.example">Example</a>
+<a name="id475690"></a>
+ Example
</h6>
<p>
</p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/char.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/char.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/char.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,12 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Char</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="binary/binary_big.html" title="Binary Big Endian">
-<link rel="next" href="char/char.html" title="Char (char_, lit)">
+<link rel="previous" href="binary/binary_big.html" title=" Binary Big
+ Endian">
+<link rel="next" href="char/char.html" title=" Char (char_, lit)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,35 +23,38 @@
<div class="spirit-nav">
<a accesskey="p" href="binary/binary_big.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="char/char.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Char">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.reference.char"></a><a class="link" href="char.html" title="Char">Char</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.reference.char"></a>Char
+</h4></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
-<dt><span class="section"> Char (char_
, lit
)</span></dt>
+<dt><span class="section"> Char (char_, lit)</span></dt>
<dt><span class="section"><a href="char/char_class.html"> Char Classification
- (<code class="computeroutput"><span class="identifier">alnum</span></code>, <code class="computeroutput"><span class="identifier">digit</span></code>,
+ (<tt class="computeroutput"><span class="identifier">alnum</span></tt>, <tt class="computeroutput"><span class="identifier">digit</span></tt>,
etc.)</a></span></dt>
</dl></div>
<p>
This module includes parsers for single characters. Currently, this module
- includes literal chars (e.g. <code class="computeroutput"><span class="char">'x'</span></code>,
- <code class="computeroutput"><span class="identifier">L</span><span class="char">'x'</span></code>),
- <code class="computeroutput"><span class="identifier">char_</span></code> (single characters,
+ includes literal chars (e.g. <tt class="computeroutput"><span class="char">'x'</span></tt>,
+ <tt class="computeroutput"><span class="identifier">L</span><span class="char">'x'</span></tt>),
+ <tt class="computeroutput"><span class="identifier">char_</span></tt> (single characters,
ranges and character sets) and the encoding specific character classifiers
- (<code class="computeroutput"><span class="identifier">alnum</span></code>, <code class="computeroutput"><span class="identifier">alpha</span></code>,
- <code class="computeroutput"><span class="identifier">digit</span></code>, <code class="computeroutput"><span class="identifier">xdigit</span></code>,
+ (<tt class="computeroutput"><span class="identifier">alnum</span></tt>, <tt class="computeroutput"><span class="identifier">alpha</span></tt>,
+ <tt class="computeroutput"><span class="identifier">digit</span></tt>, <tt class="computeroutput"><span class="identifier">xdigit</span></tt>,
etc.).
</p>
-<a name="spirit.qi.reference.char.module_header"></a><h6>
-<a name="id669846"></a>
- <a class="link" href="char.html#spirit.qi.reference.char.module_header">Module Header</a>
- </h6>
+<a name="spirit.qi.reference.char.module_header"></a><h5>
+<a name="id481114"></a>
+ Module Header
+ </h5>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/char.hpp>
</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">qi_char</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/char/char.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/char/char.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/char/char.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Char (char_, lit)</title>
+<title> Char (char_, lit)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../char.html" title="Char">
-<link rel="prev" href="../char.html" title="Char">
-<link rel="next" href="char_class.html" title="Char Classification (alnum, digit, etc.)">
+<link rel="previous" href="../char.html" title="Char">
+<link rel="next" href="char_class.html" title=" Char Classification
+ (alnum, digit,
+ etc.)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,41 +24,44 @@
<div class="spirit-nav">
<a accesskey="p" href="../char.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../char.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="char_class.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Char (char_, lit)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.char.char"></a><a class="link" href="char.html" title="Char (char_, lit)"> Char (<code class="computeroutput"><span class="identifier">char_</span></code>, <code class="computeroutput"><span class="identifier">lit</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.char.char"></a> Char (char_, lit)
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.char.char.description"></a><h6>
-<a name="id669944"></a>
- <a class="link" href="char.html#spirit.qi.reference.char.char.description">Description</a>
+<a name="id481268"></a>
+ Description
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">char_</span></code> parser matches
- single characters. The <code class="computeroutput"><span class="identifier">char_</span></code>
- parser has an associated <a class="link" href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
+ The <tt class="computeroutput"><span class="identifier">char_</span></tt> parser matches
+ single characters. The <tt class="computeroutput"><span class="identifier">char_</span></tt>
+ parser has an associated <a href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
Encoding Namespace</a>. This is needed when doing basic operations
such as inhibiting case sensitivity and dealing with character ranges.
</p>
<p>
- There are various forms of <code class="computeroutput"><span class="identifier">char_</span></code>.
+ There are various forms of <tt class="computeroutput"><span class="identifier">char_</span></tt>.
</p>
<a name="spirit.qi.reference.char.char.char_"></a><h6>
-<a name="id669991"></a>
- <a class="link" href="char.html#spirit.qi.reference.char.char.char_">char_</a>
+<a name="id481348"></a>
+ char_
</h6>
<p>
- The no argument form of <code class="computeroutput"><span class="identifier">char_</span></code>
- matches any character in the assocaiated <a class="link" href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
+ The no argument form of <tt class="computeroutput"><span class="identifier">char_</span></tt>
+ matches any character in the assocaiated <a href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
Encoding Namespace</a>.
</p>
<pre class="programlisting"><span class="identifier">char_</span> <span class="comment">// matches any character
</span></pre>
<a name="spirit.qi.reference.char.char.char__ch_"></a><h6>
-<a name="id670032"></a>
- <a class="link" href="char.html#spirit.qi.reference.char.char.char__ch_">char_(ch)</a>
+<a name="id481416"></a>
+ char_(ch)
</h6>
<p>
- The single argument form of <code class="computeroutput"><span class="identifier">char_</span></code>
+ The single argument form of <tt class="computeroutput"><span class="identifier">char_</span></tt>
(with a character argument) matches the supplied character.
</p>
<pre class="programlisting"><span class="identifier">char_</span><span class="special">(</span><span class="char">'x'</span><span class="special">)</span> <span class="comment">// matches 'x'
@@ -64,12 +69,12 @@
</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="comment">// matches x (a char)
</span></pre>
<a name="spirit.qi.reference.char.char.char__first__last_"></a><h6>
-<a name="id670121"></a>
- <a class="link" href="char.html#spirit.qi.reference.char.char.char__first__last_">char_(first,
+<a name="id481548"></a>
+ <a href="char.html#spirit.qi.reference.char.char.char__first__last_">char_(first,
last)</a>
</h6>
<p>
- <code class="computeroutput"><span class="identifier">char_</span></code> with two arguments,
+ <tt class="computeroutput"><span class="identifier">char_</span></tt> with two arguments,
matches a range of characters.
</p>
<pre class="programlisting"><span class="identifier">char_</span><span class="special">(</span><span class="char">'a'</span><span class="special">,</span><span class="char">'z'</span><span class="special">)</span> <span class="comment">// alphabetic characters
@@ -79,36 +84,36 @@
A range of characters is created from a low-high character pair. Such
a parser matches a single character that is in the range, including both
endpoints. Note, the first character must be <span class="emphasis"><em>before</em></span>
- the second, according to the underlying <a class="link" href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
+ the second, according to the underlying <a href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
Encoding Namespace</a>.
</p>
<p>
Character mapping is inherently platform dependent. It is not guaranteed
- in the standard for example that <code class="computeroutput"><span class="char">'A'</span>
- <span class="special"><</span> <span class="char">'Z'</span></code>,
- that is why in Spirit2, we purposely attach a specific <a class="link" href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
- Encoding Namespace</a> (such as ASCII, ISO-8859-1) to the <code class="computeroutput"><span class="identifier">char_</span></code> parser to eliminate such ambiguities.
+ in the standard for example that <tt class="computeroutput"><span class="char">'A'</span>
+ <span class="special"><</span> <span class="char">'Z'</span></tt>,
+ that is why in Spirit2, we purposely attach a specific <a href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
+ Encoding Namespace</a> (such as ASCII, ISO-8859-1) to the <tt class="computeroutput"><span class="identifier">char_</span></tt> parser to eliminate such ambiguities.
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top">
+<tr><td colspan="2" align="left" valign="top">
<p>
- <span class="bold"><strong>Sparse bit vectors</strong></span>
+ <span class="bold"><b>Sparse bit vectors</b></span>
</p>
<p>
To accomodate 16/32 and 64 bit characters, the char-set statically
- switches from a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bitset</span></code>
+ switches from a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">bitset</span></tt>
implementation when the character type is not greater than 8 bits,
to a sparse bit/boolean set which uses a sorted vector of disjoint
- ranges (<code class="computeroutput"><span class="identifier">range_run</span></code>).
+ ranges (<tt class="computeroutput"><span class="identifier">range_run</span></tt>).
The set is constructed from ranges such that adjacent or overlapping
ranges are coalesced.
</p>
<p>
- <code class="computeroutput"><span class="identifier">range_runs</span></code> are very
+ <tt class="computeroutput"><span class="identifier">range_runs</span></tt> are very
space-economical in situations where there are lots of ranges and a
few individual disjoint values. Searching is O(log n) where n is the
number of ranges.
@@ -116,11 +121,11 @@
</td></tr>
</table></div>
<a name="spirit.qi.reference.char.char.char__def_"></a><h6>
-<a name="id670301"></a>
- <a class="link" href="char.html#spirit.qi.reference.char.char.char__def_">char_(def)</a>
+<a name="id481830"></a>
+ char_(def)
</h6>
<p>
- Lastly, when given a string (a plain C string, a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span></code>,
+ Lastly, when given a string (a plain C string, a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span></tt>,
etc.), the string is regarded as a char-set definition string following
a syntax that resembles posix style regular expression character sets
(except that double quotes delimit the set elements instead of square
@@ -132,29 +137,29 @@
</span><span class="identifier">char_</span><span class="special">(</span><span class="string">"\x7f\x7e"</span><span class="special">)</span> <span class="comment">// Hexadecimal 0x7F and 0x7E
</span></pre>
<a name="spirit.qi.reference.char.char.lit_ch_"></a><h6>
-<a name="id670414"></a>
- <a class="link" href="char.html#spirit.qi.reference.char.char.lit_ch_">lit(ch)</a>
+<a name="id481992"></a>
+ lit(ch)
</h6>
<p>
- <code class="computeroutput"><span class="identifier">lit</span></code>, when passed a single
- character, behaves like the single argument <code class="computeroutput"><span class="identifier">char_</span></code>
- except that <code class="computeroutput"><span class="identifier">lit</span></code> does
- not synthesize an attribute. A plain <code class="computeroutput"><span class="keyword">char</span></code>
- or <code class="computeroutput"><span class="keyword">wchar_t</span></code> is equivalent
- to a <code class="computeroutput"><span class="identifier">lit</span></code>.
+ <tt class="computeroutput"><span class="identifier">lit</span></tt>, when passed a single
+ character, behaves like the single argument <tt class="computeroutput"><span class="identifier">char_</span></tt>
+ except that <tt class="computeroutput"><span class="identifier">lit</span></tt> does
+ not synthesize an attribute. A plain <tt class="computeroutput"><span class="keyword">char</span></tt>
+ or <tt class="computeroutput"><span class="keyword">wchar_t</span></tt> is equivalent
+ to a <tt class="computeroutput"><span class="identifier">lit</span></tt>.
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- <code class="computeroutput"><span class="identifier">lit</span></code> is reused by both
- the <a class="link" href="../string/string.html" title="String (string, lit)">string parsers</a>
+<tr><td colspan="2" align="left" valign="top"><p>
+ <tt class="computeroutput"><span class="identifier">lit</span></tt> is reused by both
+ the string parsers
and the char parsers. In general, a char parser is created when you
pass in a character and a string parser is created when you pass in
a string. The exception is when you pass a single element literal string,
- e.g. <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="string">"x"</span><span class="special">)</span></code>.
+ e.g. <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="string">"x"</span><span class="special">)</span></tt>.
In this case, we optimize this to create a char parser instead of a
string parser.
</p></td></tr>
@@ -168,100 +173,94 @@
<span class="identifier">lit</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span> <span class="comment">// c is a char
</span></pre>
<a name="spirit.qi.reference.char.char.header"></a><h6>
-<a name="id670577"></a>
- <a class="link" href="char.html#spirit.qi.reference.char.char.header">Header</a>
+<a name="id482240"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/char/char.hpp>
</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">qi_char</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.char.char.namespace"></a><h6>
-<a name="id670644"></a>
- <a class="link" href="char.html#spirit.qi.reference.char.char.namespace">Namespace</a>
+<a name="id482342"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lit</span> <span class="comment">// alias:
- boost::spirit::qi::lit</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lit</span> <span class="comment">// alias:
+ boost::spirit::qi::lit</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
<p>
- In the table above, <code class="computeroutput"><span class="identifier">ns</span></code>
- is a <a class="link" href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
+ In the table above, <tt class="computeroutput"><span class="identifier">ns</span></tt>
+ is a <a href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
Encoding Namespace</a>.
</p>
<a name="spirit.qi.reference.char.char.model_of"></a><h6>
-<a name="id670763"></a>
- <a class="link" href="char.html#spirit.qi.reference.char.char.model_of">Model of</a>
+<a name="id482504"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>
+ PrimitiveParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">c</span></code>,
- <code class="computeroutput"><span class="identifier">f</span></code>, <code class="computeroutput"><span class="identifier">l</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">c</span></tt>,
+ <tt class="computeroutput"><span class="identifier">f</span></tt>, <tt class="computeroutput"><span class="identifier">l</span></tt></span></dt>
<dd><p>
- A literal char, e.g. <code class="computeroutput"><span class="char">'x'</span></code>,
- <code class="computeroutput"><span class="identifier">L</span><span class="char">'x'</span></code>
- or anything that can be converted to a <code class="computeroutput"><span class="keyword">char</span></code>
- or <code class="computeroutput"><span class="keyword">wchar_t</span></code>, or a __lazy<span class="underline">argument</span>_ that evaluates to anything
- that can be converted to a <code class="computeroutput"><span class="keyword">char</span></code>
- or <code class="computeroutput"><span class="keyword">wchar_t</span></code>.
+ A literal char, e.g. <tt class="computeroutput"><span class="char">'x'</span></tt>,
+ <tt class="computeroutput"><span class="identifier">L</span><span class="char">'x'</span></tt>
+ or anything that can be converted to a <tt class="computeroutput"><span class="keyword">char</span></tt>
+ or <tt class="computeroutput"><span class="keyword">wchar_t</span></tt>, or a __lazy<span class="underline">argument</span>_ that evaluates to anything
+ that can be converted to a <tt class="computeroutput"><span class="keyword">char</span></tt>
+ or <tt class="computeroutput"><span class="keyword">wchar_t</span></tt>.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">ns</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">ns</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
+ A <a href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
Encoding Namespace</a>.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">cs</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">cs</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../basics.html#spirit.qi.reference.basics.string">String</a>
+ A String
or a __lazy<span class="underline">argument</span>_ that evaluates
- to a <a class="link" href="../basics.html#spirit.qi.reference.basics.string">String</a>
+ to a String
that specifies a char-set definition string following a syntax that
resembles posix style regular expression character sets (except the
- square brackets and the negation <code class="computeroutput"><span class="special">^</span></code>
+ square brackets and the negation <tt class="computeroutput"><span class="special">^</span></tt>
character).
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">cp</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">cp</span></tt></span></dt>
<dd><p>
A char parser, a char range parser or a char set parser.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.char.char.expression_semantics"></a><h6>
-<a name="id670969"></a>
- <a class="link" href="char.html#spirit.qi.reference.char.char.expression_semantics">Expression
+<a name="id482816"></a>
+ <a href="char.html#spirit.qi.reference.char.char.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>.
+ is not defined in PrimitiveParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -269,114 +268,82 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">c</span></code>
- </p>
- </td>
-<td>
- <p>
- Create char parser from a char, <code class="computeroutput"><span class="identifier">c</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Create a char parser from a char, <code class="computeroutput"><span class="identifier">c</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span></code>
- </p>
- </td>
-<td>
- <p>
- Create a char parser that matches any character in the <code class="computeroutput"><span class="identifier">ns</span></code> encoding.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Create a char parser with <code class="computeroutput"><span class="identifier">ns</span></code>
- encoding from a char, <code class="computeroutput"><span class="identifier">c</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
- <span class="identifier">l</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">c</span></tt>
+ </p></td>
+<td><p>
+ Create char parser from a char, <tt class="computeroutput"><span class="identifier">c</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Create a char parser from a char, <tt class="computeroutput"><span class="identifier">c</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span></tt>
+ </p></td>
+<td><p>
+ Create a char parser that matches any character in the <tt class="computeroutput"><span class="identifier">ns</span></tt> encoding.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Create a char parser with <tt class="computeroutput"><span class="identifier">ns</span></tt>
+ encoding from a char, <tt class="computeroutput"><span class="identifier">c</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
+ <span class="identifier">l</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Create a char-range parser that matches characters from range
- (<code class="computeroutput"><span class="identifier">f</span></code> to <code class="computeroutput"><span class="identifier">l</span></code>, inclusive) with <code class="computeroutput"><span class="identifier">ns</span></code> encoding.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">cs</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Create a char-set parser with <code class="computeroutput"><span class="identifier">ns</span></code>
- encoding from a char-set definition string, <code class="computeroutput"><span class="identifier">cs</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">~</span><span class="identifier">cp</span></code>
- </p>
- </td>
-<td>
- <p>
- Negate <code class="computeroutput"><span class="identifier">cp</span></code>. The
+ (<tt class="computeroutput"><span class="identifier">f</span></tt> to <tt class="computeroutput"><span class="identifier">l</span></tt>, inclusive) with <tt class="computeroutput"><span class="identifier">ns</span></tt> encoding.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">cs</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Create a char-set parser with <tt class="computeroutput"><span class="identifier">ns</span></tt>
+ encoding from a char-set definition string, <tt class="computeroutput"><span class="identifier">cs</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="special">~</span><span class="identifier">cp</span></tt>
+ </p></td>
+<td><p>
+ Negate <tt class="computeroutput"><span class="identifier">cp</span></tt>. The
result is a negated char parser that matches any character in
- the <code class="computeroutput"><span class="identifier">ns</span></code> encoding
- except the characters matched by <code class="computeroutput"><span class="identifier">cp</span></code>.
- </p>
- </td>
+ the <tt class="computeroutput"><span class="identifier">ns</span></tt> encoding
+ except the characters matched by <tt class="computeroutput"><span class="identifier">cp</span></tt>.
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.char.char.attributes"></a><h6>
-<a name="id671376"></a>
- <a class="link" href="char.html#spirit.qi.reference.char.char.attributes">Attributes</a>
+<a name="id483376"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -384,132 +351,100 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">c</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code> or if
- <code class="computeroutput"><span class="identifier">c</span></code> is a __lazy<span class="underline">argument</span>_, the character type returned
+<td><p>
+ <tt class="computeroutput"><span class="identifier">c</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt> or if
+ <tt class="computeroutput"><span class="identifier">c</span></tt> is a __lazy<span class="underline">argument</span>_, the character type returned
by invoking it.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code> or if
- <code class="computeroutput"><span class="identifier">c</span></code> is a __lazy<span class="underline">argument</span>_, the character type returned
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt> or if
+ <tt class="computeroutput"><span class="identifier">c</span></tt> is a __lazy<span class="underline">argument</span>_, the character type returned
by invoking it.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span></code>
- </p>
- </td>
-<td>
- <p>
- The character type of the <a class="link" href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
- Encoding Namespace</a>, <code class="computeroutput"><span class="identifier">ns</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- The character type of the <a class="link" href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
- Encoding Namespace</a>, <code class="computeroutput"><span class="identifier">ns</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
- <span class="identifier">l</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- The character type of the <a class="link" href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
- Encoding Namespace</a>, <code class="computeroutput"><span class="identifier">ns</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">cs</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- The character type of the <a class="link" href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
- Encoding Namespace</a>, <code class="computeroutput"><span class="identifier">ns</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">~</span><span class="identifier">cp</span></code>
- </p>
- </td>
-<td>
- <p>
- The attribute of <code class="computeroutput"><span class="identifier">cp</span></code>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span></tt>
+ </p></td>
+<td><p>
+ The character type of the <a href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
+ Encoding Namespace</a>, <tt class="computeroutput"><span class="identifier">ns</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">c</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ The character type of the <a href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
+ Encoding Namespace</a>, <tt class="computeroutput"><span class="identifier">ns</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
+ <span class="identifier">l</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ The character type of the <a href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
+ Encoding Namespace</a>, <tt class="computeroutput"><span class="identifier">ns</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">char_</span><span class="special">(</span><span class="identifier">cs</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ The character type of the <a href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
+ Encoding Namespace</a>, <tt class="computeroutput"><span class="identifier">ns</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="special">~</span><span class="identifier">cp</span></tt>
+ </p></td>
+<td><p>
+ The attribute of <tt class="computeroutput"><span class="identifier">cp</span></tt>.
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.char.char.complexity"></a><h6>
-<a name="id671768"></a>
- <a class="link" href="char.html#spirit.qi.reference.char.char.complexity">Complexity</a>
+<a name="id483914"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <span class="bold"><strong>O(N)</strong></span>, except for char-sets with
- 16-bit (or more) characters (e.g. <code class="computeroutput"><span class="keyword">wchar_t</span></code>).
- These have <span class="bold"><strong>O(log N)</strong></span> complexity,
+ <span class="bold"><b>O(N)</b></span>, except for char-sets with
+ 16-bit (or more) characters (e.g. <tt class="computeroutput"><span class="keyword">wchar_t</span></tt>).
+ These have <span class="bold"><b>O(log N)</b></span> complexity,
where N is the number of distinct character ranges in the set.
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.qi.reference.char.char.example"></a><h6>
-<a name="id673052"></a>
- <a class="link" href="char.html#spirit.qi.reference.char.char.example">Example</a>
+<a name="id483976"></a>
+ Example
</h6>
<p>
Some using declarations:
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/char/char_class.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/char/char_class.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/char/char_class.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Char Classification (alnum, digit, etc.)</title>
+<title> Char Classification
+ (alnum, digit,
+ etc.)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../char.html" title="Char">
-<link rel="prev" href="char.html" title="Char (char_, lit)">
-<link rel="next" href="../directive.html" title="Directive">
+<link rel="previous" href="char.html" title=" Char (char_, lit)">
+<link rel="next" href="../directive.html" title=" Directive">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,144 +24,123 @@
<div class="spirit-nav">
<a accesskey="p" href="char.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../char.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../directive.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Char Classification (alnum, digit, etc.)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.char.char_class"></a><a class="link" href="char_class.html" title="Char Classification (alnum, digit, etc.)"> Char Classification
- (<code class="computeroutput"><span class="identifier">alnum</span></code>, <code class="computeroutput"><span class="identifier">digit</span></code>,
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.char.char_class"></a><a href="char_class.html" title=" Char Classification
+ (alnum, digit,
+ etc.)"> Char Classification
+ (<tt class="computeroutput"><span class="identifier">alnum</span></tt>, <tt class="computeroutput"><span class="identifier">digit</span></tt>,
etc.)</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.char.char_class.description"></a><h6>
-<a name="id673675"></a>
- <a class="link" href="char_class.html#spirit.qi.reference.char.char_class.description">Description</a>
+<a name="id484824"></a>
+ Description
</h6>
<p>
The library has the full repertoire of single character parsers for character
- classification. This includes the usual <code class="computeroutput"><span class="identifier">alnum</span></code>,
- <code class="computeroutput"><span class="identifier">alpha</span></code>, <code class="computeroutput"><span class="identifier">digit</span></code>, <code class="computeroutput"><span class="identifier">xdigit</span></code>,
- etc. parsers. These parsers have an associated <a class="link" href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
+ classification. This includes the usual <tt class="computeroutput"><span class="identifier">alnum</span></tt>,
+ <tt class="computeroutput"><span class="identifier">alpha</span></tt>, <tt class="computeroutput"><span class="identifier">digit</span></tt>, <tt class="computeroutput"><span class="identifier">xdigit</span></tt>,
+ etc. parsers. These parsers have an associated <a href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
Encoding Namespace</a>. This is needed when doing basic operations
such as inhibiting case sensitivity.
</p>
<a name="spirit.qi.reference.char.char_class.header"></a><h6>
-<a name="id673727"></a>
- <a class="link" href="char_class.html#spirit.qi.reference.char.char_class.header">Header</a>
+<a name="id484913"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/char/char_class.hpp>
</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">qi_char_class</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.char.char_class.namespace"></a><h6>
-<a name="id673794"></a>
- <a class="link" href="char_class.html#spirit.qi.reference.char.char_class.namespace">Namespace</a>
+<a name="id485017"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">alnum</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">alpha</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">blank</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">cntrl</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">digit</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">graph</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">lower</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">print</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">punct</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">space</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">upper</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">xdigit</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">alnum</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">alpha</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">blank</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">cntrl</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">digit</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">graph</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">lower</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">print</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">punct</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">space</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">upper</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">xdigit</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
<p>
- In the table above, <code class="computeroutput"><span class="identifier">ns</span></code>
- is a <a class="link" href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
+ In the table above, <tt class="computeroutput"><span class="identifier">ns</span></tt>
+ is a <a href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
Encoding Namespace</a>.
</p>
<a name="spirit.qi.reference.char.char_class.model_of"></a><h6>
-<a name="id674153"></a>
- <a class="link" href="char_class.html#spirit.qi.reference.char.char_class.model_of">Model of</a>
+<a name="id485482"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>
+ PrimitiveParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">ns</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">ns</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
+ A <a href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
Encoding Namespace</a>.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.char.char_class.expression_semantics"></a><h6>
-<a name="id674219"></a>
- <a class="link" href="char_class.html#spirit.qi.reference.char.char_class.expression_semantics">Expression
+<a name="id485575"></a>
+ <a href="char_class.html#spirit.qi.reference.char.char_class.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>.
+ is not defined in PrimitiveParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -167,181 +148,129 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">alnum</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">alnum</span></tt>
+ </p></td>
+<td><p>
Matches alpha-numeric characters
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">alpha</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">alpha</span></tt>
+ </p></td>
+<td><p>
Matches alphabetic characters
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">blank</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">blank</span></tt>
+ </p></td>
+<td><p>
Matches spaces or tabs
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">cntrl</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">cntrl</span></tt>
+ </p></td>
+<td><p>
Matches control characters
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">digit</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">digit</span></tt>
+ </p></td>
+<td><p>
Matches numeric digits
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">graph</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">graph</span></tt>
+ </p></td>
+<td><p>
Matches non-space printing characters
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">lower</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">lower</span></tt>
+ </p></td>
+<td><p>
Matches lower case letters
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">print</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">print</span></tt>
+ </p></td>
+<td><p>
Matches printable characters
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">punct</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">punct</span></tt>
+ </p></td>
+<td><p>
Matches punctuation symbols
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">space</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">space</span></tt>
+ </p></td>
+<td><p>
Matches spaces, tabs, returns, and newlines
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">upper</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">upper</span></tt>
+ </p></td>
+<td><p>
Matches upper case letters
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">xdigit</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">xdigit</span></tt>
+ </p></td>
+<td><p>
Matches hexadecimal digits
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.char.char_class.attributes"></a><h6>
-<a name="id674658"></a>
- <a class="link" href="char_class.html#spirit.qi.reference.char.char_class.attributes">Attributes</a>
+<a name="id486134"></a>
+ Attributes
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- The character type of the <a class="link" href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
- Encoding Namespace</a>, <code class="computeroutput"><span class="identifier">ns</span></code>.
+ The character type of the <a href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
+ Encoding Namespace</a>, <tt class="computeroutput"><span class="identifier">ns</span></tt>.
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.qi.reference.char.char_class.complexity"></a><h6>
-<a name="id674694"></a>
- <a class="link" href="char_class.html#spirit.qi.reference.char.char_class.complexity">Complexity</a>
+<a name="id486191"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -353,8 +282,8 @@
</p>
</blockquote></div>
<a name="spirit.qi.reference.char.char_class.example"></a><h6>
-<a name="id674718"></a>
- <a class="link" href="char_class.html#spirit.qi.reference.char.char_class.example">Example</a>
+<a name="id486225"></a>
+ Example
</h6>
<p>
Some using declarations:
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/directive.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/directive.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/directive.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Directive</title>
+<title> Directive</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="char/char_class.html" title="Char Classification (alnum, digit, etc.)">
-<link rel="next" href="directive/lexeme.html" title="Inhibiting Skipping (lexeme[])">
+<link rel="previous" href="char/char_class.html" title=" Char Classification
+ (alnum, digit,
+ etc.)">
+<link rel="next" href="directive/lexeme.html" title=" Inhibiting
+ Skipping (lexeme[])">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,40 +25,43 @@
<div class="spirit-nav">
<a accesskey="p" href="char/char_class.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="directive/lexeme.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Directive">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.reference.directive"></a><a class="link" href="directive.html" title="Directive"> Directive</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.reference.directive"></a> Directive
+</h4></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section"><a href="directive/lexeme.html"> Inhibiting
- Skipping (<code class="computeroutput"><span class="identifier">lexeme</span><span class="special">[]</span></code>)</a></span></dt>
+ Skipping (<tt class="computeroutput"><span class="identifier">lexeme</span><span class="special">[]</span></tt>)</a></span></dt>
<dt><span class="section"><a href="directive/no_case.html"> Inhibiting
- Case Sensitivity (<code class="computeroutput"><span class="identifier">no_case</span><span class="special">[]</span></code>)</a></span></dt>
+ Case Sensitivity (<tt class="computeroutput"><span class="identifier">no_case</span><span class="special">[]</span></tt>)</a></span></dt>
<dt><span class="section"><a href="directive/omit.html"> Ignoring Attribute
- (<code class="computeroutput"><span class="identifier">omit</span><span class="special">[]</span></code>)</a></span></dt>
+ (<tt class="computeroutput"><span class="identifier">omit</span><span class="special">[]</span></tt>)</a></span></dt>
<dt><span class="section"><a href="directive/raw.html"> Transduction
- Parsing (<code class="computeroutput"><span class="identifier">raw</span><span class="special">[]</span></code>)</a></span></dt>
+ Parsing (<tt class="computeroutput"><span class="identifier">raw</span><span class="special">[]</span></tt>)</a></span></dt>
<dt><span class="section"><a href="directive/repeat.html"> Repetition
- (<code class="computeroutput"><span class="identifier">repeat</span><span class="special">[]</span></code>)</a></span></dt>
+ (<tt class="computeroutput"><span class="identifier">repeat</span><span class="special">[]</span></tt>)</a></span></dt>
<dt><span class="section"><a href="directive/skip.html"> Re-Establish
- Skipping (<code class="computeroutput"><span class="identifier">skip</span><span class="special">[]</span></code>)</a></span></dt>
+ Skipping (<tt class="computeroutput"><span class="identifier">skip</span><span class="special">[]</span></tt>)</a></span></dt>
</dl></div>
<p>
This module includes different directives usable to augment and parametrize
- other parsers. It includes the <code class="computeroutput"><span class="identifier">no_case</span></code>,
- <code class="computeroutput"><span class="identifier">lexeme</span></code>, <code class="computeroutput"><span class="identifier">omit</span></code>,
- <code class="computeroutput"><span class="identifier">raw</span></code>, <code class="computeroutput"><span class="identifier">repeat</span></code>,
- and <code class="computeroutput"><span class="identifier">skip</span></code> directives.
+ other parsers. It includes the <tt class="computeroutput"><span class="identifier">no_case</span></tt>,
+ <tt class="computeroutput"><span class="identifier">lexeme</span></tt>, <tt class="computeroutput"><span class="identifier">omit</span></tt>,
+ <tt class="computeroutput"><span class="identifier">raw</span></tt>, <tt class="computeroutput"><span class="identifier">repeat</span></tt>,
+ and <tt class="computeroutput"><span class="identifier">skip</span></tt> directives.
</p>
-<a name="spirit.qi.reference.directive.module_header"></a><h6>
-<a name="id675054"></a>
- <a class="link" href="directive.html#spirit.qi.reference.directive.module_header">Module Header</a>
- </h6>
+<a name="spirit.qi.reference.directive.module_header"></a><h5>
+<a name="id486701"></a>
+ Module Header
+ </h5>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/directive.hpp>
</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">qi_directive</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/directive/lexeme.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/directive/lexeme.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/directive/lexeme.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Inhibiting Skipping (lexeme[])</title>
+<title> Inhibiting
+ Skipping (lexeme[])</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../directive.html" title="Directive">
-<link rel="prev" href="../directive.html" title="Directive">
-<link rel="next" href="no_case.html" title="Inhibiting Case Sensitivity (no_case[])">
+<link rel="up" href="../directive.html" title=" Directive">
+<link rel="previous" href="../directive.html" title=" Directive">
+<link rel="next" href="no_case.html" title=" Inhibiting
+ Case Sensitivity (no_case[])">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,92 +24,92 @@
<div class="spirit-nav">
<a accesskey="p" href="../directive.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../directive.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="no_case.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Inhibiting Skipping (lexeme[])">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.directive.lexeme"></a><a class="link" href="lexeme.html" title="Inhibiting Skipping (lexeme[])"> Inhibiting
- Skipping (<code class="computeroutput"><span class="identifier">lexeme</span><span class="special">[]</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.directive.lexeme"></a><a href="lexeme.html" title=" Inhibiting
+ Skipping (lexeme[])"> Inhibiting
+ Skipping (<tt class="computeroutput"><span class="identifier">lexeme</span><span class="special">[]</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.directive.lexeme.description"></a><h6>
-<a name="id675149"></a>
- <a class="link" href="lexeme.html#spirit.qi.reference.directive.lexeme.description">Description</a>
+<a name="id486848"></a>
+ Description
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">lexeme</span><span class="special">[]</span></code>
+ The <tt class="computeroutput"><span class="identifier">lexeme</span><span class="special">[]</span></tt>
directive turns off white space skipping. At the phrase level, the parser
- ignores white spaces, possibly including comments. Use <code class="computeroutput"><span class="identifier">lexeme</span></code> in situations where you want
+ ignores white spaces, possibly including comments. Use <tt class="computeroutput"><span class="identifier">lexeme</span></tt> in situations where you want
to work at the character level instead of the phrase level. Parsers can
be made to work at the character level by enclosing the pertinent parts
- inside the <code class="computeroutput"><span class="identifier">lexeme</span></code> directive.
+ inside the <tt class="computeroutput"><span class="identifier">lexeme</span></tt> directive.
For example, here's a rule that parses integers:
</p>
<pre class="programlisting"><span class="identifier">integer</span> <span class="special">=</span> <span class="identifier">lexeme</span><span class="special">[</span> <span class="special">-(</span><span class="identifier">lit</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="special">>></span> <span class="special">+</span><span class="identifier">digit</span> <span class="special">];</span>
</pre>
<p>
- The <code class="computeroutput"><span class="identifier">lexeme</span></code> directive
+ The <tt class="computeroutput"><span class="identifier">lexeme</span></tt> directive
instructs its subject parser to work on the character level. Without
- it, the <code class="computeroutput"><span class="identifier">integer</span></code> rule
+ it, the <tt class="computeroutput"><span class="identifier">integer</span></tt> rule
would have allowed erroneous embedded white spaces in inputs such as
- <code class="computeroutput"><span class="string">"1 2 345"</span></code> which
- will be parsed as <code class="computeroutput"><span class="string">"12345"</span></code>.
+ <tt class="computeroutput"><span class="string">"1 2 345"</span></tt> which
+ will be parsed as <tt class="computeroutput"><span class="string">"12345"</span></tt>.
</p>
<a name="spirit.qi.reference.directive.lexeme.header"></a><h6>
-<a name="id675364"></a>
- <a class="link" href="lexeme.html#spirit.qi.reference.directive.lexeme.header">Header</a>
+<a name="id487076"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/directive/lexeme.hpp>
</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">qi_lexeme</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.directive.lexeme.namespace"></a><h6>
-<a name="id675438"></a>
- <a class="link" href="lexeme.html#spirit.qi.reference.directive.lexeme.namespace">Namespace</a>
+<a name="id487190"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
-<tbody><tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lexeme</span> <span class="comment">// alias:
- boost::spirit::qi::lexeme</span></code>
- </p>
- </td></tr></tbody>
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lexeme</span> <span class="comment">// alias:
+ boost::spirit::qi::lexeme</span></tt>
+ </p></td></tr></tbody>
</table></div>
<a name="spirit.qi.reference.directive.lexeme.model_of"></a><h6>
-<a name="id675516"></a>
- <a class="link" href="lexeme.html#spirit.qi.reference.directive.lexeme.model_of">Model of</a>
+<a name="id487292"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a>
+ UnaryParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>.
+ A Parser.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.directive.lexeme.expression_semantics"></a><h6>
-<a name="id675587"></a>
- <a class="link" href="lexeme.html#spirit.qi.reference.directive.lexeme.expression_semantics">Expression
+<a name="id487392"></a>
+ <a href="lexeme.html#spirit.qi.reference.directive.lexeme.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a>.
+ is not defined in UnaryParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -115,36 +117,28 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lexeme</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Turns off white space skipping for the subject parser, <code class="computeroutput"><span class="identifier">a</span></code> (and all its children).
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lexeme</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Turns off white space skipping for the subject parser, <tt class="computeroutput"><span class="identifier">a</span></tt> (and all its children).
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.directive.lexeme.attributes"></a><h6>
-<a name="id675692"></a>
- <a class="link" href="lexeme.html#spirit.qi.reference.directive.lexeme.attributes">Attributes</a>
+<a name="id487535"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -153,51 +147,45 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lexeme</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">lexeme</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">lexeme</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">lexeme</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.directive.lexeme.complexity"></a><h6>
-<a name="id675863"></a>
- <a class="link" href="lexeme.html#spirit.qi.reference.directive.lexeme.complexity">Complexity</a>
+<a name="id487760"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
The complexity is defined by the complexity of the subject parser,
- <code class="computeroutput"><span class="identifier">a</span></code>
+ <tt class="computeroutput"><span class="identifier">a</span></tt>
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.qi.reference.directive.lexeme.example"></a><h6>
-<a name="id675894"></a>
- <a class="link" href="lexeme.html#spirit.qi.reference.directive.lexeme.example">Example</a>
+<a name="id487808"></a>
+ Example
</h6>
<p>
Some using declarations:
@@ -216,14 +204,14 @@
<p>
</p>
<p>
- Simple usage of <code class="computeroutput"><span class="identifier">lexeme</span><span class="special">[]</span></code>:
+ Simple usage of <tt class="computeroutput"><span class="identifier">lexeme</span><span class="special">[]</span></tt>:
</p>
<p>
</p>
<p>
The use of lexeme here will prevent skipping in between the digits
- and the sign making inputs such as <code class="computeroutput"><span class="string">"1
- 2 345"</span></code> erroneous.
+ and the sign making inputs such as <tt class="computeroutput"><span class="string">"1
+ 2 345"</span></tt> erroneous.
</p>
<p>
</p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/directive/no_case.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/directive/no_case.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/directive/no_case.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Inhibiting Case Sensitivity (no_case[])</title>
+<title> Inhibiting
+ Case Sensitivity (no_case[])</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../directive.html" title="Directive">
-<link rel="prev" href="lexeme.html" title="Inhibiting Skipping (lexeme[])">
-<link rel="next" href="omit.html" title="Ignoring Attribute (omit[])">
+<link rel="up" href="../directive.html" title=" Directive">
+<link rel="previous" href="lexeme.html" title=" Inhibiting
+ Skipping (lexeme[])">
+<link rel="next" href="omit.html" title=" Ignoring Attribute
+ (omit[])">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,79 +25,79 @@
<div class="spirit-nav">
<a accesskey="p" href="lexeme.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../directive.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="omit.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Inhibiting Case Sensitivity (no_case[])">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.directive.no_case"></a><a class="link" href="no_case.html" title="Inhibiting Case Sensitivity (no_case[])"> Inhibiting
- Case Sensitivity (<code class="computeroutput"><span class="identifier">no_case</span><span class="special">[]</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.directive.no_case"></a><a href="no_case.html" title=" Inhibiting
+ Case Sensitivity (no_case[])"> Inhibiting
+ Case Sensitivity (<tt class="computeroutput"><span class="identifier">no_case</span><span class="special">[]</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.directive.no_case.description"></a><h6>
-<a name="id676158"></a>
- <a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.description">Description</a>
+<a name="id488179"></a>
+ Description
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">no_case</span><span class="special">[]</span></code>
+ The <tt class="computeroutput"><span class="identifier">no_case</span><span class="special">[]</span></tt>
directive does not consume any input. The actual matching is done by
its subject parser. It's purpose is to force matching of the subject
parser (and all its children) to be case insensitive.
</p>
<a name="spirit.qi.reference.directive.no_case.header"></a><h6>
-<a name="id676186"></a>
- <a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.header">Header</a>
+<a name="id488229"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/directive/no_case.hpp>
</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">qi_no_case</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.directive.no_case.namespace"></a><h6>
-<a name="id676260"></a>
- <a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.namespace">Namespace</a>
+<a name="id488342"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
-<tbody><tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">no_case</span></code>
- </p>
- </td></tr></tbody>
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">no_case</span></tt>
+ </p></td></tr></tbody>
</table></div>
<p>
- In the table above, <code class="computeroutput"><span class="identifier">ns</span></code>
- is a <a class="link" href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
+ In the table above, <tt class="computeroutput"><span class="identifier">ns</span></tt>
+ is a <a href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
Encoding Namespace</a>.
</p>
<a name="spirit.qi.reference.directive.no_case.model_of"></a><h6>
-<a name="id676342"></a>
- <a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.model_of">Model
+<a name="id488453"></a>
+ <a href="no_case.html#spirit.qi.reference.directive.no_case.model_of">Model
of</a>
</h6>
<p>
- The model of <code class="computeroutput"><span class="identifier">no_case</span></code>
+ The model of <tt class="computeroutput"><span class="identifier">no_case</span></tt>
is the model of its subject parser.
</p>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>.
+ A Parser.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">ns</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">ns</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
+ A <a href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
Encoding Namespace</a>.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.directive.no_case.expression_semantics"></a><h6>
-<a name="id676427"></a>
- <a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.expression_semantics">Expression
+<a name="id488574"></a>
+ <a href="no_case.html#spirit.qi.reference.directive.no_case.expression_semantics">Expression
Semantics</a>
</h6>
<p>
@@ -107,37 +110,29 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">no_case</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Force matching of the subject parser, <code class="computeroutput"><span class="identifier">a</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">no_case</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Force matching of the subject parser, <tt class="computeroutput"><span class="identifier">a</span></tt>
(and all its children) to be case insensitive
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.directive.no_case.attributes"></a><h6>
-<a name="id676530"></a>
- <a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.attributes">Attributes</a>
+<a name="id488710"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -146,51 +141,45 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">no_case</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">no_case</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">ns</span><span class="special">::</span><span class="identifier">no_case</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">ns</span><span class="special">::</span><span class="identifier">no_case</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.directive.no_case.complexity"></a><h6>
-<a name="id676724"></a>
- <a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.complexity">Complexity</a>
+<a name="id488965"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
The complexity is defined by the complexity of the subject parser,
- <code class="computeroutput"><span class="identifier">a</span></code>
+ <tt class="computeroutput"><span class="identifier">a</span></tt>
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.qi.reference.directive.no_case.example"></a><h6>
-<a name="id676755"></a>
- <a class="link" href="no_case.html#spirit.qi.reference.directive.no_case.example">Example</a>
+<a name="id489014"></a>
+ Example
</h6>
<p>
Some using declarations:
@@ -210,7 +199,7 @@
<p>
</p>
<p>
- Simple usage of <code class="computeroutput"><span class="identifier">no_case</span><span class="special">[]</span></code>:
+ Simple usage of <tt class="computeroutput"><span class="identifier">no_case</span><span class="special">[]</span></tt>:
</p>
<p>
</p>
@@ -225,8 +214,8 @@
<p>
</p>
<p>
- A more sophisticated use case of <code class="computeroutput"><span class="identifier">no_case</span><span class="special">[]</span></code> in conjunction with a symbol table
- (see <a class="link" href="../string/symbols.html" title="Symbols (symbols)"><code class="computeroutput"><span class="identifier">symbols</span><span class="special"><</span><span class="identifier">Ch</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span></code></a>
+ A more sophisticated use case of <tt class="computeroutput"><span class="identifier">no_case</span><span class="special">[]</span></tt> in conjunction with a symbol table
+ (see symbols<Ch, T>
for more details):
</p>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/directive/omit.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/directive/omit.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/directive/omit.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Ignoring Attribute (omit[])</title>
+<title> Ignoring Attribute
+ (omit[])</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../directive.html" title="Directive">
-<link rel="prev" href="no_case.html" title="Inhibiting Case Sensitivity (no_case[])">
-<link rel="next" href="raw.html" title="Transduction Parsing (raw[])">
+<link rel="up" href="../directive.html" title=" Directive">
+<link rel="previous" href="no_case.html" title=" Inhibiting
+ Case Sensitivity (no_case[])">
+<link rel="next" href="raw.html" title=" Transduction
+ Parsing (raw[])">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,77 +25,77 @@
<div class="spirit-nav">
<a accesskey="p" href="no_case.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../directive.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="raw.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Ignoring Attribute (omit[])">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.directive.omit"></a><a class="link" href="omit.html" title="Ignoring Attribute (omit[])"> Ignoring Attribute
- (<code class="computeroutput"><span class="identifier">omit</span><span class="special">[]</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.directive.omit"></a><a href="omit.html" title=" Ignoring Attribute
+ (omit[])"> Ignoring Attribute
+ (<tt class="computeroutput"><span class="identifier">omit</span><span class="special">[]</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.directive.omit.description"></a><h6>
-<a name="id677392"></a>
- <a class="link" href="omit.html#spirit.qi.reference.directive.omit.description">Description</a>
+<a name="id489886"></a>
+ Description
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">omit</span><span class="special">[]</span></code>
- ignores the attribute of its subject parser replacing it with <code class="computeroutput"><span class="identifier">unused</span></code>.
+ The <tt class="computeroutput"><span class="identifier">omit</span><span class="special">[]</span></tt>
+ ignores the attribute of its subject parser replacing it with <tt class="computeroutput"><span class="identifier">unused</span></tt>.
</p>
<a name="spirit.qi.reference.directive.omit.header"></a><h6>
-<a name="id677427"></a>
- <a class="link" href="omit.html#spirit.qi.reference.directive.omit.header">Header</a>
+<a name="id489943"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/directive/omit.hpp>
</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">qi_omit</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.directive.omit.namespace"></a><h6>
-<a name="id677638"></a>
- <a class="link" href="omit.html#spirit.qi.reference.directive.omit.namespace">Namespace</a>
+<a name="id490056"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
-<tbody><tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">omit</span> <span class="comment">// alias:
- boost::spirit::qi::omit</span></code>
- </p>
- </td></tr></tbody>
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">omit</span> <span class="comment">// alias:
+ boost::spirit::qi::omit</span></tt>
+ </p></td></tr></tbody>
</table></div>
<a name="spirit.qi.reference.directive.omit.model_of"></a><h6>
-<a name="id677716"></a>
- <a class="link" href="omit.html#spirit.qi.reference.directive.omit.model_of">Model of</a>
+<a name="id490158"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a>
+ UnaryParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>.
+ A Parser.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.directive.omit.expression_semantics"></a><h6>
-<a name="id677785"></a>
- <a class="link" href="omit.html#spirit.qi.reference.directive.omit.expression_semantics">Expression
+<a name="id490259"></a>
+ <a href="omit.html#spirit.qi.reference.directive.omit.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a>.
+ is not defined in UnaryParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -100,33 +103,25 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">omit</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Ignore the attribute of the subject parser, <code class="computeroutput"><span class="identifier">a</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">omit</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Ignore the attribute of the subject parser, <tt class="computeroutput"><span class="identifier">a</span></tt>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.directive.omit.attributes"></a><h6>
-<a name="id677887"></a>
- <a class="link" href="omit.html#spirit.qi.reference.directive.omit.attributes">Attributes</a>
+<a name="id490400"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -134,47 +129,39 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">omit</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused_type</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">omit</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.directive.omit.complexity"></a><h6>
-<a name="id677976"></a>
- <a class="link" href="omit.html#spirit.qi.reference.directive.omit.complexity">Complexity</a>
+<a name="id490515"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
The complexity is defined by the complexity of the subject parser,
- <code class="computeroutput"><span class="identifier">a</span></code>
+ <tt class="computeroutput"><span class="identifier">a</span></tt>
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.qi.reference.directive.omit.example"></a><h6>
-<a name="id678007"></a>
- <a class="link" href="omit.html#spirit.qi.reference.directive.omit.example">Example</a>
+<a name="id490563"></a>
+ Example
</h6>
<p>
Some using declarations:
@@ -196,7 +183,7 @@
</p>
<p>
This parser ignores the first two characters and extracts the succeeding
- <code class="computeroutput"><span class="keyword">int</span></code>:
+ <tt class="computeroutput"><span class="keyword">int</span></tt>:
</p>
<p>
</p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/directive/raw.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/directive/raw.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/directive/raw.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Transduction Parsing (raw[])</title>
+<title> Transduction
+ Parsing (raw[])</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../directive.html" title="Directive">
-<link rel="prev" href="omit.html" title="Ignoring Attribute (omit[])">
-<link rel="next" href="repeat.html" title="Repetition (repeat[])">
+<link rel="up" href="../directive.html" title=" Directive">
+<link rel="previous" href="omit.html" title=" Ignoring Attribute
+ (omit[])">
+<link rel="next" href="repeat.html" title=" Repetition
+ (repeat[])">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,84 +25,84 @@
<div class="spirit-nav">
<a accesskey="p" href="omit.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../directive.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="repeat.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Transduction Parsing (raw[])">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.directive.raw"></a><a class="link" href="raw.html" title="Transduction Parsing (raw[])"> Transduction
- Parsing (<code class="computeroutput"><span class="identifier">raw</span><span class="special">[]</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.directive.raw"></a><a href="raw.html" title=" Transduction
+ Parsing (raw[])"> Transduction
+ Parsing (<tt class="computeroutput"><span class="identifier">raw</span><span class="special">[]</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.directive.raw.description"></a><h6>
-<a name="id678303"></a>
- <a class="link" href="raw.html#spirit.qi.reference.directive.raw.description">Description</a>
+<a name="id490974"></a>
+ Description
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">raw</span><span class="special">[]</span></code>
+ The <tt class="computeroutput"><span class="identifier">raw</span><span class="special">[]</span></tt>
disregards the attribute of its subject parser, instead exposing the
- half-open range <code class="computeroutput"><span class="special">[</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">)</span></code> pointing to the matched characters from
- the input stream. The <code class="computeroutput"><span class="identifier">raw</span><span class="special">[]</span></code> directive breings back the classic
+ half-open range <tt class="computeroutput"><span class="special">[</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">)</span></tt> pointing to the matched characters from
+ the input stream. The <tt class="computeroutput"><span class="identifier">raw</span><span class="special">[]</span></tt> directive breings back the classic
Spirit transduction (un-attributed) behavior for a subject parser.
</p>
<a name="spirit.qi.reference.directive.raw.header"></a><h6>
-<a name="id678364"></a>
- <a class="link" href="raw.html#spirit.qi.reference.directive.raw.header">Header</a>
+<a name="id491072"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/directive/raw.hpp>
</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">qi_raw</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.directive.raw.namespace"></a><h6>
-<a name="id678439"></a>
- <a class="link" href="raw.html#spirit.qi.reference.directive.raw.namespace">Namespace</a>
+<a name="id491186"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
-<tbody><tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">raw</span> <span class="comment">// alias:
- boost::spirit::qi::raw</span></code>
- </p>
- </td></tr></tbody>
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">raw</span> <span class="comment">// alias:
+ boost::spirit::qi::raw</span></tt>
+ </p></td></tr></tbody>
</table></div>
<a name="spirit.qi.reference.directive.raw.model_of"></a><h6>
-<a name="id678517"></a>
- <a class="link" href="raw.html#spirit.qi.reference.directive.raw.model_of">Model of</a>
+<a name="id491289"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a>
+ UnaryParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>.
+ A Parser.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Iter</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Iter</span></tt></span></dt>
<dd><p>
- A ForwardIterator
type.
+ A ForwardIterator type.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.directive.raw.expression_semantics"></a><h6>
-<a name="id678613"></a>
- <a class="link" href="raw.html#spirit.qi.reference.directive.raw.expression_semantics">Expression
+<a name="id491429"></a>
+ <a href="raw.html#spirit.qi.reference.directive.raw.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a>.
+ is not defined in UnaryParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -107,38 +110,30 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">raw</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Disregard the attribute of the subject parser, <code class="computeroutput"><span class="identifier">a</span></code>. Expose instead the half-open
- range <code class="computeroutput"><span class="special">[</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">)</span></code> pointing to the matched characters
+<td><p>
+ <tt class="computeroutput"><span class="identifier">raw</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Disregard the attribute of the subject parser, <tt class="computeroutput"><span class="identifier">a</span></tt>. Expose instead the half-open
+ range <tt class="computeroutput"><span class="special">[</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">)</span></tt> pointing to the matched characters
from the input stream.
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.directive.raw.attributes"></a><h6>
-<a name="id678739"></a>
- <a class="link" href="raw.html#spirit.qi.reference.directive.raw.attributes">Attributes</a>
+<a name="id491605"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -147,60 +142,54 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">raw</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">raw</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">raw</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">Iter</span><span class="special">></span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">raw</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr></tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- See boost::iterator_range
.
+<tr><td colspan="2" align="left" valign="top"><p>
+ See boost::iterator_range.
</p></td></tr>
</table></div>
<a name="spirit.qi.reference.directive.raw.complexity"></a><h6>
-<a name="id678954"></a>
- <a class="link" href="raw.html#spirit.qi.reference.directive.raw.complexity">Complexity</a>
+<a name="id491890"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
The complexity is defined by the complexity of the subject parser,
- <code class="computeroutput"><span class="identifier">a</span></code>
+ <tt class="computeroutput"><span class="identifier">a</span></tt>
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.qi.reference.directive.raw.example"></a><h6>
-<a name="id678985"></a>
- <a class="link" href="raw.html#spirit.qi.reference.directive.raw.example">Example</a>
+<a name="id491938"></a>
+ Example
</h6>
<p>
Some using declarations:
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/directive/repeat.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/directive/repeat.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/directive/repeat.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Repetition (repeat[])</title>
+<title> Repetition
+ (repeat[])</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../directive.html" title="Directive">
-<link rel="prev" href="raw.html" title="Transduction Parsing (raw[])">
-<link rel="next" href="skip.html" title="Re-Establish Skipping (skip[])">
+<link rel="up" href="../directive.html" title=" Directive">
+<link rel="previous" href="raw.html" title=" Transduction
+ Parsing (raw[])">
+<link rel="next" href="skip.html" title=" Re-Establish
+ Skipping (skip[])">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,107 +25,105 @@
<div class="spirit-nav">
<a accesskey="p" href="raw.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../directive.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="skip.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Repetition (repeat[])">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.directive.repeat"></a><a class="link" href="repeat.html" title="Repetition (repeat[])"> Repetition
- (<code class="computeroutput"><span class="identifier">repeat</span><span class="special">[]</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.directive.repeat"></a><a href="repeat.html" title=" Repetition
+ (repeat[])"> Repetition
+ (<tt class="computeroutput"><span class="identifier">repeat</span><span class="special">[]</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.directive.repeat.description"></a><h6>
-<a name="id679294"></a>
- <a class="link" href="repeat.html#spirit.qi.reference.directive.repeat.description">Description</a>
+<a name="id492366"></a>
+ Description
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">repeat</span><span class="special">[]</span></code>
+ The <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">[]</span></tt>
provides a more powerful and flexible mechanism for repeating a parser.
There are grammars that are impractical and cumbersome, if not impossible,
- for the basic EBNF iteration syntax (<a class="link" href="../operator/kleene.html" title="Kleene (*a)">Kleene</a>
- and the <a class="link" href="../operator/plus.html" title="Plus (+a)">Plus</a>)
+ for the basic EBNF iteration syntax (Kleene
+ and the Plus)
to specify. Examples:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
A file name may have a maximum of 255 characters only.
</li>
-<li class="listitem">
+<li>
A specific bitmap file format has exactly 4096 RGB color information.
</li>
-<li class="listitem">
+<li>
A 256 bit binary string (1..256 1s or 0s).
</li>
</ul></div>
<a name="spirit.qi.reference.directive.repeat.header"></a><h6>
-<a name="id679346"></a>
- <a class="link" href="repeat.html#spirit.qi.reference.directive.repeat.header">Header</a>
+<a name="id492456"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/directive/repeat.hpp>
</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">qi_repeat</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.directive.repeat.namespace"></a><h6>
-<a name="id679420"></a>
- <a class="link" href="repeat.html#spirit.qi.reference.directive.repeat.namespace">Namespace</a>
+<a name="id492570"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">repeat</span> <span class="comment">// alias:
- boost::spirit::qi::repeat</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">inf</span> <span class="comment">// alias:
- boost::spirit::qi::inf</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">repeat</span> <span class="comment">// alias:
+ boost::spirit::qi::repeat</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">inf</span> <span class="comment">// alias:
+ boost::spirit::qi::inf</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.directive.repeat.model_of"></a><h6>
-<a name="id679536"></a>
- <a class="link" href="repeat.html#spirit.qi.reference.directive.repeat.model_of">Model of</a>
+<a name="id492721"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a>
+ UnaryParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>.
+ A Parser.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">n</span></code>,<code class="computeroutput"><span class="identifier">min</span></code>,<code class="computeroutput"><span class="identifier">max</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">n</span></tt>,<tt class="computeroutput"><span class="identifier">min</span></tt>,<tt class="computeroutput"><span class="identifier">max</span></tt></span></dt>
<dd><p>
- An <code class="computeroutput"><span class="keyword">int</span></code> anything that
- can be converted to an <code class="computeroutput"><span class="keyword">int</span></code>,
+ An <tt class="computeroutput"><span class="keyword">int</span></tt> anything that
+ can be converted to an <tt class="computeroutput"><span class="keyword">int</span></tt>,
or a __lazy<span class="underline">argument</span>_ that evaluates
- to anything that can be converted to an <code class="computeroutput"><span class="keyword">int</span></code>.
+ to anything that can be converted to an <tt class="computeroutput"><span class="keyword">int</span></tt>.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.directive.repeat.expression_semantics"></a><h6>
-<a name="id679665"></a>
- <a class="link" href="repeat.html#spirit.qi.reference.directive.repeat.expression_semantics">Expression
+<a name="id492912"></a>
+ <a href="repeat.html#spirit.qi.reference.directive.repeat.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a>.
+ is not defined in UnaryParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -130,83 +131,63 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">repeat</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Repeat <code class="computeroutput"><span class="identifier">a</span></code> zero
- or more times. Same as <a class="link" href="../operator/kleene.html" title="Kleene (*a)">Kleene</a>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Repeat <tt class="computeroutput"><span class="identifier">a</span></tt> zero
+ or more times. Same as Kleene.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">n</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Repeat <code class="computeroutput"><span class="identifier">a</span></code> exactly
- <code class="computeroutput"><span class="identifier">n</span></code> times.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">n</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Repeat <tt class="computeroutput"><span class="identifier">a</span></tt> exactly
+ <tt class="computeroutput"><span class="identifier">n</span></tt> times.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">min</span><span class="special">,</span>
- <span class="identifier">max</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Repeat <code class="computeroutput"><span class="identifier">a</span></code> at least
- <code class="computeroutput"><span class="identifier">min</span></code> times and
- at most <code class="computeroutput"><span class="identifier">max</span></code> times.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">min</span><span class="special">,</span>
+ <span class="identifier">max</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Repeat <tt class="computeroutput"><span class="identifier">a</span></tt> at least
+ <tt class="computeroutput"><span class="identifier">min</span></tt> times and
+ at most <tt class="computeroutput"><span class="identifier">max</span></tt> times.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">min</span><span class="special">,</span>
- <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Repeat <code class="computeroutput"><span class="identifier">a</span></code> at least
- <code class="computeroutput"><span class="identifier">min</span></code> or more (continuing
- until <code class="computeroutput"><span class="identifier">a</span></code> fails
+<td><p>
+ <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">min</span><span class="special">,</span>
+ <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Repeat <tt class="computeroutput"><span class="identifier">a</span></tt> at least
+ <tt class="computeroutput"><span class="identifier">min</span></tt> or more (continuing
+ until <tt class="computeroutput"><span class="identifier">a</span></tt> fails
or the input is consumed).
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.directive.repeat.attributes"></a><h6>
-<a name="id682160"></a>
- <a class="link" href="repeat.html#spirit.qi.reference.directive.repeat.attributes">Attributes</a>
+<a name="id493340"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -215,104 +196,92 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">repeat</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">repeat</span><span class="special">[</span><span class="identifier">a</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">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">repeat</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">n</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">n</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">repeat</span><span class="special">(</span><span class="identifier">n</span><span class="special">)[</span><span class="identifier">a</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">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">repeat</span><span class="special">(</span><span class="identifier">n</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">min</span><span class="special">,</span>
+ <span class="identifier">max</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">min</span><span class="special">,</span>
- <span class="identifier">max</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">repeat</span><span class="special">(</span><span class="identifier">min</span><span class="special">,</span> <span class="identifier">max</span><span class="special">)[</span><span class="identifier">a</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">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">repeat</span><span class="special">(</span><span class="identifier">min</span><span class="special">,</span> <span class="identifier">max</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">min</span><span class="special">,</span>
+ <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">repeat</span><span class="special">(</span><span class="identifier">min</span><span class="special">,</span>
- <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">repeat</span><span class="special">(</span><span class="identifier">min</span><span class="special">,</span> <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">a</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">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">repeat</span><span class="special">(</span><span class="identifier">min</span><span class="special">,</span> <span class="identifier">inf</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.directive.repeat.complexity"></a><h6>
-<a name="id682832"></a>
- <a class="link" href="repeat.html#spirit.qi.reference.directive.repeat.complexity">Complexity</a>
+<a name="id494228"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
The overall complexity is defined by the complexity of its subject
- parser. The complexity of <code class="computeroutput"><span class="identifier">repeat</span></code>
+ parser. The complexity of <tt class="computeroutput"><span class="identifier">repeat</span></tt>
itself is O(N), where N is the number of repetitions to execute.
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.qi.reference.directive.repeat.example"></a><h6>
-<a name="id682863"></a>
- <a class="link" href="repeat.html#spirit.qi.reference.directive.repeat.example">Example</a>
+<a name="id494279"></a>
+ Example
</h6>
<p>
Using the repeat directive, we can now write our examples above.
@@ -397,7 +366,7 @@
<p>
</p>
<p>
- <span class="inlinemediaobject"><img src="../../../.././images/pascal_string.png" alt="pascal_string"></span>
+ <span class="inlinemediaobject"><img src="./images/pascal_string.png" alt="pascal_string"></span>
</p>
<p>
</p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/directive/skip.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/directive/skip.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/directive/skip.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Re-Establish Skipping (skip[])</title>
+<title> Re-Establish
+ Skipping (skip[])</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
-<link rel="up" href="../directive.html" title="Directive">
-<link rel="prev" href="repeat.html" title="Repetition (repeat[])">
+<link rel="up" href="../directive.html" title=" Directive">
+<link rel="previous" href="repeat.html" title=" Repetition
+ (repeat[])">
<link rel="next" href="../numeric.html" title="Numeric">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,26 +24,32 @@
<div class="spirit-nav">
<a accesskey="p" href="repeat.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../directive.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../numeric.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Re-Establish Skipping (skip[])">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.directive.skip"></a><a class="link" href="skip.html" title="Re-Establish Skipping (skip[])"> Re-Establish
- Skipping (<code class="computeroutput"><span class="identifier">skip</span><span class="special">[]</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.directive.skip"></a><a href="skip.html" title=" Re-Establish
+ Skipping (skip[])"> Re-Establish
+ Skipping (<tt class="computeroutput"><span class="identifier">skip</span><span class="special">[]</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.directive.skip.description"></a><h6>
-<a name="id683774"></a>
- <a class="link" href="skip.html#spirit.qi.reference.directive.skip.description">Description</a>
+<a name="id495530"></a>
+ Description
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">skip</span></code> directive is
- the inverse of <a class="link" href="lexeme.html" title="Inhibiting Skipping (lexeme[])"><code class="computeroutput"><span class="identifier">lexeme</span></code></a>. While the <a class="link" href="lexeme.html" title="Inhibiting Skipping (lexeme[])"><code class="computeroutput"><span class="identifier">lexeme</span></code></a> directive turns off white
- space skipping, the <code class="computeroutput"><span class="identifier">skip</span></code>
+ The <tt class="computeroutput"><span class="identifier">skip</span></tt> directive is
+ the inverse of <a href="lexeme.html" title=" Inhibiting
+ Skipping (lexeme[])"><tt class="computeroutput"><span class="identifier">lexeme</span></tt></a>. While the <a href="lexeme.html" title=" Inhibiting
+ Skipping (lexeme[])"><tt class="computeroutput"><span class="identifier">lexeme</span></tt></a> directive turns off white
+ space skipping, the <tt class="computeroutput"><span class="identifier">skip</span></tt>
directive turns it on again. This is simply done by wrapping the parts
- inside the <code class="computeroutput"><span class="identifier">skip</span></code> directive:
+ inside the <tt class="computeroutput"><span class="identifier">skip</span></tt> directive:
</p>
<pre class="programlisting"><span class="identifier">skip</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span>
</pre>
<p>
- It is also possible to supply a skip parser to the <code class="computeroutput"><span class="identifier">skip</span></code>
+ It is also possible to supply a skip parser to the <tt class="computeroutput"><span class="identifier">skip</span></tt>
directive:
</p>
<pre class="programlisting"><span class="identifier">skip</span><span class="special">(</span><span class="identifier">p</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span> <span class="comment">// Use `p` as a skipper for parsing `a`
@@ -49,74 +57,70 @@
<p>
This makes it possible to:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
Perform localized phrase level parsing while doing character level
parsing.
</li>
-<li class="listitem">
+<li>
Replace the current skipper anywhere with an entirely different skipper
while doing phrase level parsing.
</li>
</ul></div>
<a name="spirit.qi.reference.directive.skip.header"></a><h6>
-<a name="id683907"></a>
- <a class="link" href="skip.html#spirit.qi.reference.directive.skip.header">Header</a>
+<a name="id495740"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/directive/skip.hpp>
</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">qi_skip</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.directive.skip.namespace"></a><h6>
-<a name="id683981"></a>
- <a class="link" href="skip.html#spirit.qi.reference.directive.skip.namespace">Namespace</a>
+<a name="id495855"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
-<tbody><tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">skip</span> <span class="comment">// alias:
- boost::spirit::qi::skip</span></code>
- </p>
- </td></tr></tbody>
+ </p></th></tr></thead>
+<tbody><tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">skip</span> <span class="comment">// alias:
+ boost::spirit::qi::skip</span></tt>
+ </p></td></tr></tbody>
</table></div>
<a name="spirit.qi.reference.directive.skip.model_of"></a><h6>
-<a name="id684059"></a>
- <a class="link" href="skip.html#spirit.qi.reference.directive.skip.model_of">Model of</a>
+<a name="id495957"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a>
+ UnaryParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>.
+ A Parser.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.directive.skip.expression_semantics"></a><h6>
-<a name="id684128"></a>
- <a class="link" href="skip.html#spirit.qi.reference.directive.skip.expression_semantics">Expression
+<a name="id496058"></a>
+ <a href="skip.html#spirit.qi.reference.directive.skip.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a>.
+ is not defined in UnaryParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -124,51 +128,39 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">skip</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">skip</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
Re-establish the skipper that got inhibited by lexeme
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">skip</span><span class="special">(</span><span class="identifier">p</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
- Use <code class="computeroutput"><span class="identifier">p</span></code> as a skipper
- for parsing <code class="computeroutput"><span class="identifier">a</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">skip</span><span class="special">(</span><span class="identifier">p</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
+<td><p>
+ Use <tt class="computeroutput"><span class="identifier">p</span></tt> as a skipper
+ for parsing <tt class="computeroutput"><span class="identifier">a</span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.directive.skip.attributes"></a><h6>
-<a name="id685386"></a>
- <a class="link" href="skip.html#spirit.qi.reference.directive.skip.attributes">Attributes</a>
+<a name="id496266"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -177,69 +169,61 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">skip</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">skip</span><span class="special">[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">skip</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">lexeme</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">skip</span><span class="special">(</span><span class="identifier">p</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">skip</span><span class="special">(</span><span class="identifier">p</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="identifier">skip</span><span class="special">(</span><span class="identifier">p</span><span class="special">)[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="identifier">lexeme</span><span class="special">[</span><span class="identifier">a</span><span class="special">]:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.directive.skip.complexity"></a><h6>
-<a name="id685686"></a>
- <a class="link" href="skip.html#spirit.qi.reference.directive.skip.complexity">Complexity</a>
+<a name="id496659"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
The complexity is defined by the complexity of the subject parser,
- <code class="computeroutput"><span class="identifier">a</span></code>
+ <tt class="computeroutput"><span class="identifier">a</span></tt>
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.qi.reference.directive.skip.example"></a><h6>
-<a name="id685717"></a>
- <a class="link" href="skip.html#spirit.qi.reference.directive.skip.example">Example</a>
+<a name="id496707"></a>
+ Example
</h6>
<p>
Some using declarations:
@@ -258,7 +242,7 @@
<p>
</p>
<p>
- Simple usage of <code class="computeroutput"><span class="identifier">skip</span><span class="special">[]</span></code>:
+ Simple usage of <tt class="computeroutput"><span class="identifier">skip</span><span class="special">[]</span></tt>:
</p>
<p>
</p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/numeric.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/numeric.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/numeric.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,13 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Numeric</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="directive/skip.html" title="Re-Establish Skipping (skip[])">
-<link rel="next" href="numeric/uint.html" title="Unsigned Integers (uint_, etc.)">
+<link rel="previous" href="directive/skip.html" title=" Re-Establish
+ Skipping (skip[])">
+<link rel="next" href="numeric/uint.html" title=" Unsigned Integers
+ (uint_, etc.)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,19 +24,22 @@
<div class="spirit-nav">
<a accesskey="p" href="directive/skip.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="numeric/uint.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Numeric">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.reference.numeric"></a><a class="link" href="numeric.html" title="Numeric">Numeric</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.reference.numeric"></a>Numeric
+</h4></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section"><a href="numeric/uint.html"> Unsigned Integers
- (<code class="computeroutput"><span class="identifier">uint_</span></code>, etc.)</a></span></dt>
+ (<tt class="computeroutput"><span class="identifier">uint_</span></tt>, etc.)</a></span></dt>
<dt><span class="section"><a href="numeric/int.html"> Signed Integers
- (<code class="computeroutput"><span class="identifier">int_</span></code>, etc.)</a></span></dt>
-<dt><span class="section"><a href="numeric/real.html"> Real Numbers (<code class="computeroutput"><span class="identifier">float_</span></code>, <code class="computeroutput"><span class="identifier">double_</span></code>,
+ (<tt class="computeroutput"><span class="identifier">int_</span></tt>, etc.)</a></span></dt>
+<dt><span class="section"><a href="numeric/real.html"> Real Numbers (<tt class="computeroutput"><span class="identifier">float_</span></tt>, <tt class="computeroutput"><span class="identifier">double_</span></tt>,
etc.)</a></span></dt>
<dt><span class="section"><a href="numeric/boolean.html"> Boolean Parser
- (<code class="computeroutput"><span class="identifier">bool_</span></code>)</a></span></dt>
+ (<tt class="computeroutput"><span class="identifier">bool_</span></tt>)</a></span></dt>
</dl></div>
<p>
The library includes a couple of predefined objects for parsing signed
@@ -49,21 +54,21 @@
<p>
The numeric parsers are fine tuned (employing loop unrolling and extensive
template metaprogramming) with exceptional performance that rivals the
- low level C functions such as <code class="computeroutput"><span class="identifier">atof</span></code>,
- <code class="computeroutput"><span class="identifier">strtod</span></code>, <code class="computeroutput"><span class="identifier">atol</span></code>,
- <code class="computeroutput"><span class="identifier">strtol</span></code>. Benchmarks reveal
+ low level C functions such as <tt class="computeroutput"><span class="identifier">atof</span></tt>,
+ <tt class="computeroutput"><span class="identifier">strtod</span></tt>, <tt class="computeroutput"><span class="identifier">atol</span></tt>,
+ <tt class="computeroutput"><span class="identifier">strtol</span></tt>. Benchmarks reveal
up to 4X speed over the C counterparts. This goes to show that you can
write extremely tight generic C++ code that rivals, if not surpasses C.
</p>
-<a name="spirit.qi.reference.numeric.module_header"></a><h6>
-<a name="id685987"></a>
- <a class="link" href="numeric.html#spirit.qi.reference.numeric.module_header">Module Header</a>
- </h6>
+<a name="spirit.qi.reference.numeric.module_header"></a><h5>
+<a name="id497106"></a>
+ Module Header
+ </h5>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/numeric.hpp>
</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">qi_numeric</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/numeric/boolean.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/numeric/boolean.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/numeric/boolean.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Boolean Parser (bool_)</title>
+<title> Boolean Parser
+ (bool_)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../numeric.html" title="Numeric">
-<link rel="prev" href="real.html" title="Real Numbers (float_, double_, etc.)">
+<link rel="previous" href="real.html" title=" Real Numbers (float_, double_,
+ etc.)">
<link rel="next" href="../operator.html" title="Operator">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,74 +24,70 @@
<div class="spirit-nav">
<a accesskey="p" href="real.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../numeric.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../operator.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Boolean Parser (bool_)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.numeric.boolean"></a><a class="link" href="boolean.html" title="Boolean Parser (bool_)"> Boolean Parser
- (<code class="computeroutput"><span class="identifier">bool_</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.numeric.boolean"></a><a href="boolean.html" title=" Boolean Parser
+ (bool_)"> Boolean Parser
+ (<tt class="computeroutput"><span class="identifier">bool_</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.numeric.boolean.description"></a><h6>
-<a name="id698344"></a>
- <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.description">Description</a>
+<a name="id510122"></a>
+ Description
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">bool_parser</span></code> can parse
- booleans of arbitrary type, <code class="computeroutput"><span class="identifier">B</span></code>.
- The boolean base type <code class="computeroutput"><span class="identifier">T</span></code>
+ The <tt class="computeroutput"><span class="identifier">bool_parser</span></tt> can parse
+ booleans of arbitrary type, <tt class="computeroutput"><span class="identifier">B</span></tt>.
+ The boolean base type <tt class="computeroutput"><span class="identifier">T</span></tt>
can be a user defined boolean type as long as the type follows certain
expression requirements (documented below).
</p>
<a name="spirit.qi.reference.numeric.boolean.header"></a><h6>
-<a name="id698383"></a>
- <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.header">Header</a>
+<a name="id510188"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/numeric/bool.hpp>
</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">qi_bool</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.numeric.boolean.namespace"></a><h6>
-<a name="id698457"></a>
- <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.namespace">Namespace</a>
+<a name="id510302"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">bool_</span> <span class="comment">// alias:
- boost::spirit::qi::bool_</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">true_</span> <span class="comment">// alias:
- boost::spirit::qi::true_</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">false_</span> <span class="comment">// alias:
- boost::spirit::qi::false_</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">bool_</span> <span class="comment">// alias:
+ boost::spirit::qi::bool_</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">true_</span> <span class="comment">// alias:
+ boost::spirit::qi::true_</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">false_</span> <span class="comment">// alias:
+ boost::spirit::qi::false_</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.numeric.boolean.synopsis"></a><h6>
-<a name="id698610"></a>
- <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.synopsis">Synopsis</a>
+<a name="id510504"></a>
+ Synopsis
</h6>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">RealPolicies</span><span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">bool_parser</span><span class="special">;</span>
</pre>
<a name="spirit.qi.reference.numeric.boolean.template_parameters"></a><h6>
-<a name="id698674"></a>
- <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.template_parameters">Template
+<a name="id510599"></a>
+ <a href="boolean.html#spirit.qi.reference.numeric.boolean.template_parameters">Template
parameters</a>
</h6>
<div class="informaltable"><table class="table">
@@ -99,106 +97,88 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Parameter
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Default
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">B</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">B</span></tt>
+ </p></td>
+<td><p>
The boolean type of the boolean parser.
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">bool</span></code>
- </p>
- </td>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">bool</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">RealPolicies</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">RealPolicies</span></tt>
+ </p></td>
+<td><p>
Policies control the parser's behavior.
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">bool_policies</span><span class="special"><</span><span class="identifier">B</span><span class="special">></span></code>
- </p>
- </td>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">bool_policies</span><span class="special"><</span><span class="identifier">B</span><span class="special">></span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.numeric.boolean.model_of"></a><h6>
-<a name="id698812"></a>
- <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.model_of">Model of</a>
+<a name="id510777"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>
+ PrimitiveParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">BP</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">BP</span></tt></span></dt>
<dd><p>
- An instance of <code class="computeroutput"><span class="identifier">bool_parser</span></code>
+ An instance of <tt class="computeroutput"><span class="identifier">bool_parser</span></tt>
(type).
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">BP</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">BP</span></tt></span></dt>
<dd><p>
- A boolean <code class="computeroutput"><span class="identifier">Policies</span></code>
+ A boolean <tt class="computeroutput"><span class="identifier">Policies</span></tt>
(type).
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">b</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">b</span></tt></span></dt>
<dd><p>
- An object of <code class="computeroutput"><span class="identifier">B</span></code>, the
+ An object of <tt class="computeroutput"><span class="identifier">B</span></tt>, the
numeric base type.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">f</span></code>,
- <code class="computeroutput"><span class="identifier">l</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">f</span></tt>,
+ <tt class="computeroutput"><span class="identifier">l</span></tt></span></dt>
<dd><p>
- ForwardIterator
. first/last
+ ForwardIterator. first/last
iterator pair.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.numeric.boolean.expression_semantics"></a><h6>
-<a name="id698967"></a>
- <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.expression_semantics">Expression
+<a name="id510993"></a>
+ <a href="boolean.html#spirit.qi.reference.numeric.boolean.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>.
+ is not defined in PrimitiveParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -206,97 +186,78 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">BP</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
- Instantiate and (default) construct an <code class="computeroutput"><span class="identifier">bool_parser</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">BP</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
+ Instantiate and (default) construct an <tt class="computeroutput"><span class="identifier">bool_parser</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">bool_</span></code>
- </p>
- </td>
-<td>
- <p>
- Create a <code class="computeroutput"><span class="identifier">bool_parser</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span> <span class="identifier">bool_policies</span><span class="special"><</span><span class="keyword">bool</span><span class="special">></span> <span class="special">></span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">bool_</span></tt>
+ </p></td>
+<td><p>
+ Create a <tt class="computeroutput"><span class="identifier">bool_parser</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span> <span class="identifier">bool_policies</span><span class="special"><</span><span class="keyword">bool</span><span class="special">></span> <span class="special">></span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">true_</span></code>
- </p>
- </td>
-<td>
- <p>
- Create a <code class="computeroutput"><span class="identifier">bool_parser</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span> <span class="identifier">bool_policies</span><span class="special"><</span><span class="keyword">bool</span><span class="special">></span> <span class="special">></span></code>
- which is succeeding onlz after matching <code class="computeroutput"><span class="string">"true"</span></code>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">true_</span></tt>
+ </p></td>
+<td><p>
+ Create a <tt class="computeroutput"><span class="identifier">bool_parser</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span> <span class="identifier">bool_policies</span><span class="special"><</span><span class="keyword">bool</span><span class="special">></span> <span class="special">></span></tt>
+ which is succeeding onlz after matching <tt class="computeroutput"><span class="string">"true"</span></tt>.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">false_</span></code>
- </p>
- </td>
-<td>
- <p>
- Create a <code class="computeroutput"><span class="identifier">bool_parser</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span> <span class="identifier">bool_policies</span><span class="special"><</span><span class="keyword">bool</span><span class="special">></span> <span class="special">></span></code>
- which is succeeding onlz after matching <code class="computeroutput"><span class="string">"false"</span></code>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">false_</span></tt>
+ </p></td>
+<td><p>
+ Create a <tt class="computeroutput"><span class="identifier">bool_parser</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span> <span class="identifier">bool_policies</span><span class="special"><</span><span class="keyword">bool</span><span class="special">></span> <span class="special">></span></tt>
+ which is succeeding onlz after matching <tt class="computeroutput"><span class="string">"false"</span></tt>.
+ </p></td>
</tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- All boolean parsers properly respect the <a class="link" href="../directive/no_case.html" title="Inhibiting Case Sensitivity (no_case[])"><code class="computeroutput"><span class="identifier">no_case</span></code></a><code class="computeroutput"><span class="special">[]</span></code>
+<tr><td colspan="2" align="left" valign="top"><p>
+ All boolean parsers properly respect the <a href="../directive/no_case.html" title=" Inhibiting
+ Case Sensitivity (no_case[])"><tt class="computeroutput"><span class="identifier">no_case</span></tt></a><tt class="computeroutput"><span class="special">[]</span></tt>
directive.
</p></td></tr>
</table></div>
<a name="spirit.qi.reference.numeric.boolean.attributes"></a><h6>
-<a name="id699840"></a>
- <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.attributes">Attributes</a>
+<a name="id511441"></a>
+ Attributes
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <code class="computeroutput"><span class="identifier">B</span></code>, The boolean type
+ <tt class="computeroutput"><span class="identifier">B</span></tt>, The boolean type
of the booelan parser.
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.qi.reference.numeric.boolean.complexity"></a><h6>
-<a name="id699872"></a>
- <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.complexity">Complexity</a>
+<a name="id511487"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -308,12 +269,12 @@
</p>
</blockquote></div>
<a name="spirit.qi.reference.numeric.boolean.minimum_expression_requirements_for__code__phrase_role__identifier__b__phrase___code_"></a><h6>
-<a name="id699896"></a>
- <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.minimum_expression_requirements_for__code__phrase_role__identifier__b__phrase___code_">Minimum
- Expression Requirements for <code class="computeroutput"><span class="identifier">B</span></code></a>
+<a name="id511526"></a>
+ <a href="boolean.html#spirit.qi.reference.numeric.boolean.minimum_expression_requirements_for__code__phrase_role__identifier__b__phrase___code_">Minimum
+ Expression Requirements for <tt class="computeroutput"><span class="identifier">B</span></tt></a>
</h6>
<p>
- The boolean type, <code class="computeroutput"><span class="identifier">B</span></code>,
+ The boolean type, <tt class="computeroutput"><span class="identifier">B</span></tt>,
the minimum expression requirements listed below must be valid. Take
note that additional requirements may be imposed by custom policies.
</p>
@@ -323,55 +284,47 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">B</span><span class="special">(</span><span class="keyword">bool</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Constructible from a <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">B</span><span class="special">(</span><span class="keyword">bool</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Constructible from a <tt class="computeroutput"><span class="keyword">bool</span></tt>.
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.numeric.boolean.boolean__code__phrase_role__identifier__policies__phrase___code_"></a><h6>
-<a name="id700001"></a>
- <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.boolean__code__phrase_role__identifier__policies__phrase___code_">Boolean
- <code class="computeroutput"><span class="identifier">Policies</span></code></a>
+<a name="id511680"></a>
+ <a href="boolean.html#spirit.qi.reference.numeric.boolean.boolean__code__phrase_role__identifier__policies__phrase___code_">Boolean
+ <tt class="computeroutput"><span class="identifier">Policies</span></tt></a>
</h6>
<p>
- The boolean <code class="computeroutput"><span class="identifier">Policies</span></code>
+ The boolean <tt class="computeroutput"><span class="identifier">Policies</span></tt>
template parameter is a class that groups all the policies that control
the parser's behavior. Policies control the boolean parsers' behavior.
</p>
<p>
- The default is <code class="computeroutput"><span class="identifier">bool_policies</span><span class="special"><</span><span class="keyword">bool</span><span class="special">></span></code>. The default is provided to take
+ The default is <tt class="computeroutput"><span class="identifier">bool_policies</span><span class="special"><</span><span class="keyword">bool</span><span class="special">></span></tt>. The default is provided to take
care of the most common case (there are many ways to represent, and hence
parse, boolean numbers). In most cases, the default policies are sufficient
and can be used straight out of the box. They are designed to parse boolean
- value of the form <code class="computeroutput"><span class="string">"true"</span></code>
- and <code class="computeroutput"><span class="string">"false"</span></code>.
+ value of the form <tt class="computeroutput"><span class="string">"true"</span></tt>
+ and <tt class="computeroutput"><span class="string">"false"</span></tt>.
</p>
<a name="spirit.qi.reference.numeric.boolean.boolean__code__phrase_role__identifier__policies__phrase___code__expression_requirements"></a><h6>
-<a name="id700067"></a>
- <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.boolean__code__phrase_role__identifier__policies__phrase___code__expression_requirements">Boolean
- <code class="computeroutput"><span class="identifier">Policies</span></code> Expression Requirements</a>
+<a name="id511798"></a>
+ <a href="boolean.html#spirit.qi.reference.numeric.boolean.boolean__code__phrase_role__identifier__policies__phrase___code__expression_requirements">Boolean
+ <tt class="computeroutput"><span class="identifier">Policies</span></tt> Expression Requirements</a>
</h6>
<p>
- For models of boolean <code class="computeroutput"><span class="identifier">Policies</span></code>
+ For models of boolean <tt class="computeroutput"><span class="identifier">Policies</span></tt>
the following expressions must be valid:
</p>
<div class="informaltable"><table class="table">
@@ -380,67 +333,55 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">BP</span><span class="special">::</span><span class="identifier">parse_true</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">BP</span><span class="special">::</span><span class="identifier">parse_true</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
<span class="identifier">l</span><span class="special">,</span>
- <span class="identifier">n</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Parse a <code class="computeroutput"><span class="keyword">true</span></code> value.
- </p>
- </td>
+ <span class="identifier">n</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Parse a <tt class="computeroutput"><span class="keyword">true</span></tt> value.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">BP</span><span class="special">::</span><span class="identifier">parse_false</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">BP</span><span class="special">::</span><span class="identifier">parse_false</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
<span class="identifier">l</span><span class="special">,</span>
- <span class="identifier">n</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Parse a <code class="computeroutput"><span class="keyword">false</span></code> value.
- </p>
- </td>
+ <span class="identifier">n</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Parse a <tt class="computeroutput"><span class="keyword">false</span></tt> value.
+ </p></td>
</tr>
</tbody>
</table></div>
<p>
The functions should return true if the required representations of
- <code class="computeroutput"><span class="keyword">true</span></code> or <code class="computeroutput"><span class="keyword">false</span></code>
- have been found. In this case the attribute <code class="computeroutput"><span class="identifier">n</span></code>
- should be set to the matched value (<code class="computeroutput"><span class="keyword">true</span></code>
- or <code class="computeroutput"><span class="keyword">false</span></code>).
+ <tt class="computeroutput"><span class="keyword">true</span></tt> or <tt class="computeroutput"><span class="keyword">false</span></tt>
+ have been found. In this case the attribute <tt class="computeroutput"><span class="identifier">n</span></tt>
+ should be set to the matched value (<tt class="computeroutput"><span class="keyword">true</span></tt>
+ or <tt class="computeroutput"><span class="keyword">false</span></tt>).
</p>
<a name="spirit.qi.reference.numeric.boolean.boolean__code__phrase_role__identifier__policies__phrase___code__specializations"></a><h6>
-<a name="id700305"></a>
- <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.boolean__code__phrase_role__identifier__policies__phrase___code__specializations">Boolean
- <code class="computeroutput"><span class="identifier">Policies</span></code> Specializations</a>
+<a name="id512135"></a>
+ <a href="boolean.html#spirit.qi.reference.numeric.boolean.boolean__code__phrase_role__identifier__policies__phrase___code__specializations">Boolean
+ <tt class="computeroutput"><span class="identifier">Policies</span></tt> Specializations</a>
</h6>
<p>
The easiest way to implement a proper boolean parsing policy is to derive
- a new type from the the type <code class="computeroutput"><span class="identifier">bool_policies</span></code>
+ a new type from the the type <tt class="computeroutput"><span class="identifier">bool_policies</span></tt>
while overriding the aspects of the parsing which need to be changed.
For example, here's the implementation of a boolean parsing policy interpreting
- the string <code class="computeroutput"><span class="string">"eurt"</span></code>
- (i.e. "true" spelled backwards) as <code class="computeroutput"><span class="keyword">false</span></code>:
+ the string <tt class="computeroutput"><span class="string">"eurt"</span></tt>
+ (i.e. "true" spelled backwards) as <tt class="computeroutput"><span class="keyword">false</span></tt>:
</p>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">backwards_bool_policies</span> <span class="special">:</span> <span class="identifier">qi</span><span class="special">::</span><span class="identifier">bool_policies</span><span class="special"><></span>
<span class="special">{</span>
@@ -460,8 +401,8 @@
<span class="special">};</span>
</pre>
<a name="spirit.qi.reference.numeric.boolean.example"></a><h6>
-<a name="id700703"></a>
- <a class="link" href="boolean.html#spirit.qi.reference.numeric.boolean.example">Example</a>
+<a name="id512692"></a>
+ Example
</h6>
<p>
Some using declarations:
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/numeric/int.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/numeric/int.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/numeric/int.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Signed Integers (int_, etc.)</title>
+<title> Signed Integers
+ (int_, etc.)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../numeric.html" title="Numeric">
-<link rel="prev" href="uint.html" title="Unsigned Integers (uint_, etc.)">
-<link rel="next" href="real.html" title="Real Numbers (float_, double_, etc.)">
+<link rel="previous" href="uint.html" title=" Unsigned Integers
+ (uint_, etc.)">
+<link rel="next" href="real.html" title=" Real Numbers (float_, double_,
+ etc.)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,93 +25,87 @@
<div class="spirit-nav">
<a accesskey="p" href="uint.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../numeric.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="real.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Signed Integers (int_, etc.)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.numeric.int"></a><a class="link" href="int.html" title="Signed Integers (int_, etc.)"> Signed Integers
- (<code class="computeroutput"><span class="identifier">int_</span></code>, etc.)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.numeric.int"></a><a href="int.html" title=" Signed Integers
+ (int_, etc.)"> Signed Integers
+ (<tt class="computeroutput"><span class="identifier">int_</span></tt>, etc.)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.numeric.int.description"></a><h6>
-<a name="id689521"></a>
- <a class="link" href="int.html#spirit.qi.reference.numeric.int.description">Description</a>
+<a name="id500428"></a>
+ Description
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">int_parser</span></code> can parse
+ The <tt class="computeroutput"><span class="identifier">int_parser</span></tt> can parse
signed integers of arbitrary length and size. This is almost the same
- as the <code class="computeroutput"><span class="identifier">uint_parser</span></code>. The
- only difference is the additional task of parsing the <code class="computeroutput"><span class="char">'+'</span></code>
- or <code class="computeroutput"><span class="char">'-'</span></code> sign preceding the number.
- The class interface is the same as that of the <code class="computeroutput"><span class="identifier">uint_parser</span></code>.
+ as the <tt class="computeroutput"><span class="identifier">uint_parser</span></tt>. The
+ only difference is the additional task of parsing the <tt class="computeroutput"><span class="char">'+'</span></tt>
+ or <tt class="computeroutput"><span class="char">'-'</span></tt> sign preceding the number.
+ The class interface is the same as that of the <tt class="computeroutput"><span class="identifier">uint_parser</span></tt>.
</p>
<p>
- The <code class="computeroutput"><span class="identifier">int_parser</span></code> parser
+ The <tt class="computeroutput"><span class="identifier">int_parser</span></tt> parser
can be used to parse ordinary primitive C/C++ integers or even user defined
scalars such as bigints (unlimited precision integers) as long as the
type follows certain expression requirements (documented below).
</p>
<a name="spirit.qi.reference.numeric.int.header"></a><h6>
-<a name="id689585"></a>
- <a class="link" href="int.html#spirit.qi.reference.numeric.int.header">Header</a>
+<a name="id500536"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/numeric/int.hpp>
</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">qi_int</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.numeric.int.namespace"></a><h6>
-<a name="id689659"></a>
- <a class="link" href="int.html#spirit.qi.reference.numeric.int.namespace">Namespace</a>
+<a name="id500650"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">short_</span> <span class="comment">// alias:
- boost::spirit::qi::short_</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">int_</span> <span class="comment">// alias:
- boost::spirit::qi::int_</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">long_</span> <span class="comment">// alias:
- boost::spirit::qi::long_</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">long_long</span> <span class="comment">//
- alias: boost::spirit::qi::long_long</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">short_</span> <span class="comment">// alias:
+ boost::spirit::qi::short_</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">int_</span> <span class="comment">// alias:
+ boost::spirit::qi::int_</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">long_</span> <span class="comment">// alias:
+ boost::spirit::qi::long_</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">long_long</span> <span class="comment">//
+ alias: boost::spirit::qi::long_long</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
-<div class="important" title="Important"><table border="0" summary="Important">
+<div class="important"><table border="0" summary="Important">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../images/important.png"></td>
<th align="left">Important</th>
</tr>
-<tr><td align="left" valign="top"><p>
- <code class="computeroutput"><span class="identifier">long_long</span></code> is only available
- on platforms where the preprocessor constant <code class="computeroutput"><span class="identifier">BOOST_HAS_LONG_LONG</span></code>
- is defined (i.e. on platforms having native support for <code class="computeroutput"><span class="keyword">signed</span> <span class="keyword">long</span>
- <span class="keyword">long</span></code> (64 bit) unsigned integer
+<tr><td colspan="2" align="left" valign="top"><p>
+ <tt class="computeroutput"><span class="identifier">long_long</span></tt> is only available
+ on platforms where the preprocessor constant <tt class="computeroutput"><span class="identifier">BOOST_HAS_LONG_LONG</span></tt>
+ is defined (i.e. on platforms having native support for <tt class="computeroutput"><span class="keyword">signed</span> <span class="keyword">long</span>
+ <span class="keyword">long</span></tt> (64 bit) unsigned integer
types).
</p></td></tr>
</table></div>
<a name="spirit.qi.reference.numeric.int.synopsis"></a><h6>
-<a name="id689889"></a>
- <a class="link" href="int.html#spirit.qi.reference.numeric.int.synopsis">Synopsis</a>
+<a name="id500961"></a>
+ Synopsis
</h6>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span>
<span class="keyword">typename</span> <span class="identifier">T</span>
@@ -118,8 +115,8 @@
<span class="keyword">struct</span> <span class="identifier">int_parser</span><span class="special">;</span>
</pre>
<a name="spirit.qi.reference.numeric.int.template_parameters"></a><h6>
-<a name="id689985"></a>
- <a class="link" href="int.html#spirit.qi.reference.numeric.int.template_parameters">Template
+<a name="id501095"></a>
+ <a href="int.html#spirit.qi.reference.numeric.int.template_parameters">Template
parameters</a>
</h6>
<div class="informaltable"><table class="table">
@@ -129,130 +126,100 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Parameter
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Default
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">T</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">T</span></tt>
+ </p></td>
+<td><p>
The numeric base type of the numeric parser.
- </p>
- </td>
-<td>
- <p>
- </p>
- </td>
+ </p></td>
+<td><p>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Radix</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Radix</span></tt>
+ </p></td>
+<td><p>
The radix base. This can be either 2: binary, 8: octal, 10: decimal
and 16: hexadecimal.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
10
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">MinDigits</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">MinDigits</span></tt>
+ </p></td>
+<td><p>
The minimum number of digits allowable.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
1
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">MaxDigits</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">MaxDigits</span></tt>
+ </p></td>
+<td><p>
The maximum number of digits allowable. If this is -1, then the
maximum limit becomes unbounded.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
-1
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.numeric.int.model_of"></a><h6>
-<a name="id690158"></a>
- <a class="link" href="int.html#spirit.qi.reference.numeric.int.model_of">Model of</a>
+<a name="id501312"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>
+ PrimitiveParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">NP</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">NP</span></tt></span></dt>
<dd><p>
- An instance of <code class="computeroutput"><span class="identifier">int_parser</span></code>
+ An instance of <tt class="computeroutput"><span class="identifier">int_parser</span></tt>
(type).
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">n</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">n</span></tt></span></dt>
<dd><p>
- An object of <code class="computeroutput"><span class="identifier">T</span></code>, the
+ An object of <tt class="computeroutput"><span class="identifier">T</span></tt>, the
numeric base type.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.numeric.int.expression_semantics"></a><h6>
-<a name="id690249"></a>
- <a class="link" href="int.html#spirit.qi.reference.numeric.int.expression_semantics">Expression
+<a name="id501441"></a>
+ <a href="int.html#spirit.qi.reference.numeric.int.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>.
+ is not defined in PrimitiveParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -260,101 +227,77 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">NP</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
- Instantiate and (default) construct an <code class="computeroutput"><span class="identifier">int_parser</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">short_</span></code>
- </p>
- </td>
-<td>
- <p>
- Create an <code class="computeroutput"><span class="identifier">int_parser</span><span class="special"><</span><span class="keyword">short</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">></span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">long_</span></code>
- </p>
- </td>
-<td>
- <p>
- Create an <code class="computeroutput"><span class="identifier">int_parser</span><span class="special"><</span><span class="keyword">long</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">></span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">int_</span></code>
- </p>
- </td>
-<td>
- <p>
- Create an <code class="computeroutput"><span class="identifier">int_parser</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">></span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">long_long</span></code>
- </p>
- </td>
-<td>
- <p>
- Create an <code class="computeroutput"><span class="identifier">int_parser</span><span class="special"><</span><span class="keyword">long</span>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">NP</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
+ Instantiate and (default) construct an <tt class="computeroutput"><span class="identifier">int_parser</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">short_</span></tt>
+ </p></td>
+<td><p>
+ Create an <tt class="computeroutput"><span class="identifier">int_parser</span><span class="special"><</span><span class="keyword">short</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">></span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">long_</span></tt>
+ </p></td>
+<td><p>
+ Create an <tt class="computeroutput"><span class="identifier">int_parser</span><span class="special"><</span><span class="keyword">long</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">></span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">int_</span></tt>
+ </p></td>
+<td><p>
+ Create an <tt class="computeroutput"><span class="identifier">int_parser</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">></span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">long_long</span></tt>
+ </p></td>
+<td><p>
+ Create an <tt class="computeroutput"><span class="identifier">int_parser</span><span class="special"><</span><span class="keyword">long</span>
<span class="keyword">long</span><span class="special">,</span>
<span class="number">10</span><span class="special">,</span>
<span class="number">1</span><span class="special">,</span>
- <span class="special">-</span><span class="number">1</span><span class="special">></span></code>
- </p>
- </td>
+ <span class="special">-</span><span class="number">1</span><span class="special">></span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.numeric.int.attributes"></a><h6>
-<a name="id690633"></a>
- <a class="link" href="int.html#spirit.qi.reference.numeric.int.attributes">Attributes</a>
+<a name="id501951"></a>
+ Attributes
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <code class="computeroutput"><span class="identifier">T</span></code>, The numeric base
+ <tt class="computeroutput"><span class="identifier">T</span></tt>, The numeric base
type of the numeric parser.
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.qi.reference.numeric.int.complexity"></a><h6>
-<a name="id690665"></a>
- <a class="link" href="int.html#spirit.qi.reference.numeric.int.complexity">Complexity</a>
+<a name="id501998"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -366,12 +309,12 @@
</p>
</blockquote></div>
<a name="spirit.qi.reference.numeric.int.minimum_expression_requirements_for__code__phrase_role__identifier__t__phrase___code_"></a><h6>
-<a name="id690689"></a>
- <a class="link" href="int.html#spirit.qi.reference.numeric.int.minimum_expression_requirements_for__code__phrase_role__identifier__t__phrase___code_">Minimum
- Expression Requirements for <code class="computeroutput"><span class="identifier">T</span></code></a>
+<a name="id502038"></a>
+ <a href="int.html#spirit.qi.reference.numeric.int.minimum_expression_requirements_for__code__phrase_role__identifier__t__phrase___code_">Minimum
+ Expression Requirements for <tt class="computeroutput"><span class="identifier">T</span></tt></a>
</h6>
<p>
- The numeric base type, <code class="computeroutput"><span class="identifier">T</span></code>,
+ The numeric base type, <tt class="computeroutput"><span class="identifier">T</span></tt>,
the expression requirements below must be valid:
</p>
<div class="informaltable"><table class="table">
@@ -380,155 +323,111 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">T</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">T</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
Default construct.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">T</span><span class="special">(</span><span class="number">0</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Construct from an <code class="computeroutput"><span class="keyword">int</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">n</span> <span class="special">+</span>
- <span class="identifier">n</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">T</span><span class="special">(</span><span class="number">0</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Construct from an <tt class="computeroutput"><span class="keyword">int</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">n</span> <span class="special">+</span>
+ <span class="identifier">n</span></tt>
+ </p></td>
+<td><p>
Addition.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">n</span> <span class="special">-</span>
- <span class="identifier">n</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">n</span> <span class="special">-</span>
+ <span class="identifier">n</span></tt>
+ </p></td>
+<td><p>
Subtraction.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">n</span> <span class="special">*</span>
- <span class="identifier">n</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">n</span> <span class="special">*</span>
+ <span class="identifier">n</span></tt>
+ </p></td>
+<td><p>
Multiplication.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">is_bounded</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">true</span></code> or <code class="computeroutput"><span class="keyword">false</span></code> if <code class="computeroutput"><span class="identifier">T</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">is_bounded</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">true</span></tt> or <tt class="computeroutput"><span class="keyword">false</span></tt> if <tt class="computeroutput"><span class="identifier">T</span></tt>
bounded.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">digits</span></code>
- </p>
- </td>
-<td>
- <p>
- Maximum Digits for <code class="computeroutput"><span class="identifier">T</span></code>,
- radix digits. Required only if <code class="computeroutput"><span class="identifier">T</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">digits</span></tt>
+ </p></td>
+<td><p>
+ Maximum Digits for <tt class="computeroutput"><span class="identifier">T</span></tt>,
+ radix digits. Required only if <tt class="computeroutput"><span class="identifier">T</span></tt>
is bounded.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">digits10</span></code>
- </p>
- </td>
-<td>
- <p>
- Maximum Digits for <code class="computeroutput"><span class="identifier">T</span></code>,
- base 10. Required only if <code class="computeroutput"><span class="identifier">T</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">digits10</span></tt>
+ </p></td>
+<td><p>
+ Maximum Digits for <tt class="computeroutput"><span class="identifier">T</span></tt>,
+ base 10. Required only if <tt class="computeroutput"><span class="identifier">T</span></tt>
is bounded.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">max</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
- Maximum value for <code class="computeroutput"><span class="identifier">T</span></code>.
- Required only if <code class="computeroutput"><span class="identifier">T</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">max</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
+ Maximum value for <tt class="computeroutput"><span class="identifier">T</span></tt>.
+ Required only if <tt class="computeroutput"><span class="identifier">T</span></tt>
is bounded.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">min</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
- Minimum value for <code class="computeroutput"><span class="identifier">T</span></code>.
- Required only if <code class="computeroutput"><span class="identifier">T</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">min</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
+ Minimum value for <tt class="computeroutput"><span class="identifier">T</span></tt>.
+ Required only if <tt class="computeroutput"><span class="identifier">T</span></tt>
is bounded.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.numeric.int.example"></a><h6>
-<a name="id691380"></a>
- <a class="link" href="int.html#spirit.qi.reference.numeric.int.example">Example</a>
+<a name="id502781"></a>
+ Example
</h6>
<p>
Some using declarations:
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/numeric/real.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/numeric/real.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/numeric/real.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Real Numbers (float_, double_, etc.)</title>
+<title> Real Numbers (float_, double_,
+ etc.)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../numeric.html" title="Numeric">
-<link rel="prev" href="int.html" title="Signed Integers (int_, etc.)">
-<link rel="next" href="boolean.html" title="Boolean Parser (bool_)">
+<link rel="previous" href="int.html" title=" Signed Integers
+ (int_, etc.)">
+<link rel="next" href="boolean.html" title=" Boolean Parser
+ (bool_)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,76 +25,72 @@
<div class="spirit-nav">
<a accesskey="p" href="int.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../numeric.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="boolean.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Real Numbers (float_, double_, etc.)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.numeric.real"></a><a class="link" href="real.html" title="Real Numbers (float_, double_, etc.)"> Real Numbers (<code class="computeroutput"><span class="identifier">float_</span></code>, <code class="computeroutput"><span class="identifier">double_</span></code>,
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.numeric.real"></a><a href="real.html" title=" Real Numbers (float_, double_,
+ etc.)"> Real Numbers (<tt class="computeroutput"><span class="identifier">float_</span></tt>, <tt class="computeroutput"><span class="identifier">double_</span></tt>,
etc.)</a>
-</h5></div></div></div>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.numeric.real.description"></a><h6>
-<a name="id691530"></a>
- <a class="link" href="real.html#spirit.qi.reference.numeric.real.description">Description</a>
+<a name="id502996"></a>
+ Description
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">real_parser</span></code> can parse
+ The <tt class="computeroutput"><span class="identifier">real_parser</span></tt> can parse
real numbers of arbitrary length and size limited by its template parameter,
- <code class="computeroutput"><span class="identifier">T</span></code>. The numeric base type
- <code class="computeroutput"><span class="identifier">T</span></code> can be a user defined
+ <tt class="computeroutput"><span class="identifier">T</span></tt>. The numeric base type
+ <tt class="computeroutput"><span class="identifier">T</span></tt> can be a user defined
numeric type such as fixed_point (fixed point reals) and bignum (unlimited
precision numbers) as long as the type follows certain expression requirements
(documented below).
</p>
<a name="spirit.qi.reference.numeric.real.header"></a><h6>
-<a name="id691568"></a>
- <a class="link" href="real.html#spirit.qi.reference.numeric.real.header">Header</a>
+<a name="id503061"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/numeric/real.hpp>
</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">qi_real</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.numeric.real.namespace"></a><h6>
-<a name="id691643"></a>
- <a class="link" href="real.html#spirit.qi.reference.numeric.real.namespace">Namespace</a>
+<a name="id503175"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">float_</span> <span class="comment">// alias:
- boost::spirit::qi::float_</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">double_</span> <span class="comment">//
- alias: boost::spirit::qi::double_</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">long_double</span> <span class="comment">//
- alias: boost::spirit::qi::long_double</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">float_</span> <span class="comment">// alias:
+ boost::spirit::qi::float_</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">double_</span> <span class="comment">//
+ alias: boost::spirit::qi::double_</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">long_double</span> <span class="comment">//
+ alias: boost::spirit::qi::long_double</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.numeric.real.synopsis"></a><h6>
-<a name="id691798"></a>
- <a class="link" href="real.html#spirit.qi.reference.numeric.real.synopsis">Synopsis</a>
+<a name="id503377"></a>
+ Synopsis
</h6>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">RealPolicies</span><span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">real_parser</span><span class="special">;</span>
</pre>
<a name="spirit.qi.reference.numeric.real.template_parameters"></a><h6>
-<a name="id691862"></a>
- <a class="link" href="real.html#spirit.qi.reference.numeric.real.template_parameters">Template
+<a name="id503472"></a>
+ <a href="real.html#spirit.qi.reference.numeric.real.template_parameters">Template
parameters</a>
</h6>
<div class="informaltable"><table class="table">
@@ -101,112 +100,94 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Parameter
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Default
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">T</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">T</span></tt>
+ </p></td>
+<td><p>
The numeric base type of the numeric parser.
- </p>
- </td>
-<td>
- <p>
- </p>
- </td>
+ </p></td>
+<td><p>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">RealPolicies</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">RealPolicies</span></tt>
+ </p></td>
+<td><p>
Policies control the parser's behavior.
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">real_policies</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></code>
- </p>
- </td>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">real_policies</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.numeric.real.model_of"></a><h6>
-<a name="id691993"></a>
- <a class="link" href="real.html#spirit.qi.reference.numeric.real.model_of">Model of</a>
+<a name="id503638"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>
+ PrimitiveParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">NP</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">NP</span></tt></span></dt>
<dd><p>
- An instance of <code class="computeroutput"><span class="identifier">real_parser</span></code>
+ An instance of <tt class="computeroutput"><span class="identifier">real_parser</span></tt>
(type).
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">RP</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">RP</span></tt></span></dt>
<dd><p>
- A <code class="computeroutput"><span class="identifier">RealPolicies</span></code> (type).
+ A <tt class="computeroutput"><span class="identifier">RealPolicies</span></tt> (type).
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">n</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">n</span></tt></span></dt>
<dd><p>
- An object of <code class="computeroutput"><span class="identifier">T</span></code>, the
+ An object of <tt class="computeroutput"><span class="identifier">T</span></tt>, the
numeric base type.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">exp</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">exp</span></tt></span></dt>
<dd><p>
- A <code class="computeroutput"><span class="keyword">int</span></code> exponent.
+ A <tt class="computeroutput"><span class="keyword">int</span></tt> exponent.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">b</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">b</span></tt></span></dt>
<dd><p>
- A <code class="computeroutput"><span class="keyword">bool</span></code> flag.
+ A <tt class="computeroutput"><span class="keyword">bool</span></tt> flag.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">f</span></code>,
- <code class="computeroutput"><span class="identifier">l</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">f</span></tt>,
+ <tt class="computeroutput"><span class="identifier">l</span></tt></span></dt>
<dd><p>
- ForwardIterator
. first/last
+ ForwardIterator. first/last
iterator pair.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.numeric.real.expression_semantics"></a><h6>
-<a name="id692196"></a>
- <a class="link" href="real.html#spirit.qi.reference.numeric.real.expression_semantics">Expression
+<a name="id503922"></a>
+ <a href="real.html#spirit.qi.reference.numeric.real.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>.
+ is not defined in PrimitiveParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -214,88 +195,68 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">NP</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
- Instantiate and (default) construct an <code class="computeroutput"><span class="identifier">real_parser</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">float_</span></code>
- </p>
- </td>
-<td>
- <p>
- Create an <code class="computeroutput"><span class="identifier">real_parser</span><span class="special"><</span><span class="keyword">float</span><span class="special">,</span> <span class="identifier">real_policies</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">double_</span></code>
- </p>
- </td>
-<td>
- <p>
- Create an <code class="computeroutput"><span class="identifier">real_parser</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">real_policies</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">long_double</span></code>
- </p>
- </td>
-<td>
- <p>
- Create an <code class="computeroutput"><span class="identifier">real_parser</span><span class="special"><</span><span class="keyword">long</span>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">NP</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
+ Instantiate and (default) construct an <tt class="computeroutput"><span class="identifier">real_parser</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">float_</span></tt>
+ </p></td>
+<td><p>
+ Create an <tt class="computeroutput"><span class="identifier">real_parser</span><span class="special"><</span><span class="keyword">float</span><span class="special">,</span> <span class="identifier">real_policies</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">double_</span></tt>
+ </p></td>
+<td><p>
+ Create an <tt class="computeroutput"><span class="identifier">real_parser</span><span class="special"><</span><span class="keyword">double</span><span class="special">,</span> <span class="identifier">real_policies</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">long_double</span></tt>
+ </p></td>
+<td><p>
+ Create an <tt class="computeroutput"><span class="identifier">real_parser</span><span class="special"><</span><span class="keyword">long</span>
<span class="keyword">double</span><span class="special">,</span>
<span class="identifier">real_policies</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>
- <span class="special">></span></code>
- </p>
- </td>
+ <span class="special">></span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.numeric.real.attributes"></a><h6>
-<a name="id692484"></a>
- <a class="link" href="real.html#spirit.qi.reference.numeric.real.attributes">Attributes</a>
+<a name="id504310"></a>
+ Attributes
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <code class="computeroutput"><span class="identifier">T</span></code>, The numeric base
+ <tt class="computeroutput"><span class="identifier">T</span></tt>, The numeric base
type of the numeric parser.
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.qi.reference.numeric.real.complexity"></a><h6>
-<a name="id692515"></a>
- <a class="link" href="real.html#spirit.qi.reference.numeric.real.complexity">Complexity</a>
+<a name="id504357"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -308,12 +269,12 @@
</p>
</blockquote></div>
<a name="spirit.qi.reference.numeric.real.minimum_expression_requirements_for__code__phrase_role__identifier__t__phrase___code_"></a><h6>
-<a name="id692539"></a>
- <a class="link" href="real.html#spirit.qi.reference.numeric.real.minimum_expression_requirements_for__code__phrase_role__identifier__t__phrase___code_">Minimum
- Expression Requirements for <code class="computeroutput"><span class="identifier">T</span></code></a>
+<a name="id504398"></a>
+ <a href="real.html#spirit.qi.reference.numeric.real.minimum_expression_requirements_for__code__phrase_role__identifier__t__phrase___code_">Minimum
+ Expression Requirements for <tt class="computeroutput"><span class="identifier">T</span></tt></a>
</h6>
<p>
- The numeric base type, <code class="computeroutput"><span class="identifier">T</span></code>,
+ The numeric base type, <tt class="computeroutput"><span class="identifier">T</span></tt>,
the minimum expression requirements listed below must be valid. Take
note that additional requirements may be imposed by custom policies.
</p>
@@ -323,206 +284,150 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">T</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">T</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
Default construct.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">T</span><span class="special">(</span><span class="number">0</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Construct from an <code class="computeroutput"><span class="keyword">int</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">n</span> <span class="special">+</span>
- <span class="identifier">n</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">T</span><span class="special">(</span><span class="number">0</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Construct from an <tt class="computeroutput"><span class="keyword">int</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">n</span> <span class="special">+</span>
+ <span class="identifier">n</span></tt>
+ </p></td>
+<td><p>
Addition.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">n</span> <span class="special">-</span>
- <span class="identifier">n</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">n</span> <span class="special">-</span>
+ <span class="identifier">n</span></tt>
+ </p></td>
+<td><p>
Subtraction.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">n</span> <span class="special">*</span>
- <span class="identifier">n</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">n</span> <span class="special">*</span>
+ <span class="identifier">n</span></tt>
+ </p></td>
+<td><p>
Multiplication.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">is_bounded</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">true</span></code> or <code class="computeroutput"><span class="keyword">false</span></code> if <code class="computeroutput"><span class="identifier">T</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">is_bounded</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">true</span></tt> or <tt class="computeroutput"><span class="keyword">false</span></tt> if <tt class="computeroutput"><span class="identifier">T</span></tt>
bounded.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">digits</span></code>
- </p>
- </td>
-<td>
- <p>
- Maximum Digits for <code class="computeroutput"><span class="identifier">T</span></code>,
- radix digits. Required only if <code class="computeroutput"><span class="identifier">T</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">digits</span></tt>
+ </p></td>
+<td><p>
+ Maximum Digits for <tt class="computeroutput"><span class="identifier">T</span></tt>,
+ radix digits. Required only if <tt class="computeroutput"><span class="identifier">T</span></tt>
is bounded.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">digits10</span></code>
- </p>
- </td>
-<td>
- <p>
- Maximum Digits for <code class="computeroutput"><span class="identifier">T</span></code>,
- base 10. Required only if <code class="computeroutput"><span class="identifier">T</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">digits10</span></tt>
+ </p></td>
+<td><p>
+ Maximum Digits for <tt class="computeroutput"><span class="identifier">T</span></tt>,
+ base 10. Required only if <tt class="computeroutput"><span class="identifier">T</span></tt>
is bounded.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">max</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
- Maximum value for <code class="computeroutput"><span class="identifier">T</span></code>.
- Required only if <code class="computeroutput"><span class="identifier">T</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">max</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
+ Maximum value for <tt class="computeroutput"><span class="identifier">T</span></tt>.
+ Required only if <tt class="computeroutput"><span class="identifier">T</span></tt>
is bounded.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">min</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
- Minimum value for <code class="computeroutput"><span class="identifier">T</span></code>.
- Required only if <code class="computeroutput"><span class="identifier">T</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">min</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
+ Minimum value for <tt class="computeroutput"><span class="identifier">T</span></tt>.
+ Required only if <tt class="computeroutput"><span class="identifier">T</span></tt>
is bounded.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">scale</span><span class="special">(</span><span class="identifier">exp</span><span class="special">,</span>
- <span class="identifier">n</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Multiply <code class="computeroutput"><span class="identifier">n</span></code> by
- <code class="computeroutput"><span class="number">10</span><span class="special">^</span><span class="identifier">exp</span></code>. Default implementation
- is provided for <code class="computeroutput"><span class="keyword">float</span></code>,
- <code class="computeroutput"><span class="keyword">double</span></code> and <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">negate</span><span class="special">(</span><span class="identifier">b</span><span class="special">,</span>
- <span class="identifier">n</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Negate <code class="computeroutput"><span class="identifier">n</span></code> if
- <code class="computeroutput"><span class="identifier">b</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>. Default implementation is
- provided for <code class="computeroutput"><span class="keyword">float</span></code>,
- <code class="computeroutput"><span class="keyword">double</span></code> and <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_equal_to_one</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Return <code class="computeroutput"><span class="keyword">true</span></code> if
- <code class="computeroutput"><span class="identifier">n</span></code> is equal to
- <code class="computeroutput"><span class="number">1.0</span></code>. Default implementation
- is provided for <code class="computeroutput"><span class="keyword">float</span></code>,
- <code class="computeroutput"><span class="keyword">double</span></code> and <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">scale</span><span class="special">(</span><span class="identifier">exp</span><span class="special">,</span>
+ <span class="identifier">n</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Multiply <tt class="computeroutput"><span class="identifier">n</span></tt> by
+ <tt class="computeroutput"><span class="number">10</span><span class="special">^</span><span class="identifier">exp</span></tt>. Default implementation
+ is provided for <tt class="computeroutput"><span class="keyword">float</span></tt>,
+ <tt class="computeroutput"><span class="keyword">double</span></tt> and <tt class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">negate</span><span class="special">(</span><span class="identifier">b</span><span class="special">,</span>
+ <span class="identifier">n</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Negate <tt class="computeroutput"><span class="identifier">n</span></tt> if
+ <tt class="computeroutput"><span class="identifier">b</span></tt> is <tt class="computeroutput"><span class="keyword">true</span></tt>. Default implementation is
+ provided for <tt class="computeroutput"><span class="keyword">float</span></tt>,
+ <tt class="computeroutput"><span class="keyword">double</span></tt> and <tt class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_equal_to_one</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Return <tt class="computeroutput"><span class="keyword">true</span></tt> if
+ <tt class="computeroutput"><span class="identifier">n</span></tt> is equal to
+ <tt class="computeroutput"><span class="number">1.0</span></tt>. Default implementation
+ is provided for <tt class="computeroutput"><span class="keyword">float</span></tt>,
+ <tt class="computeroutput"><span class="keyword">double</span></tt> and <tt class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></tt>.
+ </p></td>
</tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
The additional spirit real number traits above are provided to allow
custom implementations to implement efficient real number parsers.
For example, for certain custom real numbers, scaling to a base 10
@@ -530,27 +435,27 @@
</p></td></tr>
</table></div>
<a name="spirit.qi.reference.numeric.real._code__phrase_role__identifier__realpolicies__phrase___code_"></a><h6>
-<a name="id693707"></a>
- <a class="link" href="real.html#spirit.qi.reference.numeric.real._code__phrase_role__identifier__realpolicies__phrase___code_"><code class="computeroutput"><span class="identifier">RealPolicies</span></code></a>
+<a name="id505631"></a>
+ RealPolicies
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">RealPolicies</span></code> template
+ The <tt class="computeroutput"><span class="identifier">RealPolicies</span></tt> template
parameter is a class that groups all the policies that control the parser's
behavior. Policies control the real number parsers' behavior.
</p>
<p>
- The default is <code class="computeroutput"><span class="identifier">real_policies</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></code>. The default is provided to take
+ The default is <tt class="computeroutput"><span class="identifier">real_policies</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></tt>. The default is provided to take
care of the most common case (there are many ways to represent, and hence
parse, real numbers). In most cases, the default policies are sufficient
and can be used straight out of the box. They are designed to parse C/C++
- style floating point numbers of the form <code class="computeroutput"><span class="identifier">nnn</span><span class="special">.</span><span class="identifier">fff</span><span class="special">.</span><span class="identifier">Eeee</span></code>
- where <code class="computeroutput"><span class="identifier">nnn</span></code> is the whole
- number part, <code class="computeroutput"><span class="identifier">fff</span></code> is the
- fractional part, <code class="computeroutput"><span class="identifier">E</span></code> is
- <code class="computeroutput"><span class="char">'e'</span></code> or <code class="computeroutput"><span class="char">'E'</span></code>
- and <code class="computeroutput"><span class="identifier">eee</span></code> is the exponent
- optionally preceded by <code class="computeroutput"><span class="char">'-'</span></code>
- or <code class="computeroutput"><span class="char">'+'</span></code> with the additional
+ style floating point numbers of the form <tt class="computeroutput"><span class="identifier">nnn</span><span class="special">.</span><span class="identifier">fff</span><span class="special">.</span><span class="identifier">Eeee</span></tt>
+ where <tt class="computeroutput"><span class="identifier">nnn</span></tt> is the whole
+ number part, <tt class="computeroutput"><span class="identifier">fff</span></tt> is the
+ fractional part, <tt class="computeroutput"><span class="identifier">E</span></tt> is
+ <tt class="computeroutput"><span class="char">'e'</span></tt> or <tt class="computeroutput"><span class="char">'E'</span></tt>
+ and <tt class="computeroutput"><span class="identifier">eee</span></tt> is the exponent
+ optionally preceded by <tt class="computeroutput"><span class="char">'-'</span></tt>
+ or <tt class="computeroutput"><span class="char">'+'</span></tt> with the additional
detection of NaN and Inf as mandated by the C99 Standard and proposed
for inclusion into the C++0x Standard: nan, nan(...), inf and infinity
(the matching is case-insensitive). This corresponds to the following
@@ -588,102 +493,82 @@
<span class="special">;</span>
</pre>
<p>
- There are four <code class="computeroutput"><span class="identifier">RealPolicies</span></code>
+ There are four <tt class="computeroutput"><span class="identifier">RealPolicies</span></tt>
pre-defined for immediate use:
</p>
<div class="table">
-<a name="id694309"></a><p class="title"><b>Table 4. Predefined Policies</b></p>
-<div class="table-contents"><table class="table" summary="Predefined Policies">
+<a name="id506470"></a><p class="title"><b>Table 4. Predefined Policies</b></p>
+<table class="table" summary="Predefined Policies">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Policies
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ureal_policies</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ureal_policies</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">></span></tt>
+ </p></td>
+<td><p>
Without sign.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">real_policies</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span>
- <span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">real_policies</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span>
+ <span class="special">></span></tt>
+ </p></td>
+<td><p>
With sign.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">strict_ureal_policies</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">strict_ureal_policies</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">></span></tt>
+ </p></td>
+<td><p>
Without sign, dot required.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">strict_real_policies</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">strict_real_policies</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="special">></span></tt>
+ </p></td>
+<td><p>
With sign, dot required.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
-</table></div>
+</table>
</div>
-<br class="table-break"><div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
Integers are considered a subset of real numbers, so for instance,
- <code class="computeroutput"><span class="identifier">double_</span></code> recognizes
+ <tt class="computeroutput"><span class="identifier">double_</span></tt> recognizes
integer numbers (without a dot) just as well. To avoid this ambiguity,
- <code class="computeroutput"><span class="identifier">strict_ureal_policies</span></code>
- and <code class="computeroutput"><span class="identifier">strict_real_policies</span></code>
+ <tt class="computeroutput"><span class="identifier">strict_ureal_policies</span></tt>
+ and <tt class="computeroutput"><span class="identifier">strict_real_policies</span></tt>
require a dot to be present for a number to be considered a successful
match.
</p></td></tr>
</table></div>
<a name="spirit.qi.reference.numeric.real._code__phrase_role__identifier__realpolicies__phrase___code__expression_requirements"></a><h6>
-<a name="id694539"></a>
- <a class="link" href="real.html#spirit.qi.reference.numeric.real._code__phrase_role__identifier__realpolicies__phrase___code__expression_requirements"><code class="computeroutput"><span class="identifier">RealPolicies</span></code> Expression Requirements</a>
+<a name="id506775"></a>
+ RealPolicies Expression Requirements
</h6>
<p>
- For models of <code class="computeroutput"><span class="identifier">RealPolicies</span></code>
+ For models of <tt class="computeroutput"><span class="identifier">RealPolicies</span></tt>
the following expressions must be valid:
</p>
<div class="informaltable"><table class="table">
@@ -692,180 +577,132 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">RP</span><span class="special">::</span><span class="identifier">allow_leading_dot</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">RP</span><span class="special">::</span><span class="identifier">allow_leading_dot</span></tt>
+ </p></td>
+<td><p>
Allow leading dot.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">RP</span><span class="special">::</span><span class="identifier">allow_trailing_dot</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">RP</span><span class="special">::</span><span class="identifier">allow_trailing_dot</span></tt>
+ </p></td>
+<td><p>
Allow trailing dot.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">RP</span><span class="special">::</span><span class="identifier">expect_dot</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">RP</span><span class="special">::</span><span class="identifier">expect_dot</span></tt>
+ </p></td>
+<td><p>
Require a dot.
- </p>
- </td>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">RP</span><span class="special">::</span><span class="identifier">parse_sign</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
+ <span class="identifier">l</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Parse the prefix sign (e.g. '-'). Return <tt class="computeroutput"><span class="keyword">true</span></tt>
+ if successful, otherwise <tt class="computeroutput"><span class="keyword">false</span></tt>.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">RP</span><span class="special">::</span><span class="identifier">parse_sign</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
- <span class="identifier">l</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Parse the prefix sign (e.g. '-'). Return <code class="computeroutput"><span class="keyword">true</span></code>
- if successful, otherwise <code class="computeroutput"><span class="keyword">false</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">RP</span><span class="special">::</span><span class="identifier">parse_n</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">RP</span><span class="special">::</span><span class="identifier">parse_n</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
<span class="identifier">l</span><span class="special">,</span>
- <span class="identifier">n</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Parse the integer at the left of the decimal point. Return <code class="computeroutput"><span class="keyword">true</span></code> if successful, otherwise
- <code class="computeroutput"><span class="keyword">false</span></code>. If successful,
- place the result into <code class="computeroutput"><span class="identifier">n</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">RP</span><span class="special">::</span><span class="identifier">parse_dot</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
- <span class="identifier">l</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Parse the decimal point. Return <code class="computeroutput"><span class="keyword">true</span></code>
- if successful, otherwise <code class="computeroutput"><span class="keyword">false</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">RP</span><span class="special">::</span><span class="identifier">parse_frac_n</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
+ <span class="identifier">n</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Parse the integer at the left of the decimal point. Return <tt class="computeroutput"><span class="keyword">true</span></tt> if successful, otherwise
+ <tt class="computeroutput"><span class="keyword">false</span></tt>. If successful,
+ place the result into <tt class="computeroutput"><span class="identifier">n</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">RP</span><span class="special">::</span><span class="identifier">parse_dot</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
+ <span class="identifier">l</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Parse the decimal point. Return <tt class="computeroutput"><span class="keyword">true</span></tt>
+ if successful, otherwise <tt class="computeroutput"><span class="keyword">false</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">RP</span><span class="special">::</span><span class="identifier">parse_frac_n</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
<span class="identifier">l</span><span class="special">,</span>
- <span class="identifier">n</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Parse the fraction after the decimal point. Return <code class="computeroutput"><span class="keyword">true</span></code> if successful, otherwise
- <code class="computeroutput"><span class="keyword">false</span></code>. If successful,
- place the result into <code class="computeroutput"><span class="identifier">n</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">RP</span><span class="special">::</span><span class="identifier">parse_exp</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
- <span class="identifier">l</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Parse the exponent prefix (e.g. 'e'). Return <code class="computeroutput"><span class="keyword">true</span></code>
- if successful, otherwise <code class="computeroutput"><span class="keyword">false</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">RP</span><span class="special">::</span><span class="identifier">parse_exp_n</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
+ <span class="identifier">n</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Parse the fraction after the decimal point. Return <tt class="computeroutput"><span class="keyword">true</span></tt> if successful, otherwise
+ <tt class="computeroutput"><span class="keyword">false</span></tt>. If successful,
+ place the result into <tt class="computeroutput"><span class="identifier">n</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">RP</span><span class="special">::</span><span class="identifier">parse_exp</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
+ <span class="identifier">l</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Parse the exponent prefix (e.g. 'e'). Return <tt class="computeroutput"><span class="keyword">true</span></tt>
+ if successful, otherwise <tt class="computeroutput"><span class="keyword">false</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">RP</span><span class="special">::</span><span class="identifier">parse_exp_n</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
<span class="identifier">l</span><span class="special">,</span>
- <span class="identifier">n</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Parse the actual exponent. Return <code class="computeroutput"><span class="keyword">true</span></code>
- if successful, otherwise <code class="computeroutput"><span class="keyword">false</span></code>.
- If successful, place the result into <code class="computeroutput"><span class="identifier">n</span></code>.
- </p>
- </td>
+ <span class="identifier">n</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Parse the actual exponent. Return <tt class="computeroutput"><span class="keyword">true</span></tt>
+ if successful, otherwise <tt class="computeroutput"><span class="keyword">false</span></tt>.
+ If successful, place the result into <tt class="computeroutput"><span class="identifier">n</span></tt>.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">RP</span><span class="special">::</span><span class="identifier">parse_nan</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">RP</span><span class="special">::</span><span class="identifier">parse_nan</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
<span class="identifier">l</span><span class="special">,</span>
- <span class="identifier">n</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Parse a NaN. Return <code class="computeroutput"><span class="keyword">true</span></code>
- if successful, otherwise <code class="computeroutput"><span class="keyword">false</span></code>.
- If successful, place the result into <code class="computeroutput"><span class="identifier">n</span></code>.
- </p>
- </td>
+ <span class="identifier">n</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Parse a NaN. Return <tt class="computeroutput"><span class="keyword">true</span></tt>
+ if successful, otherwise <tt class="computeroutput"><span class="keyword">false</span></tt>.
+ If successful, place the result into <tt class="computeroutput"><span class="identifier">n</span></tt>.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">RP</span><span class="special">::</span><span class="identifier">parse_inf</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">RP</span><span class="special">::</span><span class="identifier">parse_inf</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span>
<span class="identifier">l</span><span class="special">,</span>
- <span class="identifier">n</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Parse an Inf. Return <code class="computeroutput"><span class="keyword">true</span></code>
- if successful, otherwise <code class="computeroutput"><span class="keyword">false</span></code>.
- If successful, place the result into <code class="computeroutput"><span class="identifier">n</span></code>.
- </p>
- </td>
+ <span class="identifier">n</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Parse an Inf. Return <tt class="computeroutput"><span class="keyword">true</span></tt>
+ if successful, otherwise <tt class="computeroutput"><span class="keyword">false</span></tt>.
+ If successful, place the result into <tt class="computeroutput"><span class="identifier">n</span></tt>.
+ </p></td>
</tr>
</tbody>
</table></div>
<p>
- The <code class="computeroutput"><span class="identifier">parse_nan</span></code> and <code class="computeroutput"><span class="identifier">parse_inf</span></code> functions get called whenever:
+ The <tt class="computeroutput"><span class="identifier">parse_nan</span></tt> and <tt class="computeroutput"><span class="identifier">parse_inf</span></tt> functions get called whenever:
</p>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -893,25 +730,25 @@
<p>
The first call recognizes representations of NaN or Inf starting with
a non-digit character (such as NaN, Inf, QNaN etc.). The second call
- recognizes representation formats starting with a <code class="computeroutput"><span class="number">1.0</span></code>
- (such as <code class="computeroutput"><span class="string">"1.0#NAN"</span></code>
- or <code class="computeroutput"><span class="string">"1.0#INF"</span></code> etc.).
+ recognizes representation formats starting with a <tt class="computeroutput"><span class="number">1.0</span></tt>
+ (such as <tt class="computeroutput"><span class="string">"1.0#NAN"</span></tt>
+ or <tt class="computeroutput"><span class="string">"1.0#INF"</span></tt> etc.).
</p>
<p>
The functions should return true if a Nan or Inf has been found. In this
- case the attribute <code class="computeroutput"><span class="identifier">n</span></code>
+ case the attribute <tt class="computeroutput"><span class="identifier">n</span></tt>
should be set to the matched value (NaN or Inf). The optional sign will
be automatically applied afterwards.
</p>
<a name="spirit.qi.reference.numeric.real._code__phrase_role__identifier__realpolicies__phrase___code__specializations"></a><h6>
-<a name="id695381"></a>
- <a class="link" href="real.html#spirit.qi.reference.numeric.real._code__phrase_role__identifier__realpolicies__phrase___code__specializations"><code class="computeroutput"><span class="identifier">RealPolicies</span></code> Specializations</a>
+<a name="id507938"></a>
+ RealPolicies Specializations
</h6>
<p>
The easiest way to implement a proper real parsing policy is to derive
- a new type from the the type <code class="computeroutput"><span class="identifier">real_policies</span></code>
+ a new type from the the type <tt class="computeroutput"><span class="identifier">real_policies</span></tt>
while overriding the aspects of the parsing which need to be changed.
- For example, here's the implementation of the pre-defined <code class="computeroutput"><span class="identifier">strict_real_policies</span></code>:
+ For example, here's the implementation of the pre-defined <tt class="computeroutput"><span class="identifier">strict_real_policies</span></tt>:
</p>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">strict_real_policies</span> <span class="special">:</span> <span class="identifier">real_policies</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>
@@ -920,8 +757,8 @@
<span class="special">};</span>
</pre>
<a name="spirit.qi.reference.numeric.real.example"></a><h6>
-<a name="id696870"></a>
- <a class="link" href="real.html#spirit.qi.reference.numeric.real.example">Example</a>
+<a name="id508137"></a>
+ Example
</h6>
<p>
Some using declarations:
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/numeric/uint.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/numeric/uint.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/numeric/uint.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Unsigned Integers (uint_, etc.)</title>
+<title> Unsigned Integers
+ (uint_, etc.)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../numeric.html" title="Numeric">
-<link rel="prev" href="../numeric.html" title="Numeric">
-<link rel="next" href="int.html" title="Signed Integers (int_, etc.)">
+<link rel="previous" href="../numeric.html" title="Numeric">
+<link rel="next" href="int.html" title=" Signed Integers
+ (int_, etc.)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,107 +24,95 @@
<div class="spirit-nav">
<a accesskey="p" href="../numeric.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../numeric.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="int.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Unsigned Integers (uint_, etc.)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.numeric.uint"></a><a class="link" href="uint.html" title="Unsigned Integers (uint_, etc.)"> Unsigned Integers
- (<code class="computeroutput"><span class="identifier">uint_</span></code>, etc.)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.numeric.uint"></a><a href="uint.html" title=" Unsigned Integers
+ (uint_, etc.)"> Unsigned Integers
+ (<tt class="computeroutput"><span class="identifier">uint_</span></tt>, etc.)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.numeric.uint.description"></a><h6>
-<a name="id686078"></a>
- <a class="link" href="uint.html#spirit.qi.reference.numeric.uint.description">Description</a>
+<a name="id497251"></a>
+ Description
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">uint_parser</span></code> class
- is the simplest among the members of the numerics package. The <code class="computeroutput"><span class="identifier">uint_parser</span></code> can parse unsigned integers
- of arbitrary length and size. The <code class="computeroutput"><span class="identifier">uint_parser</span></code>
+ The <tt class="computeroutput"><span class="identifier">uint_parser</span></tt> class
+ is the simplest among the members of the numerics package. The <tt class="computeroutput"><span class="identifier">uint_parser</span></tt> can parse unsigned integers
+ of arbitrary length and size. The <tt class="computeroutput"><span class="identifier">uint_parser</span></tt>
parser can be used to parse ordinary primitive C/C++ integers or even
user defined scalars such as bigints (unlimited precision integers) as
long as the type follows certain expression requirements (documented
- below). The <code class="computeroutput"><span class="identifier">uint_parser</span></code>
+ below). The <tt class="computeroutput"><span class="identifier">uint_parser</span></tt>
is a template class. Template parameters fine tune its behavior.
</p>
<a name="spirit.qi.reference.numeric.uint.header"></a><h6>
-<a name="id686124"></a>
- <a class="link" href="uint.html#spirit.qi.reference.numeric.uint.header">Header</a>
+<a name="id497332"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/numeric/uint.hpp>
</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">qi_uint</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.numeric.uint.namespace"></a><h6>
-<a name="id686198"></a>
- <a class="link" href="uint.html#spirit.qi.reference.numeric.uint.namespace">Namespace</a>
+<a name="id497446"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">bin</span> <span class="comment">// alias:
- boost::spirit::qi::bin</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">oct</span> <span class="comment">// alias:
- boost::spirit::qi::oct</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">hex</span> <span class="comment">// alias:
- boost::spirit::qi::hex</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ushort_</span> <span class="comment">//
- alias: boost::spirit::qi::ushort_</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ulong_</span> <span class="comment">// alias:
- boost::spirit::qi::ulong_</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">uint_</span> <span class="comment">// alias:
- boost::spirit::qi::uint_</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ulong_long</span> <span class="comment">//
- alias: boost::spirit::qi::ulong_long</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">bin</span> <span class="comment">// alias:
+ boost::spirit::qi::bin</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">oct</span> <span class="comment">// alias:
+ boost::spirit::qi::oct</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">hex</span> <span class="comment">// alias:
+ boost::spirit::qi::hex</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ushort_</span> <span class="comment">//
+ alias: boost::spirit::qi::ushort_</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ulong_</span> <span class="comment">// alias:
+ boost::spirit::qi::ulong_</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">uint_</span> <span class="comment">// alias:
+ boost::spirit::qi::uint_</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ulong_long</span> <span class="comment">//
+ alias: boost::spirit::qi::ulong_long</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
-<div class="important" title="Important"><table border="0" summary="Important">
+<div class="important"><table border="0" summary="Important">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../images/important.png"></td>
<th align="left">Important</th>
</tr>
-<tr><td align="left" valign="top"><p>
- <code class="computeroutput"><span class="identifier">ulong_long</span></code> is only
- available on platforms where the preprocessor constant <code class="computeroutput"><span class="identifier">BOOST_HAS_LONG_LONG</span></code> is defined (i.e.
- on platforms having native support for <code class="computeroutput"><span class="keyword">unsigned</span>
- <span class="keyword">long</span> <span class="keyword">long</span></code>
+<tr><td colspan="2" align="left" valign="top"><p>
+ <tt class="computeroutput"><span class="identifier">ulong_long</span></tt> is only
+ available on platforms where the preprocessor constant <tt class="computeroutput"><span class="identifier">BOOST_HAS_LONG_LONG</span></tt> is defined (i.e.
+ on platforms having native support for <tt class="computeroutput"><span class="keyword">unsigned</span>
+ <span class="keyword">long</span> <span class="keyword">long</span></tt>
(64 bit) unsigned integer types).
</p></td></tr>
</table></div>
<a name="spirit.qi.reference.numeric.uint.synopsis"></a><h6>
-<a name="id686541"></a>
- <a class="link" href="uint.html#spirit.qi.reference.numeric.uint.synopsis">Synopsis</a>
+<a name="id497903"></a>
+ Synopsis
</h6>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span>
<span class="keyword">typename</span> <span class="identifier">T</span>
@@ -132,8 +122,8 @@
<span class="keyword">struct</span> <span class="identifier">uint_parser</span><span class="special">;</span>
</pre>
<a name="spirit.qi.reference.numeric.uint.template_parameters"></a><h6>
-<a name="id686637"></a>
- <a class="link" href="uint.html#spirit.qi.reference.numeric.uint.template_parameters">Template
+<a name="id498037"></a>
+ <a href="uint.html#spirit.qi.reference.numeric.uint.template_parameters">Template
parameters</a>
</h6>
<div class="informaltable"><table class="table">
@@ -143,130 +133,100 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Parameter
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Default
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">T</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">T</span></tt>
+ </p></td>
+<td><p>
The numeric base type of the numeric parser.
- </p>
- </td>
-<td>
- <p>
- </p>
- </td>
+ </p></td>
+<td><p>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Radix</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Radix</span></tt>
+ </p></td>
+<td><p>
The radix base. This can be either 2: binary, 8: octal, 10: decimal
and 16: hexadecimal.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
10
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">MinDigits</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">MinDigits</span></tt>
+ </p></td>
+<td><p>
The minimum number of digits allowable.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
1
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">MaxDigits</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">MaxDigits</span></tt>
+ </p></td>
+<td><p>
The maximum number of digits allowable. If this is -1, then the
maximum limit becomes unbounded.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
-1
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.numeric.uint.model_of"></a><h6>
-<a name="id686810"></a>
- <a class="link" href="uint.html#spirit.qi.reference.numeric.uint.model_of">Model of</a>
+<a name="id498254"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>
+ PrimitiveParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">NP</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">NP</span></tt></span></dt>
<dd><p>
- An instance of <code class="computeroutput"><span class="identifier">uint_parser</span></code>
+ An instance of <tt class="computeroutput"><span class="identifier">uint_parser</span></tt>
(type).
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">n</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">n</span></tt></span></dt>
<dd><p>
- An object of <code class="computeroutput"><span class="identifier">T</span></code>, the
+ An object of <tt class="computeroutput"><span class="identifier">T</span></tt>, the
numeric base type.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.numeric.uint.expression_semantics"></a><h6>
-<a name="id686901"></a>
- <a class="link" href="uint.html#spirit.qi.reference.numeric.uint.expression_semantics">Expression
+<a name="id498385"></a>
+ <a href="uint.html#spirit.qi.reference.numeric.uint.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>.
+ is not defined in PrimitiveParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -274,146 +234,110 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">NP</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
- Instantiate and (default) construct a <code class="computeroutput"><span class="identifier">uint_parser</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">bin</span></code>
- </p>
- </td>
-<td>
- <p>
- Create a <code class="computeroutput"><span class="identifier">uint_parser</span><span class="special"><</span><span class="keyword">unsigned</span><span class="special">,</span> <span class="number">2</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">></span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">oct</span></code>
- </p>
- </td>
-<td>
- <p>
- Create a <code class="computeroutput"><span class="identifier">uint_parser</span><span class="special"><</span><span class="keyword">unsigned</span><span class="special">,</span> <span class="number">8</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">></span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">hex</span></code>
- </p>
- </td>
-<td>
- <p>
- Create a <code class="computeroutput"><span class="identifier">uint_parser</span><span class="special"><</span><span class="keyword">unsigned</span><span class="special">,</span> <span class="number">16</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">></span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ushort_</span></code>
- </p>
- </td>
-<td>
- <p>
- Create a <code class="computeroutput"><span class="identifier">uint_parser</span><span class="special"><</span><span class="keyword">unsigned</span>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">NP</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
+ Instantiate and (default) construct a <tt class="computeroutput"><span class="identifier">uint_parser</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">bin</span></tt>
+ </p></td>
+<td><p>
+ Create a <tt class="computeroutput"><span class="identifier">uint_parser</span><span class="special"><</span><span class="keyword">unsigned</span><span class="special">,</span> <span class="number">2</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">></span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">oct</span></tt>
+ </p></td>
+<td><p>
+ Create a <tt class="computeroutput"><span class="identifier">uint_parser</span><span class="special"><</span><span class="keyword">unsigned</span><span class="special">,</span> <span class="number">8</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">></span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">hex</span></tt>
+ </p></td>
+<td><p>
+ Create a <tt class="computeroutput"><span class="identifier">uint_parser</span><span class="special"><</span><span class="keyword">unsigned</span><span class="special">,</span> <span class="number">16</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">></span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ushort_</span></tt>
+ </p></td>
+<td><p>
+ Create a <tt class="computeroutput"><span class="identifier">uint_parser</span><span class="special"><</span><span class="keyword">unsigned</span>
<span class="keyword">short</span><span class="special">,</span>
<span class="number">10</span><span class="special">,</span>
<span class="number">1</span><span class="special">,</span>
- <span class="special">-</span><span class="number">1</span><span class="special">></span></code>
- </p>
- </td>
+ <span class="special">-</span><span class="number">1</span><span class="special">></span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ulong_</span></code>
- </p>
- </td>
-<td>
- <p>
- Create a <code class="computeroutput"><span class="identifier">uint_parser</span><span class="special"><</span><span class="keyword">unsigned</span>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ulong_</span></tt>
+ </p></td>
+<td><p>
+ Create a <tt class="computeroutput"><span class="identifier">uint_parser</span><span class="special"><</span><span class="keyword">unsigned</span>
<span class="keyword">long</span><span class="special">,</span>
<span class="number">10</span><span class="special">,</span>
<span class="number">1</span><span class="special">,</span>
- <span class="special">-</span><span class="number">1</span><span class="special">></span></code>
- </p>
- </td>
+ <span class="special">-</span><span class="number">1</span><span class="special">></span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">uint_</span></code>
- </p>
- </td>
-<td>
- <p>
- Create a <code class="computeroutput"><span class="identifier">uint_parser</span><span class="special"><</span><span class="keyword">unsigned</span>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">uint_</span></tt>
+ </p></td>
+<td><p>
+ Create a <tt class="computeroutput"><span class="identifier">uint_parser</span><span class="special"><</span><span class="keyword">unsigned</span>
<span class="keyword">int</span><span class="special">,</span>
<span class="number">10</span><span class="special">,</span>
<span class="number">1</span><span class="special">,</span>
- <span class="special">-</span><span class="number">1</span><span class="special">></span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ulong_long</span></code>
- </p>
- </td>
-<td>
- <p>
- Create a <code class="computeroutput"><span class="identifier">uint_parser</span><span class="special"><</span><span class="keyword">unsigned</span>
- <span class="keyword">long</span> <span class="keyword">long</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">></span></code>
- </p>
- </td>
+ <span class="special">-</span><span class="number">1</span><span class="special">></span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ulong_long</span></tt>
+ </p></td>
+<td><p>
+ Create a <tt class="computeroutput"><span class="identifier">uint_parser</span><span class="special"><</span><span class="keyword">unsigned</span>
+ <span class="keyword">long</span> <span class="keyword">long</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="special">-</span><span class="number">1</span><span class="special">></span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.numeric.uint.attributes"></a><h6>
-<a name="id688628"></a>
- <a class="link" href="uint.html#spirit.qi.reference.numeric.uint.attributes">Attributes</a>
+<a name="id499198"></a>
+ Attributes
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <code class="computeroutput"><span class="identifier">T</span></code>, The numeric base
+ <tt class="computeroutput"><span class="identifier">T</span></tt>, The numeric base
type of the numeric parser.
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.qi.reference.numeric.uint.complexity"></a><h6>
-<a name="id688659"></a>
- <a class="link" href="uint.html#spirit.qi.reference.numeric.uint.complexity">Complexity</a>
+<a name="id499245"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -425,12 +349,12 @@
</p>
</blockquote></div>
<a name="spirit.qi.reference.numeric.uint.minimum_expression_requirements_for__code__phrase_role__identifier__t__phrase___code_"></a><h6>
-<a name="id688683"></a>
- <a class="link" href="uint.html#spirit.qi.reference.numeric.uint.minimum_expression_requirements_for__code__phrase_role__identifier__t__phrase___code_">Minimum
- Expression Requirements for <code class="computeroutput"><span class="identifier">T</span></code></a>
+<a name="id499284"></a>
+ <a href="uint.html#spirit.qi.reference.numeric.uint.minimum_expression_requirements_for__code__phrase_role__identifier__t__phrase___code_">Minimum
+ Expression Requirements for <tt class="computeroutput"><span class="identifier">T</span></tt></a>
</h6>
<p>
- The numeric base type, <code class="computeroutput"><span class="identifier">T</span></code>,
+ The numeric base type, <tt class="computeroutput"><span class="identifier">T</span></tt>,
the expression requirements below must be valid:
</p>
<div class="informaltable"><table class="table">
@@ -439,142 +363,102 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">T</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">T</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
Default construct.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">T</span><span class="special">(</span><span class="number">0</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Construct from an <code class="computeroutput"><span class="keyword">int</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">n</span> <span class="special">+</span>
- <span class="identifier">n</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">T</span><span class="special">(</span><span class="number">0</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Construct from an <tt class="computeroutput"><span class="keyword">int</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">n</span> <span class="special">+</span>
+ <span class="identifier">n</span></tt>
+ </p></td>
+<td><p>
Addition.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">n</span> <span class="special">*</span>
- <span class="identifier">n</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">n</span> <span class="special">*</span>
+ <span class="identifier">n</span></tt>
+ </p></td>
+<td><p>
Multiplication.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">is_bounded</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">true</span></code> or <code class="computeroutput"><span class="keyword">false</span></code> if <code class="computeroutput"><span class="identifier">T</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">is_bounded</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">true</span></tt> or <tt class="computeroutput"><span class="keyword">false</span></tt> if <tt class="computeroutput"><span class="identifier">T</span></tt>
bounded.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">digits</span></code>
- </p>
- </td>
-<td>
- <p>
- Maximum Digits for <code class="computeroutput"><span class="identifier">T</span></code>,
- radix digits. Required only if <code class="computeroutput"><span class="identifier">T</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">digits</span></tt>
+ </p></td>
+<td><p>
+ Maximum Digits for <tt class="computeroutput"><span class="identifier">T</span></tt>,
+ radix digits. Required only if <tt class="computeroutput"><span class="identifier">T</span></tt>
is bounded.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">digits10</span></code>
- </p>
- </td>
-<td>
- <p>
- Maximum Digits for <code class="computeroutput"><span class="identifier">T</span></code>,
- base 10. Required only if <code class="computeroutput"><span class="identifier">T</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">digits10</span></tt>
+ </p></td>
+<td><p>
+ Maximum Digits for <tt class="computeroutput"><span class="identifier">T</span></tt>,
+ base 10. Required only if <tt class="computeroutput"><span class="identifier">T</span></tt>
is bounded.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">max</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
- Maximum value for <code class="computeroutput"><span class="identifier">T</span></code>.
- Required only if <code class="computeroutput"><span class="identifier">T</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">max</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
+ Maximum value for <tt class="computeroutput"><span class="identifier">T</span></tt>.
+ Required only if <tt class="computeroutput"><span class="identifier">T</span></tt>
is bounded.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">min</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
- Minimum value for <code class="computeroutput"><span class="identifier">T</span></code>.
- Required only if <code class="computeroutput"><span class="identifier">T</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">min</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
+ Minimum value for <tt class="computeroutput"><span class="identifier">T</span></tt>.
+ Required only if <tt class="computeroutput"><span class="identifier">T</span></tt>
is bounded.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.numeric.uint.example"></a><h6>
-<a name="id689199"></a>
- <a class="link" href="uint.html#spirit.qi.reference.numeric.uint.example">Example</a>
+<a name="id499986"></a>
+ Example
</h6>
<p>
Some using declarations:
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/operator.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/operator.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/operator.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,14 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Operator</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="numeric/boolean.html" title="Boolean Parser (bool_)">
-<link rel="next" href="operator/alternative.html" title="Alternative (a | b)">
+<link rel="previous" href="numeric/boolean.html" title=" Boolean Parser
+ (bool_)">
+<link rel="next" href="operator/alternative.html" title=" Alternative
+ (a |
+ b)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,70 +25,74 @@
<div class="spirit-nav">
<a accesskey="p" href="numeric/boolean.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="operator/alternative.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Operator">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.reference.operator"></a><a class="link" href="operator.html" title="Operator">Operator</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.reference.operator"></a>Operator
+</h4></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section"><a href="operator/alternative.html"> Alternative
- (<code class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
- <span class="identifier">b</span></code>)</a></span></dt>
+ (<tt class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
+ <span class="identifier">b</span></tt>)</a></span></dt>
<dt><span class="section"><a href="operator/and_predicate.html"> And
- Predicate (<code class="computeroutput"><span class="special">&</span><span class="identifier">a</span></code>)</a></span></dt>
+ Predicate (<tt class="computeroutput"><span class="special">&</span><span class="identifier">a</span></tt>)</a></span></dt>
<dt><span class="section"><a href="operator/difference.html"> Difference
- (<code class="computeroutput"><span class="identifier">a</span> <span class="special">-</span>
- <span class="identifier">b</span></code>)</a></span></dt>
+ (<tt class="computeroutput"><span class="identifier">a</span> <span class="special">-</span>
+ <span class="identifier">b</span></tt>)</a></span></dt>
<dt><span class="section"><a href="operator/expect.html"> Expectation
- (<code class="computeroutput"><span class="identifier">a</span> <span class="special">></span>
- <span class="identifier">b</span></code>)</a></span></dt>
-<dt><span class="section"> Kleene (*a
)</span></dt>
-<dt><span class="section"> List (a % b
)</span></dt>
+ (<tt class="computeroutput"><span class="identifier">a</span> <span class="special">></span>
+ <span class="identifier">b</span></tt>)</a></span></dt>
+<dt><span class="section"> Kleene (*a)</span></dt>
+<dt><span class="section"> List (a % b)</span></dt>
<dt><span class="section"><a href="operator/not_predicate.html"> Not
- Predicate (<code class="computeroutput"><span class="special">!</span><span class="identifier">a</span></code>)</a></span></dt>
+ Predicate (<tt class="computeroutput"><span class="special">!</span><span class="identifier">a</span></tt>)</a></span></dt>
<dt><span class="section"><a href="operator/optional.html"> Optional
- (<code class="computeroutput"><span class="special">-</span><span class="identifier">a</span></code>)</a></span></dt>
+ (<tt class="computeroutput"><span class="special">-</span><span class="identifier">a</span></tt>)</a></span></dt>
<dt><span class="section"><a href="operator/permutation.html"> Permutation
- (<code class="computeroutput"><span class="identifier">a</span> <span class="special">^</span>
- <span class="identifier">b</span></code>)</a></span></dt>
-<dt><span class="section"> Plus (+a
)</span></dt>
+ (<tt class="computeroutput"><span class="identifier">a</span> <span class="special">^</span>
+ <span class="identifier">b</span></tt>)</a></span></dt>
+<dt><span class="section"> Plus (+a)</span></dt>
<dt><span class="section"><a href="operator/sequence.html"> Sequence
- (<code class="computeroutput"><span class="identifier">a</span> <span class="special">>></span>
- <span class="identifier">b</span></code>)</a></span></dt>
+ (<tt class="computeroutput"><span class="identifier">a</span> <span class="special">>></span>
+ <span class="identifier">b</span></tt>)</a></span></dt>
<dt><span class="section"><a href="operator/sequential_or.html"> Sequential
- Or (<code class="computeroutput"><span class="identifier">a</span> <span class="special">||</span>
- <span class="identifier">b</span></code>)</a></span></dt>
+ Or (<tt class="computeroutput"><span class="identifier">a</span> <span class="special">||</span>
+ <span class="identifier">b</span></tt>)</a></span></dt>
</dl></div>
<p>
Operators are used as a means for object composition and embedding. Simple
parsers may be composed to form composites through operator overloading,
- crafted to approximate the syntax of <a class="link" href="../../abstracts/parsing_expression_grammar.html" title="Parsing Expression Grammar">Parsing
+ crafted to approximate the syntax of <a href="../../abstracts/parsing_expression_grammar.html" title="Parsing
+ Expression Grammar">Parsing
Expression Grammar</a> (PEG). An expression such as:
</p>
<pre class="programlisting"><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span>
</pre>
<p>
- yields a new parser type which is a composite of its operands, <code class="computeroutput"><span class="identifier">a</span></code> and <code class="computeroutput"><span class="identifier">b</span></code>.
+ yields a new parser type which is a composite of its operands, <tt class="computeroutput"><span class="identifier">a</span></tt> and <tt class="computeroutput"><span class="identifier">b</span></tt>.
</p>
<p>
This module includes different parsers which get instantiated if one of
the overloaded operators is used with more primitive parser constructs.
- It includes Alternative (<code class="computeroutput"><span class="special">|</span></code>),
- And predicate (unary <code class="computeroutput"><span class="special">&</span></code>),
- Difference (<code class="computeroutput"><span class="special">-</span></code>), Expect (<code class="computeroutput"><span class="special">></span></code>), Kleene star (unary <code class="computeroutput"><span class="special">*</span></code>), Lists (unary <code class="computeroutput"><span class="special">%</span></code>),
- Not predicate (unary <code class="computeroutput"><span class="special">!</span></code>), Optional
- (<code class="computeroutput"><span class="special">-</span></code>), Permutation (<code class="computeroutput"><span class="special">^</span></code>), Plus (unary <code class="computeroutput"><span class="special">+</span></code>),
- Sequence (<code class="computeroutput"><span class="special">>></span></code>) and Sequential-Or
- (<code class="computeroutput"><span class="special">||</span></code>).
+ It includes Alternative (<tt class="computeroutput"><span class="special">|</span></tt>),
+ And predicate (unary <tt class="computeroutput"><span class="special">&</span></tt>),
+ Difference (<tt class="computeroutput"><span class="special">-</span></tt>), Expect (<tt class="computeroutput"><span class="special">></span></tt>), Kleene star (unary <tt class="computeroutput"><span class="special">*</span></tt>), Lists (unary <tt class="computeroutput"><span class="special">%</span></tt>),
+ Not predicate (unary <tt class="computeroutput"><span class="special">!</span></tt>), Optional
+ (<tt class="computeroutput"><span class="special">-</span></tt>), Permutation (<tt class="computeroutput"><span class="special">^</span></tt>), Plus (unary <tt class="computeroutput"><span class="special">+</span></tt>),
+ Sequence (<tt class="computeroutput"><span class="special">>></span></tt>) and Sequential-Or
+ (<tt class="computeroutput"><span class="special">||</span></tt>).
</p>
-<a name="spirit.qi.reference.operator.module_header"></a><h6>
-<a name="id701526"></a>
- <a class="link" href="operator.html#spirit.qi.reference.operator.module_header">Module Header</a>
- </h6>
+<a name="spirit.qi.reference.operator.module_header"></a><h5>
+<a name="id513847"></a>
+ Module Header
+ </h5>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/karma/operator.hpp>
</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">karma_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/operator/alternative.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/operator/alternative.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/operator/alternative.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Alternative (a | b)</title>
+<title> Alternative
+ (a |
+ b)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../operator.html" title="Operator">
-<link rel="prev" href="../operator.html" title="Operator">
-<link rel="next" href="and_predicate.html" title="And Predicate (&a)">
+<link rel="previous" href="../operator.html" title="Operator">
+<link rel="next" href="and_predicate.html" title=" And
+ Predicate (&a)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,21 +25,26 @@
<div class="spirit-nav">
<a accesskey="p" href="../operator.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="and_predicate.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Alternative (a | b)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.operator.alternative"></a><a class="link" href="alternative.html" title="Alternative (a | b)"> Alternative
- (<code class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
- <span class="identifier">b</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.operator.alternative"></a><a href="alternative.html" title=" Alternative
+ (a |
+ b)"> Alternative
+ (<tt class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
+ <span class="identifier">b</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.operator.alternative.description"></a><h6>
-<a name="id701627"></a>
- <a class="link" href="alternative.html#spirit.qi.reference.operator.alternative.description">Description</a>
+<a name="id514004"></a>
+ Description
</h6>
<p>
- The alternative operator, <code class="computeroutput"><span class="identifier">a</span>
- <span class="special">|</span> <span class="identifier">b</span></code>,
- matches one of two or more operands (<code class="computeroutput"><span class="identifier">a</span></code>,
- <code class="computeroutput"><span class="identifier">b</span></code>, ... etc.):
+ The alternative operator, <tt class="computeroutput"><span class="identifier">a</span>
+ <span class="special">|</span> <span class="identifier">b</span></tt>,
+ matches one of two or more operands (<tt class="computeroutput"><span class="identifier">a</span></tt>,
+ <tt class="computeroutput"><span class="identifier">b</span></tt>, ... etc.):
</p>
<pre class="programlisting"><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span> <span class="special">|</span> <span class="special">...</span>
</pre>
@@ -49,58 +57,58 @@
</p>
<p>
Short-circuiting is done in the same manner as C or C++'s logical expressions;
- e.g. <code class="computeroutput"><span class="keyword">if</span> <span class="special">(</span><span class="identifier">x</span> <span class="special"><</span> <span class="number">3</span> <span class="special">||</span> <span class="identifier">y</span>
- <span class="special"><</span> <span class="number">2</span><span class="special">)</span></code> where, if <code class="computeroutput"><span class="identifier">x</span>
- <span class="special"><</span> <span class="number">3</span></code>,
- the <code class="computeroutput"><span class="identifier">y</span> <span class="special"><</span>
- <span class="number">2</span></code> test is not done at all. In addition
+ e.g. <tt class="computeroutput"><span class="keyword">if</span> <span class="special">(</span><span class="identifier">x</span> <span class="special"><</span> <span class="number">3</span> <span class="special">||</span> <span class="identifier">y</span>
+ <span class="special"><</span> <span class="number">2</span><span class="special">)</span></tt> where, if <tt class="computeroutput"><span class="identifier">x</span>
+ <span class="special"><</span> <span class="number">3</span></tt>,
+ the <tt class="computeroutput"><span class="identifier">y</span> <span class="special"><</span>
+ <span class="number">2</span></tt> test is not done at all. In addition
to providing an implicit priority rule for alternatives which is necessary,
given its non-deterministic nature, short-circuiting improves the execution
time. If the order of your alternatives is logically irrelevant, strive
to put the (expected) most common choice first for maximum efficiency.
</p>
<a name="spirit.qi.reference.operator.alternative.header"></a><h6>
-<a name="id704545"></a>
- <a class="link" href="alternative.html#spirit.qi.reference.operator.alternative.header">Header</a>
+<a name="id514236"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/operator/alternative.hpp>
</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">qi_alternative</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.operator.alternative.model_of"></a><h6>
-<a name="id704620"></a>
- <a class="link" href="alternative.html#spirit.qi.reference.operator.alternative.model_of">Model
+<a name="id514351"></a>
+ <a href="alternative.html#spirit.qi.reference.operator.alternative.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/naryparser.html" title="NaryParser"><code class="computeroutput"><span class="identifier">NaryParser</span></code></a>
+ NaryParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code>,
- <code class="computeroutput"><span class="identifier">b</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt>,
+ <tt class="computeroutput"><span class="identifier">b</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
+ A Parser
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.operator.alternative.expression_semantics"></a><h6>
-<a name="id704698"></a>
- <a class="link" href="alternative.html#spirit.qi.reference.operator.alternative.expression_semantics">Expression
+<a name="id514464"></a>
+ <a href="alternative.html#spirit.qi.reference.operator.alternative.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/naryparser.html" title="NaryParser"><code class="computeroutput"><span class="identifier">NaryParser</span></code></a>.
+ is not defined in NaryParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -108,37 +116,29 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
- Match <code class="computeroutput"><span class="identifier">a</span></code> or <code class="computeroutput"><span class="identifier">b</span></code>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
+ <span class="identifier">b</span></tt>
+ </p></td>
+<td><p>
+ Match <tt class="computeroutput"><span class="identifier">a</span></tt> or <tt class="computeroutput"><span class="identifier">b</span></tt>.
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.alternative.attributes"></a><h6>
-<a name="id704808"></a>
- <a class="link" href="alternative.html#spirit.qi.reference.operator.alternative.attributes">Attributes</a>
+<a name="id514613"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -147,26 +147,20 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
+ <span class="identifier">b</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</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">B</span> <span class="special">--></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">variant</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span>
@@ -176,12 +170,12 @@
<span class="identifier">a</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">A</span> <span class="special">--></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">A</span></pre>
<p>
</p>
- </td>
+</td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.alternative.complexity"></a><h6>
-<a name="id705227"></a>
- <a class="link" href="alternative.html#spirit.qi.reference.operator.alternative.complexity">Complexity</a>
+<a name="id515158"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -195,8 +189,8 @@
</p>
</blockquote></div>
<a name="spirit.qi.reference.operator.alternative.example"></a><h6>
-<a name="id705251"></a>
- <a class="link" href="alternative.html#spirit.qi.reference.operator.alternative.example">Example</a>
+<a name="id515198"></a>
+ Example
</h6>
<p>
Some using declarations:
@@ -246,7 +240,7 @@
<p>
</p>
<p>
- This should print <code class="computeroutput"><span class="string">"Hello"</span></code>.
+ This should print <tt class="computeroutput"><span class="string">"Hello"</span></tt>.
Note: There are better ways to extract the value from the variant.
See Boost.Variant
visitation. This code is solely for demonstration.
@@ -266,7 +260,7 @@
</p>
<p>
Extracting the attributes using Semantic Actions with Phoenix
- (this should print <code class="computeroutput"><span class="number">123</span></code>):
+ (this should print <tt class="computeroutput"><span class="number">123</span></tt>):
</p>
<p>
</p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/operator/and_predicate.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/operator/and_predicate.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/operator/and_predicate.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,18 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>And Predicate (&a)</title>
+<title> And
+ Predicate (&a)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../operator.html" title="Operator">
-<link rel="prev" href="alternative.html" title="Alternative (a | b)">
-<link rel="next" href="difference.html" title="Difference (a - b)">
+<link rel="previous" href="alternative.html" title=" Alternative
+ (a |
+ b)">
+<link rel="next" href="difference.html" title=" Difference
+ (a -
+ b)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,65 +27,69 @@
<div class="spirit-nav">
<a accesskey="p" href="alternative.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="difference.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="And Predicate (&a)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.operator.and_predicate"></a><a class="link" href="and_predicate.html" title="And Predicate (&a)"> And
- Predicate (<code class="computeroutput"><span class="special">&</span><span class="identifier">a</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.operator.and_predicate"></a><a href="and_predicate.html" title=" And
+ Predicate (&a)"> And
+ Predicate (<tt class="computeroutput"><span class="special">&</span><span class="identifier">a</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.operator.and_predicate.description"></a><h6>
-<a name="id705952"></a>
- <a class="link" href="and_predicate.html#spirit.qi.reference.operator.and_predicate.description">Description</a>
+<a name="id516164"></a>
+ Description
</h6>
<p>
Syntactic predicates assert a certain conditional syntax to be satisfied
before evaluating another production. Similar to semantic predicates,
- <a class="link" href="../auxiliary/eps.html" title="Epsilon (eps)"><code class="computeroutput"><span class="identifier">eps</span></code></a>,
+ eps,
syntactic predicates do not consume any input. The <span class="emphasis"><em>and predicate</em></span>,
- <code class="computeroutput"><span class="special">&</span><span class="identifier">a</span></code>,
+ <tt class="computeroutput"><span class="special">&</span><span class="identifier">a</span></tt>,
is a positive syntactic predicate that returns a zero length match only
if its predicate matches.
</p>
<a name="spirit.qi.reference.operator.and_predicate.header"></a><h6>
-<a name="id705993"></a>
- <a class="link" href="and_predicate.html#spirit.qi.reference.operator.and_predicate.header">Header</a>
+<a name="id516238"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/operator/and_predicate.hpp>
</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">qi_and_predicate</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.operator.and_predicate.model_of"></a><h6>
-<a name="id706067"></a>
- <a class="link" href="and_predicate.html#spirit.qi.reference.operator.and_predicate.model_of">Model
+<a name="id516353"></a>
+ <a href="and_predicate.html#spirit.qi.reference.operator.and_predicate.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a>
+ UnaryParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
+ A Parser
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.operator.and_predicate.expression_semantics"></a><h6>
-<a name="id706138"></a>
- <a class="link" href="and_predicate.html#spirit.qi.reference.operator.and_predicate.expression_semantics">Expression
+<a name="id516454"></a>
+ <a href="and_predicate.html#spirit.qi.reference.operator.and_predicate.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a>.
+ is not defined in UnaryParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -88,37 +97,29 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">&</span><span class="identifier">a</span></code>
- </p>
- </td>
-<td>
- <p>
- If the predicate <code class="computeroutput"><span class="identifier">a</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="special">&</span><span class="identifier">a</span></tt>
+ </p></td>
+<td><p>
+ If the predicate <tt class="computeroutput"><span class="identifier">a</span></tt>
matches, return a zero length match. Otherwise, fail.
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.and_predicate.attributes"></a><h6>
-<a name="id706235"></a>
- <a class="link" href="and_predicate.html#spirit.qi.reference.operator.and_predicate.attributes">Attributes</a>
+<a name="id516587"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -127,46 +128,38 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">&</span><span class="identifier">a</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused_type</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="special">&</span><span class="identifier">a</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.and_predicate.complexity"></a><h6>
-<a name="id706327"></a>
- <a class="link" href="and_predicate.html#spirit.qi.reference.operator.and_predicate.complexity">Complexity</a>
+<a name="id516708"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- The complexity is defined by the complexity of the predicate, <code class="computeroutput"><span class="identifier">a</span></code>
+ The complexity is defined by the complexity of the predicate, <tt class="computeroutput"><span class="identifier">a</span></tt>
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.qi.reference.operator.and_predicate.example"></a><h6>
-<a name="id706359"></a>
- <a class="link" href="and_predicate.html#spirit.qi.reference.operator.and_predicate.example">Example</a>
+<a name="id516757"></a>
+ Example
</h6>
<p>
</p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/operator/difference.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/operator/difference.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/operator/difference.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,18 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Difference (a - b)</title>
+<title> Difference
+ (a -
+ b)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../operator.html" title="Operator">
-<link rel="prev" href="and_predicate.html" title="And Predicate (&a)">
-<link rel="next" href="expect.html" title="Expectation (a > b)">
+<link rel="previous" href="and_predicate.html" title=" And
+ Predicate (&a)">
+<link rel="next" href="expect.html" title=" Expectation
+ (a >
+ b)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,65 +27,70 @@
<div class="spirit-nav">
<a accesskey="p" href="and_predicate.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="expect.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Difference (a - b)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.operator.difference"></a><a class="link" href="difference.html" title="Difference (a - b)"> Difference
- (<code class="computeroutput"><span class="identifier">a</span> <span class="special">-</span>
- <span class="identifier">b</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.operator.difference"></a><a href="difference.html" title=" Difference
+ (a -
+ b)"> Difference
+ (<tt class="computeroutput"><span class="identifier">a</span> <span class="special">-</span>
+ <span class="identifier">b</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.operator.difference.description"></a><h6>
-<a name="id706515"></a>
- <a class="link" href="difference.html#spirit.qi.reference.operator.difference.description">Description</a>
+<a name="id516980"></a>
+ Description
</h6>
<p>
- The difference operator, <code class="computeroutput"><span class="identifier">a</span>
- <span class="special">-</span> <span class="identifier">b</span></code>,
+ The difference operator, <tt class="computeroutput"><span class="identifier">a</span>
+ <span class="special">-</span> <span class="identifier">b</span></tt>,
is a binary operator that matches the first (LHS) operand but not the
second (RHS).
- <sup>[<a name="id706543" href="#ftn.id706543" class="footnote">7</a>]</sup>
+ <sup>[<a name="id517021" href="#ftn.id517021">7</a>]</sup>
</p>
<a name="spirit.qi.reference.operator.difference.header"></a><h6>
-<a name="id706583"></a>
- <a class="link" href="difference.html#spirit.qi.reference.operator.difference.header">Header</a>
+<a name="id517085"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/operator/difference.hpp>
</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">qi_difference</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.operator.difference.model_of"></a><h6>
-<a name="id706657"></a>
- <a class="link" href="difference.html#spirit.qi.reference.operator.difference.model_of">Model
+<a name="id517199"></a>
+ <a href="difference.html#spirit.qi.reference.operator.difference.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/binaryparser.html" title="BinaryParser"><code class="computeroutput"><span class="identifier">BinaryParser</span></code></a>
+ BinaryParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code>,
- <code class="computeroutput"><span class="identifier">b</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt>,
+ <tt class="computeroutput"><span class="identifier">b</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
+ A Parser
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.operator.difference.expression_semantics"></a><h6>
-<a name="id706747"></a>
- <a class="link" href="difference.html#spirit.qi.reference.operator.difference.expression_semantics">Expression
+<a name="id517311"></a>
+ <a href="difference.html#spirit.qi.reference.operator.difference.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/binaryparser.html" title="BinaryParser"><code class="computeroutput"><span class="identifier">BinaryParser</span></code></a>.
+ is not defined in BinaryParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -88,38 +98,30 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">-</span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
- Parse <code class="computeroutput"><span class="identifier">a</span></code> but not
- <code class="computeroutput"><span class="identifier">b</span></code>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">-</span>
+ <span class="identifier">b</span></tt>
+ </p></td>
+<td><p>
+ Parse <tt class="computeroutput"><span class="identifier">a</span></tt> but not
+ <tt class="computeroutput"><span class="identifier">b</span></tt>.
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.difference.attributes"></a><h6>
-<a name="id706858"></a>
- <a class="link" href="difference.html#spirit.qi.reference.operator.difference.attributes">Attributes</a>
+<a name="id517462"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -128,38 +130,32 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">-</span>
+ <span class="identifier">b</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">-</span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</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">B</span> <span class="special">--></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">A</span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--></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">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.difference.complexity"></a><h6>
-<a name="id707074"></a>
- <a class="link" href="difference.html#spirit.qi.reference.operator.difference.complexity">Complexity</a>
+<a name="id517742"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -172,8 +168,8 @@
</p>
</blockquote></div>
<a name="spirit.qi.reference.operator.difference.example"></a><h6>
-<a name="id707098"></a>
- <a class="link" href="difference.html#spirit.qi.reference.operator.difference.example">Example</a>
+<a name="id517780"></a>
+ Example
</h6>
<p>
</p>
@@ -206,10 +202,10 @@
</p>
<div class="footnotes">
<br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id706543" href="#id706543" class="para">7</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id517021" href="#id517021">7</a>] </sup>
Unlike classic Spirit, with Spirit2, the expression will always fail
if the RHS is a successful match regardless if the RHS matches less
- characters. For example, the rule <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="string">"policeman"</span><span class="special">)</span> <span class="special">-</span> <span class="string">"police"</span></code> will always fail
+ characters. For example, the rule <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="string">"policeman"</span><span class="special">)</span> <span class="special">-</span> <span class="string">"police"</span></tt> will always fail
to match. Spirit2 does not count the matching chars while parsing
and there is no reliable and fast way to check if the LHS matches
more than the RHS.
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/operator/expect.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/operator/expect.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/operator/expect.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,17 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Expectation (a > b)</title>
+<title> Expectation
+ (a >
+ b)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../operator.html" title="Operator">
-<link rel="prev" href="difference.html" title="Difference (a - b)">
-<link rel="next" href="kleene.html" title="Kleene (*a)">
+<link rel="previous" href="difference.html" title=" Difference
+ (a -
+ b)">
+<link rel="next" href="kleene.html" title=" Kleene (*a)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,93 +26,102 @@
<div class="spirit-nav">
<a accesskey="p" href="difference.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="kleene.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Expectation (a > b)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.operator.expect"></a><a class="link" href="expect.html" title="Expectation (a > b)"> Expectation
- (<code class="computeroutput"><span class="identifier">a</span> <span class="special">></span>
- <span class="identifier">b</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.operator.expect"></a><a href="expect.html" title=" Expectation
+ (a >
+ b)"> Expectation
+ (<tt class="computeroutput"><span class="identifier">a</span> <span class="special">></span>
+ <span class="identifier">b</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.operator.expect.description"></a><h6>
-<a name="id707258"></a>
- <a class="link" href="expect.html#spirit.qi.reference.operator.expect.description">Description</a>
+<a name="id518007"></a>
+ Description
</h6>
<p>
- Like the <a class="link" href="sequence.html" title="Sequence (a >> b)">Sequence</a>,
- the expectation operator, <code class="computeroutput"><span class="identifier">a</span>
- <span class="special">></span> <span class="identifier">b</span></code>,
- parses two or more operands (<code class="computeroutput"><span class="identifier">a</span></code>,
- <code class="computeroutput"><span class="identifier">b</span></code>, ... etc.), in sequence:
+ Like the <a href="sequence.html" title=" Sequence
+ (a >>
+ b)">Sequence</a>,
+ the expectation operator, <tt class="computeroutput"><span class="identifier">a</span>
+ <span class="special">></span> <span class="identifier">b</span></tt>,
+ parses two or more operands (<tt class="computeroutput"><span class="identifier">a</span></tt>,
+ <tt class="computeroutput"><span class="identifier">b</span></tt>, ... etc.), in sequence:
</p>
<pre class="programlisting"><span class="identifier">a</span> <span class="special">></span> <span class="identifier">b</span> <span class="special">></span> <span class="special">...</span>
</pre>
<p>
- However, while the plain <a class="link" href="sequence.html" title="Sequence (a >> b)">Sequence</a>
- simply returns a no-match (returns <code class="computeroutput"><span class="keyword">false</span></code>)
- when one of the elements fail, the expectation: <code class="computeroutput"><span class="special">></span></code>
- operator throws an <a class="link" href="expect.html#spirit.qi.reference.operator.expect.expectation_failure"><code class="computeroutput"><span class="identifier">expectation_failure</span></code></a><code class="computeroutput"><span class="special"><</span><span class="identifier">Iter</span><span class="special">></span></code> when the second or succeeding operands
+ However, while the plain <a href="sequence.html" title=" Sequence
+ (a >>
+ b)">Sequence</a>
+ simply returns a no-match (returns <tt class="computeroutput"><span class="keyword">false</span></tt>)
+ when one of the elements fail, the expectation: <tt class="computeroutput"><span class="special">></span></tt>
+ operator throws an expectation_failure<tt class="computeroutput"><span class="special"><</span><span class="identifier">Iter</span><span class="special">></span></tt> when the second or succeeding operands
(all operands except the first) fail to match.
</p>
<a name="spirit.qi.reference.operator.expect.header"></a><h6>
-<a name="id707386"></a>
- <a class="link" href="expect.html#spirit.qi.reference.operator.expect.header">Header</a>
+<a name="id518213"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/operator/expect.hpp>
</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">qi_expect</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.operator.expect.model_of"></a><h6>
-<a name="id707460"></a>
- <a class="link" href="expect.html#spirit.qi.reference.operator.expect.model_of">Model of</a>
+<a name="id518327"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/naryparser.html" title="NaryParser"><code class="computeroutput"><span class="identifier">NaryParser</span></code></a>
+ NaryParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code>,
- <code class="computeroutput"><span class="identifier">b</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt>,
+ <tt class="computeroutput"><span class="identifier">b</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
+ A Parser
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Iter</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Iter</span></tt></span></dt>
<dd><p>
- a ForwardIterator
type.
+ a ForwardIterator type.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.operator.expect.expectation_failure"></a><h6>
-<a name="id707563"></a>
- <a class="link" href="expect.html#spirit.qi.reference.operator.expect.expectation_failure">Expectation
+<a name="id518476"></a>
+ <a href="expect.html#spirit.qi.reference.operator.expect.expectation_failure">Expectation
Failure</a>
</h6>
<p>
- When any operand, except the first, fail to match an <code class="computeroutput"><span class="identifier">expectation_failure</span><span class="special"><</span><span class="identifier">Iter</span><span class="special">></span></code> is thrown:
+ When any operand, except the first, fail to match an <tt class="computeroutput"><span class="identifier">expectation_failure</span><span class="special"><</span><span class="identifier">Iter</span><span class="special">></span></tt> is thrown:
</p>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iter</span><span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">expectation_failure</span>
<span class="special">{</span>
<span class="identifier">Iter</span> <span class="identifier">first</span><span class="special">;</span> <span class="comment">// [first, last) iterator pointing
</span> <span class="identifier">Iter</span> <span class="identifier">last</span><span class="special">;</span> <span class="comment">// to the error position in the input.
-</span> <code class="computeroutput"><span class="identifier">info</span></code> <span class="identifier">what</span><span class="special">;</span> <span class="comment">// Information about the nature of the error.
+</span> <tt class="computeroutput"><span class="identifier">info</span></tt> <span class="identifier">what</span><span class="special">;</span> <span class="comment">// Information about the nature of the error.
</span><span class="special">};</span>
</pre>
<a name="spirit.qi.reference.operator.expect.expression_semantics"></a><h6>
-<a name="id707700"></a>
- <a class="link" href="expect.html#spirit.qi.reference.operator.expect.expression_semantics">Expression
+<a name="id518668"></a>
+ <a href="expect.html#spirit.qi.reference.operator.expect.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/naryparser.html" title="NaryParser"><code class="computeroutput"><span class="identifier">NaryParser</span></code></a>.
+ is not defined in NaryParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -116,38 +129,30 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">></span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
- Match <code class="computeroutput"><span class="identifier">a</span></code> followed
- by <code class="computeroutput"><span class="identifier">b</span></code>. If <code class="computeroutput"><span class="identifier">a</span></code> fails, no-match. If <code class="computeroutput"><span class="identifier">b</span></code> fails, throw an <code class="computeroutput"><span class="identifier">expectation_failure</span><span class="special"><</span><span class="identifier">Iter</span><span class="special">></span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">></span>
+ <span class="identifier">b</span></tt>
+ </p></td>
+<td><p>
+ Match <tt class="computeroutput"><span class="identifier">a</span></tt> followed
+ by <tt class="computeroutput"><span class="identifier">b</span></tt>. If <tt class="computeroutput"><span class="identifier">a</span></tt> fails, no-match. If <tt class="computeroutput"><span class="identifier">b</span></tt> fails, throw an <tt class="computeroutput"><span class="identifier">expectation_failure</span><span class="special"><</span><span class="identifier">Iter</span><span class="special">></span></tt>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.expect.attributes"></a><h6>
-<a name="id707843"></a>
- <a class="link" href="expect.html#spirit.qi.reference.operator.expect.attributes">Attributes</a>
+<a name="id518870"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -156,26 +161,20 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">></span>
+ <span class="identifier">b</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">></span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</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">B</span> <span class="special">--></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">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span>
@@ -189,12 +188,12 @@
<span class="identifier">a</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">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span> <span class="special">--></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">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></pre>
<p>
</p>
- </td>
+</td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.expect.complexity"></a><h6>
-<a name="id708524"></a>
- <a class="link" href="expect.html#spirit.qi.reference.operator.expect.complexity">Complexity</a>
+<a name="id519768"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -209,8 +208,8 @@
</p>
</blockquote></div>
<a name="spirit.qi.reference.operator.expect.example"></a><h6>
-<a name="id708548"></a>
- <a class="link" href="expect.html#spirit.qi.reference.operator.expect.example">Example</a>
+<a name="id519808"></a>
+ Example
</h6>
<p>
Some using declarations:
@@ -230,10 +229,10 @@
<p>
</p>
<p>
- The code below uses an expectation operator to throw an <a class="link" href="expect.html#spirit.qi.reference.operator.expect.expectation_failure"><code class="computeroutput"><span class="identifier">expectation_failure</span></code></a> with a
- deliberate parsing error when <code class="computeroutput"><span class="string">"o"</span></code>
- is expected and <code class="computeroutput"><span class="string">"i"</span></code>
- is what is found in the input. The <code class="computeroutput"><span class="keyword">catch</span></code>
+ The code below uses an expectation operator to throw an expectation_failure with a
+ deliberate parsing error when <tt class="computeroutput"><span class="string">"o"</span></tt>
+ is expected and <tt class="computeroutput"><span class="string">"i"</span></tt>
+ is what is found in the input. The <tt class="computeroutput"><span class="keyword">catch</span></tt>
block prints the information related to the error. Note: This is low
level code that demonstrates the <span class="emphasis"><em>bare-metal</em></span>. Typically,
you use an Error Handler to deal with the error.
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/operator/kleene.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/operator/kleene.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/operator/kleene.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Kleene (*a)</title>
+<title> Kleene (*a)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../operator.html" title="Operator">
-<link rel="prev" href="expect.html" title="Expectation (a > b)">
-<link rel="next" href="list.html" title="List (a % b)">
+<link rel="previous" href="expect.html" title=" Expectation
+ (a >
+ b)">
+<link rel="next" href="list.html" title=" List (a % b)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,58 +24,61 @@
<div class="spirit-nav">
<a accesskey="p" href="expect.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="list.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Kleene (*a)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.operator.kleene"></a><a class="link" href="kleene.html" title="Kleene (*a)"> Kleene (<code class="computeroutput"><span class="special">*</span><span class="identifier">a</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.operator.kleene"></a> Kleene (*a)
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.operator.kleene.description"></a><h6>
-<a name="id708999"></a>
- <a class="link" href="kleene.html#spirit.qi.reference.operator.kleene.description">Description</a>
+<a name="id520442"></a>
+ Description
</h6>
<p>
- The kleene operator, <code class="computeroutput"><span class="special">*</span><span class="identifier">a</span></code>,
+ The kleene operator, <tt class="computeroutput"><span class="special">*</span><span class="identifier">a</span></tt>,
is a unary operator that matches its operand zero or more times.
</p>
<a name="spirit.qi.reference.operator.kleene.header"></a><h6>
-<a name="id709027"></a>
- <a class="link" href="kleene.html#spirit.qi.reference.operator.kleene.header">Header</a>
+<a name="id520487"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/operator/kleene.hpp>
</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">qi_kleene</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.operator.kleene.model_of"></a><h6>
-<a name="id709101"></a>
- <a class="link" href="kleene.html#spirit.qi.reference.operator.kleene.model_of">Model of</a>
+<a name="id520601"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a>
+ UnaryParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
+ A Parser
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.operator.kleene.expression_semantics"></a><h6>
-<a name="id709172"></a>
- <a class="link" href="kleene.html#spirit.qi.reference.operator.kleene.expression_semantics">Expression
+<a name="id520701"></a>
+ <a href="kleene.html#spirit.qi.reference.operator.kleene.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a>.
+ is not defined in UnaryParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -81,37 +86,29 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">*</span><span class="identifier">a</span></code>
- </p>
- </td>
-<td>
- <p>
- Match <code class="computeroutput"><span class="identifier">a</span></code> zero
+<td><p>
+ <tt class="computeroutput"><span class="special">*</span><span class="identifier">a</span></tt>
+ </p></td>
+<td><p>
+ Match <tt class="computeroutput"><span class="identifier">a</span></tt> zero
or more times.
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.kleene.attributes"></a><h6>
-<a name="id709270"></a>
- <a class="link" href="kleene.html#spirit.qi.reference.operator.kleene.attributes">Attributes</a>
+<a name="id520834"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -120,44 +117,38 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="special">*</span><span class="identifier">a</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="special">*</span><span class="identifier">a</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="special">*</span><span class="identifier">a</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">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">*</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.kleene.complexity"></a><h6>
-<a name="id709438"></a>
- <a class="link" href="kleene.html#spirit.qi.reference.operator.kleene.complexity">Complexity</a>
+<a name="id521053"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
The overall complexity of the Kleene star is defined by the complexity
- of its subject, <code class="computeroutput"><span class="identifier">a</span></code>,
+ of its subject, <tt class="computeroutput"><span class="identifier">a</span></tt>,
multiplied by the number of repetitions. The complexity of the Kleene
star itself is O(N), where N is the number successful repetitions.
</p>
@@ -165,8 +156,8 @@
</p>
</blockquote></div>
<a name="spirit.qi.reference.operator.kleene.example"></a><h6>
-<a name="id709469"></a>
- <a class="link" href="kleene.html#spirit.qi.reference.operator.kleene.example">Example</a>
+<a name="id521104"></a>
+ Example
</h6>
<p>
</p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/operator/list.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/operator/list.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/operator/list.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>List (a % b)</title>
+<title> List (a % b)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../operator.html" title="Operator">
-<link rel="prev" href="kleene.html" title="Kleene (*a)">
-<link rel="next" href="not_predicate.html" title="Not Predicate (!a)">
+<link rel="previous" href="kleene.html" title=" Kleene (*a)">
+<link rel="next" href="not_predicate.html" title=" Not
+ Predicate (!a)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,64 +23,67 @@
<div class="spirit-nav">
<a accesskey="p" href="kleene.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="not_predicate.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="List (a % b)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.operator.list"></a><a class="link" href="list.html" title="List (a % b)"> List (<code class="computeroutput"><span class="identifier">a</span> <span class="special">%</span> <span class="identifier">b</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.operator.list"></a> List (a % b)
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.operator.list.description"></a><h6>
-<a name="id709829"></a>
- <a class="link" href="list.html#spirit.qi.reference.operator.list.description">Description</a>
+<a name="id521596"></a>
+ Description
</h6>
<p>
- The list operator, <code class="computeroutput"><span class="identifier">a</span> <span class="special">%</span> <span class="identifier">b</span></code>,
+ The list operator, <tt class="computeroutput"><span class="identifier">a</span> <span class="special">%</span> <span class="identifier">b</span></tt>,
is a binary operator that matches a list of one or more repetitions of
- <code class="computeroutput"><span class="identifier">a</span></code> separated by occurrences
- of <code class="computeroutput"><span class="identifier">b</span></code>. This is equivalent
- to <code class="computeroutput"><span class="identifier">a</span> <span class="special">>></span>
+ <tt class="computeroutput"><span class="identifier">a</span></tt> separated by occurrences
+ of <tt class="computeroutput"><span class="identifier">b</span></tt>. This is equivalent
+ to <tt class="computeroutput"><span class="identifier">a</span> <span class="special">>></span>
<span class="special">*(</span><span class="identifier">b</span>
- <span class="special">>></span> <span class="identifier">a</span><span class="special">)</span></code>.
+ <span class="special">>></span> <span class="identifier">a</span><span class="special">)</span></tt>.
</p>
<a name="spirit.qi.reference.operator.list.header"></a><h6>
-<a name="id709911"></a>
- <a class="link" href="list.html#spirit.qi.reference.operator.list.header">Header</a>
+<a name="id521720"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/operator/list.hpp>
</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">qi_list</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.operator.list.model_of"></a><h6>
-<a name="id709985"></a>
- <a class="link" href="list.html#spirit.qi.reference.operator.list.model_of">Model of</a>
+<a name="id521834"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/binaryparser.html" title="BinaryParser"><code class="computeroutput"><span class="identifier">BinaryParser</span></code></a>
+ BinaryParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code>,
- <code class="computeroutput"><span class="identifier">b</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt>,
+ <tt class="computeroutput"><span class="identifier">b</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
+ A Parser
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.operator.list.expression_semantics"></a><h6>
-<a name="id710061"></a>
- <a class="link" href="list.html#spirit.qi.reference.operator.list.expression_semantics">Expression
+<a name="id521946"></a>
+ <a href="list.html#spirit.qi.reference.operator.list.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/binaryparser.html" title="BinaryParser"><code class="computeroutput"><span class="identifier">BinaryParser</span></code></a>.
+ is not defined in BinaryParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -87,41 +91,33 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">%</span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
- Match a list of one or more repetitions of <code class="computeroutput"><span class="identifier">a</span></code>
- separated by occurrences of <code class="computeroutput"><span class="identifier">b</span></code>.
- This is equivalent to <code class="computeroutput"><span class="identifier">a</span>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">%</span>
+ <span class="identifier">b</span></tt>
+ </p></td>
+<td><p>
+ Match a list of one or more repetitions of <tt class="computeroutput"><span class="identifier">a</span></tt>
+ separated by occurrences of <tt class="computeroutput"><span class="identifier">b</span></tt>.
+ This is equivalent to <tt class="computeroutput"><span class="identifier">a</span>
<span class="special">>></span> <span class="special">*(</span><span class="identifier">b</span> <span class="special">>></span>
- <span class="identifier">a</span><span class="special">)</span></code>.
- </p>
- </td>
+ <span class="identifier">a</span><span class="special">)</span></tt>.
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.list.attributes"></a><h6>
-<a name="id710203"></a>
- <a class="link" href="list.html#spirit.qi.reference.operator.list.attributes">Attributes</a>
+<a name="id522144"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -130,45 +126,39 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">-</span>
+ <span class="identifier">b</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">-</span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</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">B</span> <span class="special">--></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">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">B</span> <span class="special">--></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">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.list.complexity"></a><h6>
-<a name="id710429"></a>
- <a class="link" href="list.html#spirit.qi.reference.operator.list.complexity">Complexity</a>
+<a name="id522438"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
The overall complexity of the List is defined by the complexity of
- its subject, <code class="computeroutput"><span class="identifier">a</span></code>, multiplied
+ its subject, <tt class="computeroutput"><span class="identifier">a</span></tt>, multiplied
by the number of repetitions. The complexity of the List itself is
O(N), where N is the number successful repetitions.
</p>
@@ -176,8 +166,8 @@
</p>
</blockquote></div>
<a name="spirit.qi.reference.operator.list.example"></a><h6>
-<a name="id710461"></a>
- <a class="link" href="list.html#spirit.qi.reference.operator.list.example">Example</a>
+<a name="id522490"></a>
+ Example
</h6>
<p>
</p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/operator/not_predicate.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/operator/not_predicate.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/operator/not_predicate.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Not Predicate (!a)</title>
+<title> Not
+ Predicate (!a)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../operator.html" title="Operator">
-<link rel="prev" href="list.html" title="List (a % b)">
-<link rel="next" href="optional.html" title="Optional (-a)">
+<link rel="previous" href="list.html" title=" List (a % b)">
+<link rel="next" href="optional.html" title=" Optional
+ (-a)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,65 +24,69 @@
<div class="spirit-nav">
<a accesskey="p" href="list.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="optional.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Not Predicate (!a)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.operator.not_predicate"></a><a class="link" href="not_predicate.html" title="Not Predicate (!a)"> Not
- Predicate (<code class="computeroutput"><span class="special">!</span><span class="identifier">a</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.operator.not_predicate"></a><a href="not_predicate.html" title=" Not
+ Predicate (!a)"> Not
+ Predicate (<tt class="computeroutput"><span class="special">!</span><span class="identifier">a</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.operator.not_predicate.description"></a><h6>
-<a name="id710801"></a>
- <a class="link" href="not_predicate.html#spirit.qi.reference.operator.not_predicate.description">Description</a>
+<a name="id522957"></a>
+ Description
</h6>
<p>
Syntactic predicates assert a certain conditional syntax to be satisfied
before evaluating another production. Similar to semantic predicates,
- <a class="link" href="../auxiliary/eps.html" title="Epsilon (eps)"><code class="computeroutput"><span class="identifier">eps</span></code></a>,
+ eps,
syntactic predicates do not consume any input. The <span class="emphasis"><em>not predicate</em></span>,
- <code class="computeroutput"><span class="special">!</span><span class="identifier">a</span></code>,
+ <tt class="computeroutput"><span class="special">!</span><span class="identifier">a</span></tt>,
is a negative syntactic predicate that returns a zero length match only
if its predicate fails to match.
</p>
<a name="spirit.qi.reference.operator.not_predicate.header"></a><h6>
-<a name="id710842"></a>
- <a class="link" href="not_predicate.html#spirit.qi.reference.operator.not_predicate.header">Header</a>
+<a name="id523030"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/operator/not_predicate.hpp>
</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">qi_not_predicate</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.operator.not_predicate.model_of"></a><h6>
-<a name="id710917"></a>
- <a class="link" href="not_predicate.html#spirit.qi.reference.operator.not_predicate.model_of">Model
+<a name="id523145"></a>
+ <a href="not_predicate.html#spirit.qi.reference.operator.not_predicate.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a>
+ UnaryParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
+ A Parser
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.operator.not_predicate.expression_semantics"></a><h6>
-<a name="id710987"></a>
- <a class="link" href="not_predicate.html#spirit.qi.reference.operator.not_predicate.expression_semantics">Expression
+<a name="id523245"></a>
+ <a href="not_predicate.html#spirit.qi.reference.operator.not_predicate.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a>.
+ is not defined in UnaryParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -88,37 +94,29 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">!</span><span class="identifier">a</span></code>
- </p>
- </td>
-<td>
- <p>
- If the predicate <code class="computeroutput"><span class="identifier">a</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="special">!</span><span class="identifier">a</span></tt>
+ </p></td>
+<td><p>
+ If the predicate <tt class="computeroutput"><span class="identifier">a</span></tt>
matches, fail. Otherwise, return a zero length match.
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.not_predicate.attributes"></a><h6>
-<a name="id711085"></a>
- <a class="link" href="not_predicate.html#spirit.qi.reference.operator.not_predicate.attributes">Attributes</a>
+<a name="id523378"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -127,46 +125,38 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">!</span><span class="identifier">a</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused_type</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="special">!</span><span class="identifier">a</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.not_predicate.complexity"></a><h6>
-<a name="id716540"></a>
- <a class="link" href="not_predicate.html#spirit.qi.reference.operator.not_predicate.complexity">Complexity</a>
+<a name="id523498"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- The complexity is defined by the complexity of the predicate, <code class="computeroutput"><span class="identifier">a</span></code>
+ The complexity is defined by the complexity of the predicate, <tt class="computeroutput"><span class="identifier">a</span></tt>
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.qi.reference.operator.not_predicate.example"></a><h6>
-<a name="id716572"></a>
- <a class="link" href="not_predicate.html#spirit.qi.reference.operator.not_predicate.example">Example</a>
+<a name="id523547"></a>
+ Example
</h6>
<p>
</p>
@@ -187,7 +177,7 @@
<p>
</p>
<p>
- Here's an alternative to the <code class="computeroutput"><span class="special">*(</span><span class="identifier">r</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">>></span> <span class="identifier">x</span></code>
+ Here's an alternative to the <tt class="computeroutput"><span class="special">*(</span><span class="identifier">r</span> <span class="special">-</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">>></span> <span class="identifier">x</span></tt>
idiom using the not-predicate instead. This parses a list of characters
terminated by a ';':
</p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/operator/optional.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/operator/optional.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/operator/optional.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,17 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Optional (-a)</title>
+<title> Optional
+ (-a)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../operator.html" title="Operator">
-<link rel="prev" href="not_predicate.html" title="Not Predicate (!a)">
-<link rel="next" href="permutation.html" title="Permutation (a ^ b)">
+<link rel="previous" href="not_predicate.html" title=" Not
+ Predicate (!a)">
+<link rel="next" href="permutation.html" title=" Permutation
+ (a ^
+ b)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,60 +26,64 @@
<div class="spirit-nav">
<a accesskey="p" href="not_predicate.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="permutation.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Optional (-a)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.operator.optional"></a><a class="link" href="optional.html" title="Optional (-a)"> Optional
- (<code class="computeroutput"><span class="special">-</span><span class="identifier">a</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.operator.optional"></a><a href="optional.html" title=" Optional
+ (-a)"> Optional
+ (<tt class="computeroutput"><span class="special">-</span><span class="identifier">a</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.operator.optional.description"></a><h6>
-<a name="id717109"></a>
- <a class="link" href="optional.html#spirit.qi.reference.operator.optional.description">Description</a>
+<a name="id524289"></a>
+ Description
</h6>
<p>
- The optional operator, <code class="computeroutput"><span class="special">-</span><span class="identifier">a</span></code>, is a unary operator that matches
+ The optional operator, <tt class="computeroutput"><span class="special">-</span><span class="identifier">a</span></tt>, is a unary operator that matches
its operand zero or one time.
</p>
<a name="spirit.qi.reference.operator.optional.header"></a><h6>
-<a name="id717137"></a>
- <a class="link" href="optional.html#spirit.qi.reference.operator.optional.header">Header</a>
+<a name="id524335"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/operator/optional.hpp>
</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">qi_optional</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.operator.optional.model_of"></a><h6>
-<a name="id717211"></a>
- <a class="link" href="optional.html#spirit.qi.reference.operator.optional.model_of">Model
+<a name="id524449"></a>
+ <a href="optional.html#spirit.qi.reference.operator.optional.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a>
+ UnaryParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
+ A Parser
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.operator.optional.expression_semantics"></a><h6>
-<a name="id717282"></a>
- <a class="link" href="optional.html#spirit.qi.reference.operator.optional.expression_semantics">Expression
+<a name="id524548"></a>
+ <a href="optional.html#spirit.qi.reference.operator.optional.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a>.
+ is not defined in UnaryParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -83,37 +91,29 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">-</span><span class="identifier">a</span></code>
- </p>
- </td>
-<td>
- <p>
- Match <code class="computeroutput"><span class="identifier">a</span></code> zero
+<td><p>
+ <tt class="computeroutput"><span class="special">-</span><span class="identifier">a</span></tt>
+ </p></td>
+<td><p>
+ Match <tt class="computeroutput"><span class="identifier">a</span></tt> zero
or one time.
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.optional.attributes"></a><h6>
-<a name="id717380"></a>
- <a class="link" href="optional.html#spirit.qi.reference.operator.optional.attributes">Attributes</a>
+<a name="id524681"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -122,50 +122,44 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="special">-</span><span class="identifier">a</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="special">-</span><span class="identifier">a</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="special">-</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span>
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">-</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.optional.complexity"></a><h6>
-<a name="id717548"></a>
- <a class="link" href="optional.html#spirit.qi.reference.operator.optional.complexity">Complexity</a>
+<a name="id524901"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- The complexity is defined by the complexity of the operand, <code class="computeroutput"><span class="identifier">a</span></code>
+ The complexity is defined by the complexity of the operand, <tt class="computeroutput"><span class="identifier">a</span></tt>
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.qi.reference.operator.optional.example"></a><h6>
-<a name="id717580"></a>
- <a class="link" href="optional.html#spirit.qi.reference.operator.optional.example">Example</a>
+<a name="id524950"></a>
+ Example
</h6>
<p>
</p>
@@ -189,7 +183,7 @@
</p>
<p>
Parse a person info with name (in quotes) optional age
- <sup>[<a name="id717784" href="#ftn.id717784" class="footnote">8</a>]</sup>
+ <sup>[<a name="id525228" href="#ftn.id525228">8</a>]</sup>
and optional sex, all separated by comma.
</p>
<p>
@@ -220,7 +214,7 @@
</p>
<div class="footnotes">
<br><hr width="100" align="left">
-<div class="footnote"><p><sup>[<a name="ftn.id717784" href="#id717784" class="para">8</a>] </sup>
+<div class="footnote"><p><sup>[<a name="ftn.id525228" href="#id525228">8</a>] </sup>
James Bond is shy about his age :-)
</p></div>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/operator/permutation.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/operator/permutation.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/operator/permutation.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Permutation (a ^ b)</title>
+<title> Permutation
+ (a ^
+ b)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../operator.html" title="Operator">
-<link rel="prev" href="optional.html" title="Optional (-a)">
-<link rel="next" href="plus.html" title="Plus (+a)">
+<link rel="previous" href="optional.html" title=" Optional
+ (-a)">
+<link rel="next" href="plus.html" title=" Plus (+a)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,21 +25,26 @@
<div class="spirit-nav">
<a accesskey="p" href="optional.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="plus.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Permutation (a ^ b)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.operator.permutation"></a><a class="link" href="permutation.html" title="Permutation (a ^ b)"> Permutation
- (<code class="computeroutput"><span class="identifier">a</span> <span class="special">^</span>
- <span class="identifier">b</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.operator.permutation"></a><a href="permutation.html" title=" Permutation
+ (a ^
+ b)"> Permutation
+ (<tt class="computeroutput"><span class="identifier">a</span> <span class="special">^</span>
+ <span class="identifier">b</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.operator.permutation.description"></a><h6>
-<a name="id718306"></a>
- <a class="link" href="permutation.html#spirit.qi.reference.operator.permutation.description">Description</a>
+<a name="id525940"></a>
+ Description
</h6>
<p>
- The permutation operator, <code class="computeroutput"><span class="identifier">a</span>
- <span class="special">^</span> <span class="identifier">b</span></code>,
- matches one or more operands (<code class="computeroutput"><span class="identifier">a</span></code>,
- <code class="computeroutput"><span class="identifier">b</span></code>, ... etc.) in any order:
+ The permutation operator, <tt class="computeroutput"><span class="identifier">a</span>
+ <span class="special">^</span> <span class="identifier">b</span></tt>,
+ matches one or more operands (<tt class="computeroutput"><span class="identifier">a</span></tt>,
+ <tt class="computeroutput"><span class="identifier">b</span></tt>, ... etc.) in any order:
</p>
<pre class="programlisting"><span class="identifier">a</span> <span class="special">^</span> <span class="identifier">b</span> <span class="special">^</span> <span class="special">...</span>
</pre>
@@ -53,47 +61,47 @@
<pre class="programlisting"><span class="string">"a"</span><span class="special">,</span> <span class="string">"ab"</span><span class="special">,</span> <span class="string">"abc"</span><span class="special">,</span> <span class="string">"cba"</span><span class="special">,</span> <span class="string">"bca"</span> <span class="special">...</span> <span class="identifier">etc</span><span class="special">.</span>
</pre>
<a name="spirit.qi.reference.operator.permutation.header"></a><h6>
-<a name="id718482"></a>
- <a class="link" href="permutation.html#spirit.qi.reference.operator.permutation.header">Header</a>
+<a name="id526192"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/operator/permutation.hpp>
</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">qi_permutation</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.operator.permutation.model_of"></a><h6>
-<a name="id718556"></a>
- <a class="link" href="permutation.html#spirit.qi.reference.operator.permutation.model_of">Model
+<a name="id526306"></a>
+ <a href="permutation.html#spirit.qi.reference.operator.permutation.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/naryparser.html" title="NaryParser"><code class="computeroutput"><span class="identifier">NaryParser</span></code></a>
+ NaryParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code>,
- <code class="computeroutput"><span class="identifier">b</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt>,
+ <tt class="computeroutput"><span class="identifier">b</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
+ A Parser
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.operator.permutation.expression_semantics"></a><h6>
-<a name="id718634"></a>
- <a class="link" href="permutation.html#spirit.qi.reference.operator.permutation.expression_semantics">Expression
+<a name="id526419"></a>
+ <a href="permutation.html#spirit.qi.reference.operator.permutation.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/naryparser.html" title="NaryParser"><code class="computeroutput"><span class="identifier">NaryParser</span></code></a>.
+ is not defined in NaryParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -101,38 +109,30 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">^</span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
- Match <code class="computeroutput"><span class="identifier">a</span></code> or <code class="computeroutput"><span class="identifier">b</span></code> in any order. Each operand
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">^</span>
+ <span class="identifier">b</span></tt>
+ </p></td>
+<td><p>
+ Match <tt class="computeroutput"><span class="identifier">a</span></tt> or <tt class="computeroutput"><span class="identifier">b</span></tt> in any order. Each operand
may match zero or one time.
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.permutation.attributes"></a><h6>
-<a name="id719428"></a>
- <a class="link" href="permutation.html#spirit.qi.reference.operator.permutation.attributes">Attributes</a>
+<a name="id526571"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -141,26 +141,20 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">^</span>
+ <span class="identifier">b</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">^</span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</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">B</span> <span class="special">--></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">tuple</span><span class="special"><</span><span class="identifier">optional</span><span class="special"><</span><span class="identifier">A</span><span class="special">>,</span> <span class="identifier">optional</span><span class="special"><</span><span class="identifier">B</span><span class="special">></span> <span class="special">></span>
@@ -169,12 +163,12 @@
<span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span><span class="special">,</span> <span class="identifier">b</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></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">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.permutation.complexity"></a><h6>
-<a name="id719826"></a>
- <a class="link" href="permutation.html#spirit.qi.reference.operator.permutation.complexity">Complexity</a>
+<a name="id527096"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -189,8 +183,8 @@
</p>
</blockquote></div>
<a name="spirit.qi.reference.operator.permutation.example"></a><h6>
-<a name="id719850"></a>
- <a class="link" href="permutation.html#spirit.qi.reference.operator.permutation.example">Example</a>
+<a name="id527136"></a>
+ Example
</h6>
<p>
Some using declarations:
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/operator/plus.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/operator/plus.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/operator/plus.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,17 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Plus (+a)</title>
+<title> Plus (+a)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../operator.html" title="Operator">
-<link rel="prev" href="permutation.html" title="Permutation (a ^ b)">
-<link rel="next" href="sequence.html" title="Sequence (a >> b)">
+<link rel="previous" href="permutation.html" title=" Permutation
+ (a ^
+ b)">
+<link rel="next" href="sequence.html" title=" Sequence
+ (a >>
+ b)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,58 +26,61 @@
<div class="spirit-nav">
<a accesskey="p" href="permutation.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="sequence.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Plus (+a)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.operator.plus"></a><a class="link" href="plus.html" title="Plus (+a)"> Plus (<code class="computeroutput"><span class="special">+</span><span class="identifier">a</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.operator.plus"></a> Plus (+a)
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.operator.plus.description"></a><h6>
-<a name="id720016"></a>
- <a class="link" href="plus.html#spirit.qi.reference.operator.plus.description">Description</a>
+<a name="id527370"></a>
+ Description
</h6>
<p>
- The plus operator, <code class="computeroutput"><span class="special">+</span><span class="identifier">a</span></code>,
+ The plus operator, <tt class="computeroutput"><span class="special">+</span><span class="identifier">a</span></tt>,
is a unary operator that matches its operand one or more times.
</p>
<a name="spirit.qi.reference.operator.plus.header"></a><h6>
-<a name="id720044"></a>
- <a class="link" href="plus.html#spirit.qi.reference.operator.plus.header">Header</a>
+<a name="id527415"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/operator/plus.hpp>
</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">qi_plus</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.operator.plus.model_of"></a><h6>
-<a name="id720118"></a>
- <a class="link" href="plus.html#spirit.qi.reference.operator.plus.model_of">Model of</a>
+<a name="id527529"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a>
+ UnaryParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
+ A Parser
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.operator.plus.expression_semantics"></a><h6>
-<a name="id720186"></a>
- <a class="link" href="plus.html#spirit.qi.reference.operator.plus.expression_semantics">Expression
+<a name="id527629"></a>
+ <a href="plus.html#spirit.qi.reference.operator.plus.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/unaryparser.html" title="UnaryParser"><code class="computeroutput"><span class="identifier">UnaryParser</span></code></a>.
+ is not defined in UnaryParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -81,37 +88,29 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="special">+</span><span class="identifier">a</span></code>
- </p>
- </td>
-<td>
- <p>
- Match <code class="computeroutput"><span class="identifier">a</span></code> one or
+<td><p>
+ <tt class="computeroutput"><span class="special">+</span><span class="identifier">a</span></tt>
+ </p></td>
+<td><p>
+ Match <tt class="computeroutput"><span class="identifier">a</span></tt> one or
more times.
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.plus.attributes"></a><h6>
-<a name="id720282"></a>
- <a class="link" href="plus.html#spirit.qi.reference.operator.plus.attributes">Attributes</a>
+<a name="id527761"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -120,44 +119,38 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="special">+</span><span class="identifier">a</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="special">+</span><span class="identifier">a</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</span><span class="special">:</span> <span class="identifier">A</span> <span class="special">--></span> <span class="special">+</span><span class="identifier">a</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">a</span><span class="special">:</span> <span class="identifier">Unused</span> <span class="special">--></span> <span class="special">+</span><span class="identifier">a</span><span class="special">:</span> <span class="identifier">Unused</span></pre>
<p>
</p>
- </td>
+</td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.plus.complexity"></a><h6>
-<a name="id720450"></a>
- <a class="link" href="plus.html#spirit.qi.reference.operator.plus.complexity">Complexity</a>
+<a name="id527981"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
The overall complexity of the Plus is defined by the complexity of
- its subject, <code class="computeroutput"><span class="identifier">a</span></code>, multiplied
+ its subject, <tt class="computeroutput"><span class="identifier">a</span></tt>, multiplied
by the number of repetitions. The complexity of the Plus itself is
O(N), where N is the number successful repetitions.
</p>
@@ -165,8 +158,8 @@
</p>
</blockquote></div>
<a name="spirit.qi.reference.operator.plus.example"></a><h6>
-<a name="id720482"></a>
- <a class="link" href="plus.html#spirit.qi.reference.operator.plus.example">Example</a>
+<a name="id528033"></a>
+ Example
</h6>
<p>
</p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/operator/sequence.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/operator/sequence.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/operator/sequence.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,17 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Sequence (a >> b)</title>
+<title> Sequence
+ (a >>
+ b)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../operator.html" title="Operator">
-<link rel="prev" href="plus.html" title="Plus (+a)">
-<link rel="next" href="sequential_or.html" title="Sequential Or (a || b)">
+<link rel="previous" href="plus.html" title=" Plus (+a)">
+<link rel="next" href="sequential_or.html" title=" Sequential
+ Or (a ||
+ b)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,65 +26,70 @@
<div class="spirit-nav">
<a accesskey="p" href="plus.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="sequential_or.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Sequence (a >> b)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.operator.sequence"></a><a class="link" href="sequence.html" title="Sequence (a >> b)"> Sequence
- (<code class="computeroutput"><span class="identifier">a</span> <span class="special">>></span>
- <span class="identifier">b</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.operator.sequence"></a><a href="sequence.html" title=" Sequence
+ (a >>
+ b)"> Sequence
+ (<tt class="computeroutput"><span class="identifier">a</span> <span class="special">>></span>
+ <span class="identifier">b</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.operator.sequence.description"></a><h6>
-<a name="id720810"></a>
- <a class="link" href="sequence.html#spirit.qi.reference.operator.sequence.description">Description</a>
+<a name="id528488"></a>
+ Description
</h6>
<p>
- The sequence operator, <code class="computeroutput"><span class="identifier">a</span> <span class="special">>></span> <span class="identifier">b</span></code>,
- which parses two or more operands (<code class="computeroutput"><span class="identifier">a</span></code>,
- <code class="computeroutput"><span class="identifier">b</span></code>, ... etc.), in sequence:
+ The sequence operator, <tt class="computeroutput"><span class="identifier">a</span> <span class="special">>></span> <span class="identifier">b</span></tt>,
+ which parses two or more operands (<tt class="computeroutput"><span class="identifier">a</span></tt>,
+ <tt class="computeroutput"><span class="identifier">b</span></tt>, ... etc.), in sequence:
</p>
<pre class="programlisting"><span class="identifier">a</span> <span class="special">>></span> <span class="identifier">b</span> <span class="special">>></span> <span class="special">...</span>
</pre>
<a name="spirit.qi.reference.operator.sequence.header"></a><h6>
-<a name="id720886"></a>
- <a class="link" href="sequence.html#spirit.qi.reference.operator.sequence.header">Header</a>
+<a name="id528600"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/operator/sequence.hpp>
</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">qi_sequence</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.operator.sequence.model_of"></a><h6>
-<a name="id720960"></a>
- <a class="link" href="sequence.html#spirit.qi.reference.operator.sequence.model_of">Model
+<a name="id528715"></a>
+ <a href="sequence.html#spirit.qi.reference.operator.sequence.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/naryparser.html" title="NaryParser"><code class="computeroutput"><span class="identifier">NaryParser</span></code></a>
+ NaryParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code>,
- <code class="computeroutput"><span class="identifier">b</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt>,
+ <tt class="computeroutput"><span class="identifier">b</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
+ A Parser
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.operator.sequence.expression_semantics"></a><h6>
-<a name="id721038"></a>
- <a class="link" href="sequence.html#spirit.qi.reference.operator.sequence.expression_semantics">Expression
+<a name="id528826"></a>
+ <a href="sequence.html#spirit.qi.reference.operator.sequence.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/naryparser.html" title="NaryParser"><code class="computeroutput"><span class="identifier">NaryParser</span></code></a>.
+ is not defined in NaryParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -88,38 +97,30 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">>></span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
- Match <code class="computeroutput"><span class="identifier">a</span></code> followed
- by <code class="computeroutput"><span class="identifier">b</span></code>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">>></span>
+ <span class="identifier">b</span></tt>
+ </p></td>
+<td><p>
+ Match <tt class="computeroutput"><span class="identifier">a</span></tt> followed
+ by <tt class="computeroutput"><span class="identifier">b</span></tt>.
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.sequence.attributes"></a><h6>
-<a name="id721149"></a>
- <a class="link" href="sequence.html#spirit.qi.reference.operator.sequence.attributes">Attributes</a>
+<a name="id528977"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -128,26 +129,20 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">>></span>
+ <span class="identifier">b</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">>></span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</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">B</span> <span class="special">--></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">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span>
@@ -161,12 +156,12 @@
<span class="identifier">a</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">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span> <span class="special">--></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">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></pre>
<p>
</p>
- </td>
+</td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.sequence.complexity"></a><h6>
-<a name="id722928"></a>
- <a class="link" href="sequence.html#spirit.qi.reference.operator.sequence.complexity">Complexity</a>
+<a name="id529875"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -180,8 +175,8 @@
</p>
</blockquote></div>
<a name="spirit.qi.reference.operator.sequence.example"></a><h6>
-<a name="id722952"></a>
- <a class="link" href="sequence.html#spirit.qi.reference.operator.sequence.example">Example</a>
+<a name="id529916"></a>
+ Example
</h6>
<p>
Some using declarations:
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/operator/sequential_or.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/operator/sequential_or.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/operator/sequential_or.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Sequential Or (a || b)</title>
+<title> Sequential
+ Or (a ||
+ b)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../operator.html" title="Operator">
-<link rel="prev" href="sequence.html" title="Sequence (a >> b)">
+<link rel="previous" href="sequence.html" title=" Sequence
+ (a >>
+ b)">
<link rel="next" href="../string.html" title="String">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,71 +26,76 @@
<div class="spirit-nav">
<a accesskey="p" href="sequence.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../operator.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../string.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Sequential Or (a || b)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.operator.sequential_or"></a><a class="link" href="sequential_or.html" title="Sequential Or (a || b)"> Sequential
- Or (<code class="computeroutput"><span class="identifier">a</span> <span class="special">||</span>
- <span class="identifier">b</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.operator.sequential_or"></a><a href="sequential_or.html" title=" Sequential
+ Or (a ||
+ b)"> Sequential
+ Or (<tt class="computeroutput"><span class="identifier">a</span> <span class="special">||</span>
+ <span class="identifier">b</span></tt>)</a>
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.operator.sequential_or.description"></a><h6>
-<a name="id723680"></a>
- <a class="link" href="sequential_or.html#spirit.qi.reference.operator.sequential_or.description">Description</a>
+<a name="id530905"></a>
+ Description
</h6>
<p>
- The sequential-or operator, <code class="computeroutput"><span class="identifier">a</span>
- <span class="special">||</span> <span class="identifier">b</span></code>,
- where the expression <code class="computeroutput"><span class="identifier">a</span> <span class="special">||</span> <span class="identifier">b</span></code>
- reads as match <code class="computeroutput"><span class="identifier">a</span></code> or
- <code class="computeroutput"><span class="identifier">b</span></code> and in sequence. That
- is, if both <code class="computeroutput"><span class="identifier">a</span></code> and <code class="computeroutput"><span class="identifier">b</span></code> match, it must be in sequence; this
- is equivalent to <code class="computeroutput"><span class="identifier">a</span> <span class="special">>></span>
+ The sequential-or operator, <tt class="computeroutput"><span class="identifier">a</span>
+ <span class="special">||</span> <span class="identifier">b</span></tt>,
+ where the expression <tt class="computeroutput"><span class="identifier">a</span> <span class="special">||</span> <span class="identifier">b</span></tt>
+ reads as match <tt class="computeroutput"><span class="identifier">a</span></tt> or
+ <tt class="computeroutput"><span class="identifier">b</span></tt> and in sequence. That
+ is, if both <tt class="computeroutput"><span class="identifier">a</span></tt> and <tt class="computeroutput"><span class="identifier">b</span></tt> match, it must be in sequence; this
+ is equivalent to <tt class="computeroutput"><span class="identifier">a</span> <span class="special">>></span>
<span class="special">-</span><span class="identifier">b</span>
- <span class="special">|</span> <span class="identifier">b</span></code>:
+ <span class="special">|</span> <span class="identifier">b</span></tt>:
</p>
<pre class="programlisting"><span class="identifier">a</span> <span class="special">||</span> <span class="identifier">b</span> <span class="special">||</span> <span class="special">...</span>
</pre>
<a name="spirit.qi.reference.operator.sequential_or.header"></a><h6>
-<a name="id723816"></a>
- <a class="link" href="sequential_or.html#spirit.qi.reference.operator.sequential_or.header">Header</a>
+<a name="id531108"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/operator/sequential_or.hpp>
</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">qi_sequential_or</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.operator.sequential_or.model_of"></a><h6>
-<a name="id723891"></a>
- <a class="link" href="sequential_or.html#spirit.qi.reference.operator.sequential_or.model_of">Model
+<a name="id531223"></a>
+ <a href="sequential_or.html#spirit.qi.reference.operator.sequential_or.model_of">Model
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/naryparser.html" title="NaryParser"><code class="computeroutput"><span class="identifier">NaryParser</span></code></a>
+ NaryParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code>,
- <code class="computeroutput"><span class="identifier">b</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">a</span></tt>,
+ <tt class="computeroutput"><span class="identifier">b</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../parser_concepts/parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
+ A Parser
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.operator.sequential_or.expression_semantics"></a><h6>
-<a name="id723969"></a>
- <a class="link" href="sequential_or.html#spirit.qi.reference.operator.sequential_or.expression_semantics">Expression
+<a name="id531336"></a>
+ <a href="sequential_or.html#spirit.qi.reference.operator.sequential_or.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/naryparser.html" title="NaryParser"><code class="computeroutput"><span class="identifier">NaryParser</span></code></a>.
+ is not defined in NaryParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -94,40 +103,32 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">||</span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
- Match <code class="computeroutput"><span class="identifier">a</span></code> or <code class="computeroutput"><span class="identifier">b</span></code> in sequence. equivalent to
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">>></span>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">||</span>
+ <span class="identifier">b</span></tt>
+ </p></td>
+<td><p>
+ Match <tt class="computeroutput"><span class="identifier">a</span></tt> or <tt class="computeroutput"><span class="identifier">b</span></tt> in sequence. equivalent to
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">>></span>
<span class="special">-</span><span class="identifier">b</span>
- <span class="special">|</span> <span class="identifier">b</span></code>
- </p>
- </td>
+ <span class="special">|</span> <span class="identifier">b</span></tt>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.sequential_or.attributes"></a><h6>
-<a name="id724109"></a>
- <a class="link" href="sequential_or.html#spirit.qi.reference.operator.sequential_or.attributes">Attributes</a>
+<a name="id531527"></a>
+ Attributes
</h6>
<p>
- See <a class="link" href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
+ See <a href="../../quick_reference/compound_attribute_rules.html#spirit.qi.quick_reference.compound_attribute_rules.notation">Compound
Attribute Notation</a>.
</p>
<div class="informaltable"><table class="table">
@@ -136,26 +137,20 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">a</span> <span class="special">||</span>
+ <span class="identifier">b</span></tt>
+ </p></td>
<td>
- <p>
- <code class="computeroutput"><span class="identifier">a</span> <span class="special">||</span>
- <span class="identifier">b</span></code>
- </p>
- </td>
-<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">a</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">B</span> <span class="special">--></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">tuple</span><span class="special"><</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">></span>
@@ -169,12 +164,12 @@
<span class="identifier">a</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">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span> <span class="special">--></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">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></pre>
<p>
</p>
- </td>
+</td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.operator.sequential_or.complexity"></a><h6>
-<a name="id724791"></a>
- <a class="link" href="sequential_or.html#spirit.qi.reference.operator.sequential_or.complexity">Complexity</a>
+<a name="id532424"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -189,8 +184,8 @@
</p>
</blockquote></div>
<a name="spirit.qi.reference.operator.sequential_or.example"></a><h6>
-<a name="id725366"></a>
- <a class="link" href="sequential_or.html#spirit.qi.reference.operator.sequential_or.example">Example</a>
+<a name="id532464"></a>
+ Example
</h6>
<p>
Some using declarations:
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Parser Concepts</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="../reference.html" title="Reference">
+<link rel="previous" href="../reference.html" title="Reference">
<link rel="next" href="parser_concepts/parser.html" title="Parser">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,10 +22,13 @@
<div class="spirit-nav">
<a accesskey="p" href="../reference.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="parser_concepts/parser.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Parser Concepts">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.reference.parser_concepts"></a><a class="link" href="parser_concepts.html" title="Parser Concepts">Parser Concepts</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.reference.parser_concepts"></a>Parser Concepts
+</h4></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section">Parser</span></dt>
<dt><span class="section">PrimitiveParser</span></dt>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/binaryparser.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/binaryparser.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/binaryparser.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>BinaryParser</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../parser_concepts.html" title="Parser Concepts">
-<link rel="prev" href="unaryparser.html" title="UnaryParser">
+<link rel="previous" href="unaryparser.html" title="UnaryParser">
<link rel="next" href="naryparser.html" title="NaryParser">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,54 +22,57 @@
<div class="spirit-nav">
<a accesskey="p" href="unaryparser.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../parser_concepts.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="naryparser.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="BinaryParser">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.parser_concepts.binaryparser"></a><a class="link" href="binaryparser.html" title="BinaryParser">BinaryParser</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.parser_concepts.binaryparser"></a>BinaryParser
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.parser_concepts.binaryparser.description"></a><h6>
-<a name="id649081"></a>
- <a class="link" href="binaryparser.html#spirit.qi.reference.parser_concepts.binaryparser.description">Description</a>
+<a name="id461463"></a>
+ Description
</h6>
<p>
<span class="emphasis"><em>BinaryParser</em></span> is a composite parser that has a two
- subjects, <code class="computeroutput"><span class="identifier">left</span></code> and <code class="computeroutput"><span class="identifier">right</span></code>. The BinaryParser allows its
- subjects to be treated in the same way as a single instance of a <a class="link" href="parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
+ subjects, <tt class="computeroutput"><span class="identifier">left</span></tt> and <tt class="computeroutput"><span class="identifier">right</span></tt>. The BinaryParser allows its
+ subjects to be treated in the same way as a single instance of a Parser
following the Composite Design Pattern.
</p>
<a name="spirit.qi.reference.parser_concepts.binaryparser.refinement_of"></a><h6>
-<a name="id649133"></a>
- <a class="link" href="binaryparser.html#spirit.qi.reference.parser_concepts.binaryparser.refinement_of">Refinement
+<a name="id461541"></a>
+ <a href="binaryparser.html#spirit.qi.reference.parser_concepts.binaryparser.refinement_of">Refinement
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
+ Parser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">p</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">p</span></tt></span></dt>
<dd><p>
A BinaryParser.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">P</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">P</span></tt></span></dt>
<dd><p>
A BinaryParser type.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.parser_concepts.binaryparser.valid_expressions"></a><h6>
-<a name="id649212"></a>
- <a class="link" href="binaryparser.html#spirit.qi.reference.parser_concepts.binaryparser.valid_expressions">Valid
+<a name="id461649"></a>
+ <a href="binaryparser.html#spirit.qi.reference.parser_concepts.binaryparser.valid_expressions">Valid
Expressions</a>
</h6>
<p>
- In addition to the requirements defined in <a class="link" href="parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>, for any BinaryParser
+ In addition to the requirements defined in Parser, for any BinaryParser
the following must be met:
</p>
<div class="informaltable"><table class="table">
@@ -79,62 +82,44 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Return type
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">left</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">left</span></tt>
+ </p></td>
+<td><p>
Left parser.
- </p>
- </td>
-<td>
- <p>
- <a class="link" href="parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
- </p>
- </td>
+ </p></td>
+<td><p>
+ Parser
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">right</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">right</span></tt>
+ </p></td>
+<td><p>
Right parser.
- </p>
- </td>
-<td>
- <p>
- <a class="link" href="parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
- </p>
- </td>
+ </p></td>
+<td><p>
+ Parser
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.parser_concepts.binaryparser.type_expressions"></a><h6>
-<a name="id649373"></a>
- <a class="link" href="binaryparser.html#spirit.qi.reference.parser_concepts.binaryparser.type_expressions">Type
+<a name="id461869"></a>
+ <a href="binaryparser.html#spirit.qi.reference.parser_concepts.binaryparser.type_expressions">Type
Expressions</a>
</h6>
<div class="informaltable"><table class="table">
@@ -143,82 +128,66 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">P</span><span class="special">::</span><span class="identifier">left_type</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">P</span><span class="special">::</span><span class="identifier">left_type</span></tt>
+ </p></td>
+<td><p>
The left parser type.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">P</span><span class="special">::</span><span class="identifier">right_type</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">P</span><span class="special">::</span><span class="identifier">right_type</span></tt>
+ </p></td>
+<td><p>
The right parser type.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_binary_parser</span><span class="special"><</span><span class="identifier">P</span><span class="special">>::</span><span class="identifier">type</span></code>
- </p>
- </td>
-<td>
- <p>
- Metafunction that evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
- if a certain type, <code class="computeroutput"><span class="identifier">P</span></code>
- is a BinaryParser, <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_binary_parser</span><span class="special"><</span><span class="identifier">P</span><span class="special">>::</span><span class="identifier">type</span></tt>
+ </p></td>
+<td><p>
+ Metafunction that evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
+ if a certain type, <tt class="computeroutput"><span class="identifier">P</span></tt>
+ is a BinaryParser, <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>
otherwise (See <a href="../../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
Boolean Constant</a>).
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.parser_concepts.binaryparser.invariants"></a><h6>
-<a name="id649574"></a>
- <a class="link" href="binaryparser.html#spirit.qi.reference.parser_concepts.binaryparser.invariants">Invariants</a>
+<a name="id462134"></a>
+ Invariants
</h6>
<p>
- For any BinaryParser, <code class="computeroutput"><span class="identifier">P</span></code>,
+ For any BinaryParser, <tt class="computeroutput"><span class="identifier">P</span></tt>,
the following invariants always hold:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
-<code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_parser</span><span class="special"><</span><span class="identifier">P</span><span class="special">::</span><span class="identifier">left_type</span><span class="special">>::</span><span class="identifier">type</span></code> evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
+<div class="itemizedlist"><ul type="disc">
+<li>
+<tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_parser</span><span class="special"><</span><span class="identifier">P</span><span class="special">::</span><span class="identifier">left_type</span><span class="special">>::</span><span class="identifier">type</span></tt> evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
</li>
-<li class="listitem">
-<code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_parser</span><span class="special"><</span><span class="identifier">P</span><span class="special">::</span><span class="identifier">right_type</span><span class="special">>::</span><span class="identifier">type</span></code> evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
+<li>
+<tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_parser</span><span class="special"><</span><span class="identifier">P</span><span class="special">::</span><span class="identifier">right_type</span><span class="special">>::</span><span class="identifier">type</span></tt> evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
</li>
</ul></div>
<a name="spirit.qi.reference.parser_concepts.binaryparser.models"></a><h6>
-<a name="id649713"></a>
- <a class="link" href="binaryparser.html#spirit.qi.reference.parser_concepts.binaryparser.models">Models</a>
+<a name="id462334"></a>
+ Models
</h6>
<p>
- <span class="bold"><strong>FIXME</strong></span> Add links to models of BinaryParser
+ <span class="bold"><b>FIXME</b></span> Add links to models of BinaryParser
concept
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/naryparser.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/naryparser.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/naryparser.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>NaryParser</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../parser_concepts.html" title="Parser Concepts">
-<link rel="prev" href="binaryparser.html" title="BinaryParser">
+<link rel="previous" href="binaryparser.html" title="BinaryParser">
<link rel="next" href="../basics.html" title="Basics">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,54 +22,57 @@
<div class="spirit-nav">
<a accesskey="p" href="binaryparser.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../parser_concepts.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../basics.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="NaryParser">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.parser_concepts.naryparser"></a><a class="link" href="naryparser.html" title="NaryParser">NaryParser</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.parser_concepts.naryparser"></a>NaryParser
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.parser_concepts.naryparser.description"></a><h6>
-<a name="id649748"></a>
- <a class="link" href="naryparser.html#spirit.qi.reference.parser_concepts.naryparser.description">Description</a>
+<a name="id462388"></a>
+ Description
</h6>
<p>
<span class="emphasis"><em>NaryParser</em></span> is a composite parser that has one or
more subjects. The NaryParser allows its subjects to be treated in the
- same way as a single instance of a <a class="link" href="parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a> following the Composite
+ same way as a single instance of a Parser following the Composite
Design Pattern.
</p>
<a name="spirit.qi.reference.parser_concepts.naryparser.refinement_of"></a><h6>
-<a name="id649784"></a>
- <a class="link" href="naryparser.html#spirit.qi.reference.parser_concepts.naryparser.refinement_of">Refinement
+<a name="id462442"></a>
+ <a href="naryparser.html#spirit.qi.reference.parser_concepts.naryparser.refinement_of">Refinement
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
+ Parser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">p</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">p</span></tt></span></dt>
<dd><p>
A NaryParser.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">P</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">P</span></tt></span></dt>
<dd><p>
A NaryParser type.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.parser_concepts.naryparser.valid_expressions"></a><h6>
-<a name="id649863"></a>
- <a class="link" href="naryparser.html#spirit.qi.reference.parser_concepts.naryparser.valid_expressions">Valid
+<a name="id462549"></a>
+ <a href="naryparser.html#spirit.qi.reference.parser_concepts.naryparser.valid_expressions">Valid
Expressions</a>
</h6>
<p>
- In addition to the requirements defined in <a class="link" href="parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>, for any NaryParser the
+ In addition to the requirements defined in Parser, for any NaryParser the
following must be met:
</p>
<div class="informaltable"><table class="table">
@@ -79,44 +82,32 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Return type
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">elements</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">elements</span></tt>
+ </p></td>
+<td><p>
The tuple of elements.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
A Boost.Fusion
- Sequence of <a class="link" href="parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a> types.
- </p>
- </td>
+ Sequence of Parser types.
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.parser_concepts.naryparser.type_expressions"></a><h6>
-<a name="id651830"></a>
- <a class="link" href="naryparser.html#spirit.qi.reference.parser_concepts.naryparser.type_expressions">Type
+<a name="id462714"></a>
+ <a href="naryparser.html#spirit.qi.reference.parser_concepts.naryparser.type_expressions">Type
Expressions</a>
</h6>
<div class="informaltable"><table class="table">
@@ -125,66 +116,54 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">elements_type</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">elements_type</span></tt>
+ </p></td>
+<td><p>
Elements tuple type.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_nary_parser</span><span class="special"><</span><span class="identifier">P</span><span class="special">>::</span><span class="identifier">type</span></code>
- </p>
- </td>
-<td>
- <p>
- Metafunction that evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
- if a certain type, <code class="computeroutput"><span class="identifier">P</span></code>
- is a NaryParser, <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_nary_parser</span><span class="special"><</span><span class="identifier">P</span><span class="special">>::</span><span class="identifier">type</span></tt>
+ </p></td>
+<td><p>
+ Metafunction that evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
+ if a certain type, <tt class="computeroutput"><span class="identifier">P</span></tt>
+ is a NaryParser, <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>
otherwise (See <a href="../../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
Boolean Constant</a>).
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.parser_concepts.naryparser.invariants"></a><h6>
-<a name="id652001"></a>
- <a class="link" href="naryparser.html#spirit.qi.reference.parser_concepts.naryparser.invariants">Invariants</a>
+<a name="id462939"></a>
+ Invariants
</h6>
<p>
- For each element, <code class="computeroutput"><span class="identifier">E</span></code>,
- in any NaryParser, <code class="computeroutput"><span class="identifier">P</span></code>,
+ For each element, <tt class="computeroutput"><span class="identifier">E</span></tt>,
+ in any NaryParser, <tt class="computeroutput"><span class="identifier">P</span></tt>,
the following invariant always holds:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
-<code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_parser</span><span class="special"><</span><span class="identifier">E</span><span class="special">>::</span><span class="identifier">type</span></code> evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
+<div class="itemizedlist"><ul type="disc"><li>
+<tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_parser</span><span class="special"><</span><span class="identifier">E</span><span class="special">>::</span><span class="identifier">type</span></tt> evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
</li></ul></div>
<a name="spirit.qi.reference.parser_concepts.naryparser.models"></a><h6>
-<a name="id652086"></a>
- <a class="link" href="naryparser.html#spirit.qi.reference.parser_concepts.naryparser.models">Models</a>
+<a name="id463065"></a>
+ Models
</h6>
<p>
- <span class="bold"><strong>FIXME</strong></span> Add links to models of NaryParser
+ <span class="bold"><b>FIXME</b></span> Add links to models of NaryParser
concept
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/parser.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/parser.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/parser.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Parser</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../parser_concepts.html" title="Parser Concepts">
-<link rel="prev" href="../parser_concepts.html" title="Parser Concepts">
+<link rel="previous" href="../parser_concepts.html" title="Parser Concepts">
<link rel="next" href="primitiveparser.html" title="PrimitiveParser">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,73 +22,76 @@
<div class="spirit-nav">
<a accesskey="p" href="../parser_concepts.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../parser_concepts.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="primitiveparser.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Parser">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.parser_concepts.parser"></a><a class="link" href="parser.html" title="Parser">Parser</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.parser_concepts.parser"></a>Parser
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.parser_concepts.parser.description"></a><h6>
-<a name="id647208"></a>
- <a class="link" href="parser.html#spirit.qi.reference.parser_concepts.parser.description">Description</a>
+<a name="id459013"></a>
+ Description
</h6>
<p>
The <span class="emphasis"><em>Parser</em></span> is the most fundamental concept. A Parser
- has a member function, <code class="computeroutput"><span class="identifier">parse</span></code>,
- that accepts a first-last ForwardIterator
pair and returns
+ has a member function, <tt class="computeroutput"><span class="identifier">parse</span></tt>,
+ that accepts a first-last ForwardIterator pair and returns
bool as its result. The iterators delimit the data being parsed. The
- Parser's <code class="computeroutput"><span class="identifier">parse</span></code> member
- function returns <code class="computeroutput"><span class="keyword">true</span></code> if
+ Parser's <tt class="computeroutput"><span class="identifier">parse</span></tt> member
+ function returns <tt class="computeroutput"><span class="keyword">true</span></tt> if
the parse succeeds, in which case the first iterator is advanced accordingly.
Each Parser can represent a specific pattern or algorithm, or it can
be a more complex parser formed as a composition of other Parsers.
</p>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">p</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">p</span></tt></span></dt>
<dd><p>
- A <code class="computeroutput"><span class="identifier">Parser</span></code>.
+ A <tt class="computeroutput"><span class="identifier">Parser</span></tt>.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">P</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">P</span></tt></span></dt>
<dd><p>
- A <code class="computeroutput"><span class="identifier">Parser</span></code> type.
+ A <tt class="computeroutput"><span class="identifier">Parser</span></tt> type.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Iter</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Iter</span></tt></span></dt>
<dd><p>
- a ForwardIterator
type.
+ a ForwardIterator type.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">f</span></code>,
- <code class="computeroutput"><span class="identifier">l</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">f</span></tt>,
+ <tt class="computeroutput"><span class="identifier">l</span></tt></span></dt>
<dd><p>
- ForwardIterator
. first/last
+ ForwardIterator. first/last
iterator pair.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Context</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Context</span></tt></span></dt>
<dd><p>
The parser's Context type.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">context</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">context</span></tt></span></dt>
<dd><p>
- The parser's Context, or <code class="computeroutput"><span class="identifier">unused</span></code>.
+ The parser's Context, or <tt class="computeroutput"><span class="identifier">unused</span></tt>.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">skip</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">skip</span></tt></span></dt>
<dd><p>
- A skip Parser, or <code class="computeroutput"><span class="identifier">unused</span></code>.
+ A skip Parser, or <tt class="computeroutput"><span class="identifier">unused</span></tt>.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">attrib</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">attrib</span></tt></span></dt>
<dd><p>
- A Compatible Attribute, or <code class="computeroutput"><span class="identifier">unused</span></code>.
+ A Compatible Attribute, or <tt class="computeroutput"><span class="identifier">unused</span></tt>.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.parser_concepts.parser.valid_expressions"></a><h6>
-<a name="id647478"></a>
- <a class="link" href="parser.html#spirit.qi.reference.parser_concepts.parser.valid_expressions">Valid
+<a name="id459400"></a>
+ <a href="parser.html#spirit.qi.reference.parser_concepts.parser.valid_expressions">Valid
Expressions</a>
</h6>
<p>
- In the expressions below, the behavior of the parser, <code class="computeroutput"><span class="identifier">p</span></code>,
- how <code class="computeroutput"><span class="identifier">skip</span></code> and <code class="computeroutput"><span class="identifier">attrib</span></code> are handled by <code class="computeroutput"><span class="identifier">p</span></code>, are left unspecified in the base
- <code class="computeroutput"><span class="identifier">Parser</span></code> concept. These
+ In the expressions below, the behavior of the parser, <tt class="computeroutput"><span class="identifier">p</span></tt>,
+ how <tt class="computeroutput"><span class="identifier">skip</span></tt> and <tt class="computeroutput"><span class="identifier">attrib</span></tt> are handled by <tt class="computeroutput"><span class="identifier">p</span></tt>, are left unspecified in the base
+ <tt class="computeroutput"><span class="identifier">Parser</span></tt> concept. These
are specified in subsequent, more refined concepts and by the actual
models thereof.
</p>
@@ -102,67 +105,51 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Return type
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
<td>
- <p>
+<p>
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">p</span><span class="special">.</span><span class="identifier">parse</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span> <span class="identifier">l</span><span class="special">,</span> <span class="identifier">context</span><span class="special">,</span> <span class="identifier">skip</span><span class="special">,</span> <span class="identifier">attr</span><span class="special">)</span></pre>
<p>
</p>
- </td>
-<td>
- <p>
- Match the input sequence starting from <code class="computeroutput"><span class="identifier">f</span></code>.
- Return <code class="computeroutput"><span class="keyword">true</span></code> if successful,
- otherwise return <code class="computeroutput"><span class="keyword">false</span></code>.
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">bool</span></code>
- </p>
- </td>
+</td>
+<td><p>
+ Match the input sequence starting from <tt class="computeroutput"><span class="identifier">f</span></tt>.
+ Return <tt class="computeroutput"><span class="keyword">true</span></tt> if successful,
+ otherwise return <tt class="computeroutput"><span class="keyword">false</span></tt>.
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">bool</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">what</span><span class="special">(</span><span class="identifier">context</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">what</span><span class="special">(</span><span class="identifier">context</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
Get information about a Parser.
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">info</span></code>
- </p>
- </td>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">info</span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.parser_concepts.parser.type_expressions"></a><h6>
-<a name="id647887"></a>
- <a class="link" href="parser.html#spirit.qi.reference.parser_concepts.parser.type_expressions">Type
+<a name="id459764"></a>
+ <a href="parser.html#spirit.qi.reference.parser_concepts.parser.type_expressions">Type
Expressions</a>
</h6>
<div class="informaltable"><table class="table">
@@ -171,85 +158,73 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">P</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">attribute</span><span class="special"><</span><span class="identifier">Context</span><span class="special">,</span> <span class="identifier">Iter</span><span class="special">>::</span><span class="identifier">type</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">P</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">attribute</span><span class="special"><</span><span class="identifier">Context</span><span class="special">,</span> <span class="identifier">Iter</span><span class="special">>::</span><span class="identifier">type</span></tt>
+ </p></td>
+<td><p>
The Parser's expected attribute.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_parser</span><span class="special"><</span><span class="identifier">P</span><span class="special">>::</span><span class="identifier">type</span></code>
- </p>
- </td>
-<td>
- <p>
- Metafunction that evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
- if a certain type, <code class="computeroutput"><span class="identifier">P</span></code>
- is a Parser, <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_parser</span><span class="special"><</span><span class="identifier">P</span><span class="special">>::</span><span class="identifier">type</span></tt>
+ </p></td>
+<td><p>
+ Metafunction that evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
+ if a certain type, <tt class="computeroutput"><span class="identifier">P</span></tt>
+ is a Parser, <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>
otherwise (See <a href="../../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
Boolean Constant</a>).
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.parser_concepts.parser.postcondition"></a><h6>
-<a name="id648085"></a>
- <a class="link" href="parser.html#spirit.qi.reference.parser_concepts.parser.postcondition">Postcondition</a>
+<a name="id460029"></a>
+ Postcondition
</h6>
<p>
- Upon return from <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">parse</span></code> the following post conditions
+ Upon return from <tt class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">parse</span></tt> the following post conditions
should hold:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
- On a successful match, <code class="computeroutput"><span class="identifier">f</span></code>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ On a successful match, <tt class="computeroutput"><span class="identifier">f</span></tt>
is positioned one past the first non-matching character/token.
</li>
-<li class="listitem">
- On a failed match, if a <code class="computeroutput"><span class="identifier">skip</span></code>
- parser is <code class="computeroutput"><span class="identifier">unused</span></code>,
- <code class="computeroutput"><span class="identifier">f</span></code> is restored to its
+<li>
+ On a failed match, if a <tt class="computeroutput"><span class="identifier">skip</span></tt>
+ parser is <tt class="computeroutput"><span class="identifier">unused</span></tt>,
+ <tt class="computeroutput"><span class="identifier">f</span></tt> is restored to its
original position prior to entry.
</li>
-<li class="listitem">
- On a failed match, if a <code class="computeroutput"><span class="identifier">skip</span></code>
- parser is not <code class="computeroutput"><span class="identifier">unused</span></code>,
- <code class="computeroutput"><span class="identifier">f</span></code> is positioned one
- past the first character/token not matching <code class="computeroutput"><span class="identifier">skip</span></code>.
+<li>
+ On a failed match, if a <tt class="computeroutput"><span class="identifier">skip</span></tt>
+ parser is not <tt class="computeroutput"><span class="identifier">unused</span></tt>,
+ <tt class="computeroutput"><span class="identifier">f</span></tt> is positioned one
+ past the first character/token not matching <tt class="computeroutput"><span class="identifier">skip</span></tt>.
</li>
-<li class="listitem">
- On a failed match, <code class="computeroutput"><span class="identifier">attrib</span></code>
+<li>
+ On a failed match, <tt class="computeroutput"><span class="identifier">attrib</span></tt>
is left untouched.
</li>
-<li class="listitem">
- No post-skips: trailing <code class="computeroutput"><span class="identifier">skip</span></code>
+<li>
+ No post-skips: trailing <tt class="computeroutput"><span class="identifier">skip</span></tt>
characters/tokens will not be skipped.
</li>
</ul></div>
<a name="spirit.qi.reference.parser_concepts.parser.models"></a><h6>
-<a name="id648212"></a>
- <a class="link" href="parser.html#spirit.qi.reference.parser_concepts.parser.models">Models</a>
+<a name="id460231"></a>
+ Models
</h6>
<p>
All parsers in Spirit.Qi are models of the <span class="emphasis"><em>Parser</em></span>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/primitiveparser.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/primitiveparser.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/primitiveparser.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>PrimitiveParser</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../parser_concepts.html" title="Parser Concepts">
-<link rel="prev" href="parser.html" title="Parser">
+<link rel="previous" href="parser.html" title="Parser">
<link rel="next" href="unaryparser.html" title="UnaryParser">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,49 +22,52 @@
<div class="spirit-nav">
<a accesskey="p" href="parser.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../parser_concepts.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="unaryparser.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="PrimitiveParser">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.parser_concepts.primitiveparser"></a><a class="link" href="primitiveparser.html" title="PrimitiveParser">PrimitiveParser</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.parser_concepts.primitiveparser"></a>PrimitiveParser
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.parser_concepts.primitiveparser.description"></a><h6>
-<a name="id648247"></a>
- <a class="link" href="primitiveparser.html#spirit.qi.reference.parser_concepts.primitiveparser.description">Description</a>
+<a name="id460285"></a>
+ Description
</h6>
<p>
<span class="emphasis"><em>PrimitiveParser</em></span> is the most basic building block
that the client uses to build more complex parsers.
</p>
<a name="spirit.qi.reference.parser_concepts.primitiveparser.refinement_of"></a><h6>
-<a name="id648270"></a>
- <a class="link" href="primitiveparser.html#spirit.qi.reference.parser_concepts.primitiveparser.refinement_of">Refinement
+<a name="id460321"></a>
+ <a href="primitiveparser.html#spirit.qi.reference.parser_concepts.primitiveparser.refinement_of">Refinement
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
+ Parser
</p>
<p>
</p>
</blockquote></div>
<a name="spirit.qi.reference.parser_concepts.primitiveparser.pre_skip"></a><h6>
-<a name="id648306"></a>
- <a class="link" href="primitiveparser.html#spirit.qi.reference.parser_concepts.primitiveparser.pre_skip">Pre-skip</a>
+<a name="id460376"></a>
+ Pre-skip
</h6>
<p>
- Upon entry to the <code class="computeroutput"><span class="identifier">parse</span></code>
+ Upon entry to the <tt class="computeroutput"><span class="identifier">parse</span></tt>
member function, a PrimitiveParser is required to do a pre-skip. Leading
- <code class="computeroutput"><span class="identifier">skip</span></code> characters/tokens
+ <tt class="computeroutput"><span class="identifier">skip</span></tt> characters/tokens
will be skipped prior to parsing. Only PrimitiveParsers are required
to perform this pre-skip. This is typically carried out through a call
- to <code class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">skip_over</span></code>:
+ to <tt class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">skip_over</span></tt>:
</p>
<pre class="programlisting"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">skip_over</span><span class="special">(</span><span class="identifier">f</span><span class="special">,</span> <span class="identifier">l</span><span class="special">,</span> <span class="identifier">skip</span><span class="special">);</span>
</pre>
<a name="spirit.qi.reference.parser_concepts.primitiveparser.type_expressions"></a><h6>
-<a name="id648397"></a>
- <a class="link" href="primitiveparser.html#spirit.qi.reference.parser_concepts.primitiveparser.type_expressions">Type
+<a name="id460514"></a>
+ <a href="primitiveparser.html#spirit.qi.reference.parser_concepts.primitiveparser.type_expressions">Type
Expressions</a>
</h6>
<div class="informaltable"><table class="table">
@@ -73,40 +76,32 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_primitive_parser</span><span class="special"><</span><span class="identifier">P</span><span class="special">>::</span><span class="identifier">type</span></code>
- </p>
- </td>
-<td>
- <p>
- Metafunction that evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
- if a certain type, <code class="computeroutput"><span class="identifier">P</span></code>,
- is a PrimitiveParser, <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_primitive_parser</span><span class="special"><</span><span class="identifier">P</span><span class="special">>::</span><span class="identifier">type</span></tt>
+ </p></td>
+<td><p>
+ Metafunction that evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
+ if a certain type, <tt class="computeroutput"><span class="identifier">P</span></tt>,
+ is a PrimitiveParser, <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>
otherwise (See <a href="../../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
Boolean Constant</a>).
- </p>
- </td>
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.parser_concepts.primitiveparser.models"></a><h6>
-<a name="id648534"></a>
- <a class="link" href="primitiveparser.html#spirit.qi.reference.parser_concepts.primitiveparser.models">Models</a>
+<a name="id460701"></a>
+ Models
</h6>
<p>
- <span class="bold"><strong>FIXME</strong></span> Add links to <span class="emphasis"><em>PrimitiveParser</em></span>
+ <span class="bold"><b>FIXME</b></span> Add links to <span class="emphasis"><em>PrimitiveParser</em></span>
models here.
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/unaryparser.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/unaryparser.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/parser_concepts/unaryparser.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>UnaryParser</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../parser_concepts.html" title="Parser Concepts">
-<link rel="prev" href="primitiveparser.html" title="PrimitiveParser">
+<link rel="previous" href="primitiveparser.html" title="PrimitiveParser">
<link rel="next" href="binaryparser.html" title="BinaryParser">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,13 +22,16 @@
<div class="spirit-nav">
<a accesskey="p" href="primitiveparser.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../parser_concepts.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="binaryparser.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="UnaryParser">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.parser_concepts.unaryparser"></a><a class="link" href="unaryparser.html" title="UnaryParser">UnaryParser</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.parser_concepts.unaryparser"></a>UnaryParser
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.parser_concepts.unaryparser.description"></a><h6>
-<a name="id648575"></a>
- <a class="link" href="unaryparser.html#spirit.qi.reference.parser_concepts.unaryparser.description">Description</a>
+<a name="id460760"></a>
+ Description
</h6>
<p>
<span class="emphasis"><em>UnaryParser</em></span> is a composite parser that has a single
@@ -36,39 +39,39 @@
the Delegate Design Pattern.
</p>
<a name="spirit.qi.reference.parser_concepts.unaryparser.refinement_of"></a><h6>
-<a name="id648600"></a>
- <a class="link" href="unaryparser.html#spirit.qi.reference.parser_concepts.unaryparser.refinement_of">Refinement
+<a name="id460796"></a>
+ <a href="unaryparser.html#spirit.qi.reference.parser_concepts.unaryparser.refinement_of">Refinement
of</a>
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
+ Parser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">p</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">p</span></tt></span></dt>
<dd><p>
A UnaryParser.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">P</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">P</span></tt></span></dt>
<dd><p>
A UnaryParser type.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.parser_concepts.unaryparser.valid_expressions"></a><h6>
-<a name="id648679"></a>
- <a class="link" href="unaryparser.html#spirit.qi.reference.parser_concepts.unaryparser.valid_expressions">Valid
+<a name="id460904"></a>
+ <a href="unaryparser.html#spirit.qi.reference.parser_concepts.unaryparser.valid_expressions">Valid
Expressions</a>
</h6>
<p>
- In addition to the requirements defined in <a class="link" href="parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>, for any UnaryParser
+ In addition to the requirements defined in Parser, for any UnaryParser
the following must be met:
</p>
<div class="informaltable"><table class="table">
@@ -78,43 +81,31 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Return type
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody><tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">subject</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">p</span><span class="special">.</span><span class="identifier">subject</span></tt>
+ </p></td>
+<td><p>
Subject parser.
- </p>
- </td>
-<td>
- <p>
- <a class="link" href="parser.html" title="Parser"><code class="computeroutput"><span class="identifier">Parser</span></code></a>
- </p>
- </td>
+ </p></td>
+<td><p>
+ Parser
+ </p></td>
</tr></tbody>
</table></div>
<a name="spirit.qi.reference.parser_concepts.unaryparser.type_expressions"></a><h6>
-<a name="id648793"></a>
- <a class="link" href="unaryparser.html#spirit.qi.reference.parser_concepts.unaryparser.type_expressions">Type
+<a name="id461059"></a>
+ <a href="unaryparser.html#spirit.qi.reference.parser_concepts.unaryparser.type_expressions">Type
Expressions</a>
</h6>
<div class="informaltable"><table class="table">
@@ -123,65 +114,53 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">P</span><span class="special">::</span><span class="identifier">subject_type</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">P</span><span class="special">::</span><span class="identifier">subject_type</span></tt>
+ </p></td>
+<td><p>
The subject parser type.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_unary_parser</span><span class="special"><</span><span class="identifier">P</span><span class="special">>::</span><span class="identifier">type</span></code>
- </p>
- </td>
-<td>
- <p>
- Metafunction that evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
- if a certain type, <code class="computeroutput"><span class="identifier">P</span></code>
- is a UnaryParser, <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_unary_parser</span><span class="special"><</span><span class="identifier">P</span><span class="special">>::</span><span class="identifier">type</span></tt>
+ </p></td>
+<td><p>
+ Metafunction that evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
+ if a certain type, <tt class="computeroutput"><span class="identifier">P</span></tt>
+ is a UnaryParser, <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span></tt>
otherwise (See <a href="../../../../../../../../libs/mpl/doc/refmanual/integral-constant.html" target="_top">MPL
Boolean Constant</a>).
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.parser_concepts.unaryparser.invariants"></a><h6>
-<a name="id648961"></a>
- <a class="link" href="unaryparser.html#spirit.qi.reference.parser_concepts.unaryparser.invariants">Invariants</a>
+<a name="id461283"></a>
+ Invariants
</h6>
<p>
- For any UnaryParser, <code class="computeroutput"><span class="identifier">P</span></code>,
+ For any UnaryParser, <tt class="computeroutput"><span class="identifier">P</span></tt>,
the following invariant always holds:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
-<code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_parser</span><span class="special"><</span><span class="identifier">P</span><span class="special">::</span><span class="identifier">subject_type</span><span class="special">>::</span><span class="identifier">type</span></code> evaluates to <code class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></code>
+<div class="itemizedlist"><ul type="disc"><li>
+<tt class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_parser</span><span class="special"><</span><span class="identifier">P</span><span class="special">::</span><span class="identifier">subject_type</span><span class="special">>::</span><span class="identifier">type</span></tt> evaluates to <tt class="computeroutput"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">true_</span></tt>
</li></ul></div>
<a name="spirit.qi.reference.parser_concepts.unaryparser.models"></a><h6>
-<a name="id649046"></a>
- <a class="link" href="unaryparser.html#spirit.qi.reference.parser_concepts.unaryparser.models">Models</a>
+<a name="id461406"></a>
+ Models
</h6>
<p>
- <span class="bold"><strong>FIXME</strong></span> Add links to models of UnaryParser
+ <span class="bold"><b>FIXME</b></span> Add links to models of UnaryParser
concept
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/string.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/string.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/string.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,13 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>String</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../reference.html" title="Reference">
-<link rel="prev" href="operator/sequential_or.html" title="Sequential Or (a || b)">
-<link rel="next" href="string/string.html" title="String (string, lit)">
+<link rel="previous" href="operator/sequential_or.html" title=" Sequential
+ Or (a ||
+ b)">
+<link rel="next" href="string/string.html" title=" String (string, lit)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,27 +24,30 @@
<div class="spirit-nav">
<a accesskey="p" href="operator/sequential_or.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="string/string.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="String">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.reference.string"></a><a class="link" href="string.html" title="String">String</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.reference.string"></a>String
+</h4></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
-<dt><span class="section"> String (string
, lit
)</span></dt>
-<dt><span class="section"> Symbols (symbols
)</span></dt>
+<dt><span class="section"> String (string, lit)</span></dt>
+<dt><span class="section"> Symbols (symbols)</span></dt>
</dl></div>
<p>
This module includes parsers for strings. Currently, this module includes
the literal and string parsers and the symbol table.
</p>
-<a name="spirit.qi.reference.string.module_header"></a><h6>
-<a name="id725729"></a>
- <a class="link" href="string.html#spirit.qi.reference.string.module_header">Module Header</a>
- </h6>
+<a name="spirit.qi.reference.string.module_header"></a><h5>
+<a name="id532963"></a>
+ Module Header
+ </h5>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/string.hpp>
</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">qi_string</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/string/string.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/string/string.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/string/string.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>String (string, lit)</title>
+<title> String (string, lit)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../string.html" title="String">
-<link rel="prev" href="../string.html" title="String">
-<link rel="next" href="symbols.html" title="Symbols (symbols)">
+<link rel="previous" href="../string.html" title="String">
+<link rel="next" href="symbols.html" title=" Symbols (symbols)">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,19 +22,22 @@
<div class="spirit-nav">
<a accesskey="p" href="../string.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../string.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="symbols.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="String (string, lit)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.string.string"></a><a class="link" href="string.html" title="String (string, lit)"> String (<code class="computeroutput"><span class="identifier">string</span></code>, <code class="computeroutput"><span class="identifier">lit</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.string.string"></a> String (string, lit)
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.string.string.description"></a><h6>
-<a name="id725827"></a>
- <a class="link" href="string.html#spirit.qi.reference.string.string.description">Description</a>
+<a name="id533117"></a>
+ Description
</h6>
<p>
- The <code class="computeroutput"><span class="identifier">string</span></code> parser matches
- a string of characters. The <code class="computeroutput"><span class="identifier">string</span></code>
- parser is an implicit lexeme: the <code class="computeroutput"><span class="identifier">skip</span></code>
- parser is not applied in between characters of the string. The <code class="computeroutput"><span class="identifier">string</span></code> parser has an assocaiated <a class="link" href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
+ The <tt class="computeroutput"><span class="identifier">string</span></tt> parser matches
+ a string of characters. The <tt class="computeroutput"><span class="identifier">string</span></tt>
+ parser is an implicit lexeme: the <tt class="computeroutput"><span class="identifier">skip</span></tt>
+ parser is not applied in between characters of the string. The <tt class="computeroutput"><span class="identifier">string</span></tt> parser has an assocaiated <a href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
Encoding Namespace</a>. This is needed when doing basic operations
such as inhibiting case sensitivity. Examples:
</p>
@@ -43,10 +46,10 @@
<span class="identifier">string</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span> <span class="comment">// s is a std::string
</span></pre>
<p>
- <code class="computeroutput"><span class="identifier">lit</span></code>, like <code class="computeroutput"><span class="identifier">string</span></code>, also matches a string of characters.
- The main difference is that <code class="computeroutput"><span class="identifier">lit</span></code>
- does not synthesize an attribute. A plain string like <code class="computeroutput"><span class="string">"hello"</span></code>
- or a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span></code> is equivalent to a <code class="computeroutput"><span class="identifier">lit</span></code>. Examples:
+ <tt class="computeroutput"><span class="identifier">lit</span></tt>, like <tt class="computeroutput"><span class="identifier">string</span></tt>, also matches a string of characters.
+ The main difference is that <tt class="computeroutput"><span class="identifier">lit</span></tt>
+ does not synthesize an attribute. A plain string like <tt class="computeroutput"><span class="string">"hello"</span></tt>
+ or a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span></tt> is equivalent to a <tt class="computeroutput"><span class="identifier">lit</span></tt>. Examples:
</p>
<pre class="programlisting"><span class="string">"Hello"</span>
<span class="identifier">lit</span><span class="special">(</span><span class="string">"Hello"</span><span class="special">)</span>
@@ -54,79 +57,73 @@
<span class="identifier">lit</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span> <span class="comment">// s is a std::string
</span></pre>
<a name="spirit.qi.reference.string.string.header"></a><h6>
-<a name="id726053"></a>
- <a class="link" href="string.html#spirit.qi.reference.string.string.header">Header</a>
+<a name="id533459"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/string/lit.hpp>
</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">qi_lit</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<a name="spirit.qi.reference.string.string.namespace"></a><h6>
-<a name="id726119"></a>
- <a class="link" href="string.html#spirit.qi.reference.string.string.namespace">Namespace</a>
+<a name="id533560"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lit</span> <span class="comment">// alias:
- boost::spirit::qi::lit</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">string</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lit</span> <span class="comment">// alias:
+ boost::spirit::qi::lit</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">string</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
<p>
- In the table above, <code class="computeroutput"><span class="identifier">ns</span></code>
- is a <a class="link" href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
+ In the table above, <tt class="computeroutput"><span class="identifier">ns</span></tt>
+ is a <a href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
Encoding Namespace</a>.
</p>
<a name="spirit.qi.reference.string.string.model_of"></a><h6>
-<a name="id726237"></a>
- <a class="link" href="string.html#spirit.qi.reference.string.string.model_of">Model of</a>
+<a name="id533720"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>
+ PrimitiveParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">s</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">s</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../basics.html#spirit.qi.reference.basics.string">String</a>
+ A String
or a __lazy<span class="underline">argument</span>_ that evaluates
- to a <a class="link" href="../basics.html#spirit.qi.reference.basics.string">String</a>.
+ to a String.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">ns</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">ns</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
+ A <a href="../basics.html#spirit.qi.reference.basics.character_encoding_namespace">Character
Encoding Namespace</a>.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.string.string.expression_semantics"></a><h6>
-<a name="id726333"></a>
- <a class="link" href="string.html#spirit.qi.reference.string.string.expression_semantics">Expression
+<a name="id533861"></a>
+ <a href="string.html#spirit.qi.reference.string.string.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>.
+ is not defined in PrimitiveParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -134,60 +131,44 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">s</span></code>
- </p>
- </td>
-<td>
- <p>
- Create string parser from a string, <code class="computeroutput"><span class="identifier">s</span></code>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">s</span></tt>
+ </p></td>
+<td><p>
+ Create string parser from a string, <tt class="computeroutput"><span class="identifier">s</span></tt>.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Create a string parser from a string, <code class="computeroutput"><span class="identifier">s</span></code>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Create a string parser from a string, <tt class="computeroutput"><span class="identifier">s</span></tt>.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Create a string parser with <code class="computeroutput"><span class="identifier">ns</span></code>
- encoding from a string, <code class="computeroutput"><span class="identifier">s</span></code>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Create a string parser with <tt class="computeroutput"><span class="identifier">ns</span></tt>
+ encoding from a string, <tt class="computeroutput"><span class="identifier">s</span></tt>.
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.string.string.attributes"></a><h6>
-<a name="id726525"></a>
- <a class="link" href="string.html#spirit.qi.reference.string.string.attributes">Attributes</a>
+<a name="id534121"></a>
+ Attributes
</h6>
<div class="informaltable"><table class="table">
<colgroup>
@@ -195,61 +176,45 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Attribute
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">s</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">s</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused</span></code>
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused</span></tt>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></code>
- where <code class="computeroutput"><span class="identifier">T</span></code> is the
- underlying character type of <code class="computeroutput"><span class="identifier">s</span></code>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ns</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></tt>
+ where <tt class="computeroutput"><span class="identifier">T</span></tt> is the
+ underlying character type of <tt class="computeroutput"><span class="identifier">s</span></tt>.
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.string.string.complexity"></a><h6>
-<a name="id726728"></a>
- <a class="link" href="string.html#spirit.qi.reference.string.string.complexity">Complexity</a>
+<a name="id534389"></a>
+ Complexity
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
@@ -261,12 +226,12 @@
</p>
</blockquote></div>
<p>
- where <code class="computeroutput"><span class="identifier">N</span></code> is the number
+ where <tt class="computeroutput"><span class="identifier">N</span></tt> is the number
of characters in the string to be parsed.
</p>
<a name="spirit.qi.reference.string.string.example"></a><h6>
-<a name="id726763"></a>
- <a class="link" href="string.html#spirit.qi.reference.string.string.example">Example</a>
+<a name="id534441"></a>
+ Example
</h6>
<p>
Some using declarations:
@@ -300,7 +265,7 @@
<p>
</p>
<p>
- From a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code>
+ From a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></tt>
</p>
<p>
</p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/reference/string/symbols.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/reference/string/symbols.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/reference/string/symbols.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Symbols (symbols)</title>
+<title> Symbols (symbols)</title>
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../../index.html" title="Spirit 2.1">
<link rel="up" href="../string.html" title="String">
-<link rel="prev" href="string.html" title="String (string, lit)">
-<link rel="next" href="../../../karma.html" title="Karma - Writing Generators">
+<link rel="previous" href="string.html" title=" String (string, lit)">
+<link rel="next" href="../../../karma.html" title=" Karma - Writing Generators">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,18 +22,21 @@
<div class="spirit-nav">
<a accesskey="p" href="string.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../string.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../../karma.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Symbols (symbols)">
-<div class="titlepage"><div><div><h5 class="title">
-<a name="spirit.qi.reference.string.symbols"></a><a class="link" href="symbols.html" title="Symbols (symbols)"> Symbols (<code class="computeroutput"><span class="identifier">symbols</span></code>)</a>
-</h5></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h5 class="title">
+<a name="spirit.qi.reference.string.symbols"></a> Symbols (symbols)
+</h5></div></div>
+<div></div>
+</div>
<a name="spirit.qi.reference.string.symbols.description"></a><h6>
-<a name="id727333"></a>
- <a class="link" href="symbols.html#spirit.qi.reference.string.symbols.description">Description</a>
+<a name="id535222"></a>
+ Description
</h6>
<p>
- This class <code class="computeroutput"><span class="identifier">symbols</span></code> implements
+ This class <tt class="computeroutput"><span class="identifier">symbols</span></tt> implements
a symbol table: an associative container (or map) of key-value pairs
- where the keys are strings. The <code class="computeroutput"><span class="identifier">symbols</span></code>
+ where the keys are strings. The <tt class="computeroutput"><span class="identifier">symbols</span></tt>
class can work efficiently with 8, 16, 32 and even 64 bit characters.
</p>
<p>
@@ -47,54 +50,46 @@
its behavior.
</p>
<a name="spirit.qi.reference.string.symbols.header"></a><h6>
-<a name="id727368"></a>
- <a class="link" href="symbols.html#spirit.qi.reference.string.symbols.header">Header</a>
+<a name="id535292"></a>
+ Header
</h6>
<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/string/symbols.hpp>
</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">qi_symbols</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
</pre>
<p>
- Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>.
+ Also, see Include Structure.
</p>
<a name="spirit.qi.reference.string.symbols.namespace"></a><h6>
-<a name="id727442"></a>
- <a class="link" href="symbols.html#spirit.qi.reference.string.symbols.namespace">Namespace</a>
+<a name="id535406"></a>
+ Namespace
</h6>
<div class="informaltable"><table class="table">
<colgroup><col></colgroup>
-<thead><tr><th>
- <p>
+<thead><tr><th><p>
Name
- </p>
- </th></tr></thead>
+ </p></th></tr></thead>
<tbody>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">symbols</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">tst</span></code>
- </p>
- </td></tr>
-<tr><td>
- <p>
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">tst_map</span></code>
- </p>
- </td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">symbols</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">tst</span></tt>
+ </p></td></tr>
+<tr><td><p>
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">tst_map</span></tt>
+ </p></td></tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.string.symbols.synopsis"></a><h6>
-<a name="id728836"></a>
- <a class="link" href="symbols.html#spirit.qi.reference.string.symbols.synopsis">Synopsis</a>
+<a name="id535616"></a>
+ Synopsis
</h6>
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Char</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Lookup</span><span class="special">></span>
<span class="keyword">struct</span> <span class="identifier">symbols</span><span class="special">;</span>
</pre>
<a name="spirit.qi.reference.string.symbols.template_parameters"></a><h6>
-<a name="id728914"></a>
- <a class="link" href="symbols.html#spirit.qi.reference.string.symbols.template_parameters">Template
+<a name="id535728"></a>
+ <a href="symbols.html#spirit.qi.reference.string.symbols.template_parameters">Template
parameters</a>
</h6>
<div class="informaltable"><table class="table">
@@ -104,143 +99,119 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Parameter
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Default
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Char</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Char</span></tt>
+ </p></td>
+<td><p>
The character type of the symbol strings.
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="keyword">char</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">T</span></code>
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="keyword">char</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">T</span></tt>
+ </p></td>
+<td><p>
The data type associated with each symbol.
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">unused_type</span></code>
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Lookup</span></code>
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Lookup</span></tt>
+ </p></td>
+<td><p>
The symbol search implementation
- </p>
- </td>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">tst</span><span class="special"><</span><span class="identifier">Char</span><span class="special">,</span>
- <span class="identifier">T</span><span class="special">></span></code>
- </p>
- </td>
+ </p></td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">tst</span><span class="special"><</span><span class="identifier">Char</span><span class="special">,</span>
+ <span class="identifier">T</span><span class="special">></span></tt>
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.string.symbols.model_of"></a><h6>
-<a name="id729098"></a>
- <a class="link" href="symbols.html#spirit.qi.reference.string.symbols.model_of">Model of</a>
+<a name="id535965"></a>
+ Model of
</h6>
<div class="blockquote"><blockquote class="blockquote">
<p>
</p>
<p>
- <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>
+ PrimitiveParser
</p>
<p>
</p>
</blockquote></div>
-<div class="variablelist" title="Notation">
+<div class="variablelist">
<p class="title"><b>Notation</b></p>
<dl>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Sym</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Sym</span></tt></span></dt>
<dd><p>
- A <code class="computeroutput"><span class="identifier">symbols</span></code> type.
+ A <tt class="computeroutput"><span class="identifier">symbols</span></tt> type.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">Char</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">Char</span></tt></span></dt>
<dd><p>
A character type.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">T</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">T</span></tt></span></dt>
<dd><p>
A data type.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">sym</span></code>,
- <code class="computeroutput"><span class="identifier">sym2</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">sym</span></tt>,
+ <tt class="computeroutput"><span class="identifier">sym2</span></tt></span></dt>
<dd><p>
- <code class="computeroutput"><span class="identifier">symbols</span></code> objects.
+ <tt class="computeroutput"><span class="identifier">symbols</span></tt> objects.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">sseq</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">sseq</span></tt></span></dt>
<dd><p>
An STL container
of strings.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">dseq</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">dseq</span></tt></span></dt>
<dd><p>
An STL container
- of data with <code class="computeroutput"><span class="identifier">value_type</span></code>
- <code class="computeroutput"><span class="identifier">T</span></code>.
+ of data with <tt class="computeroutput"><span class="identifier">value_type</span></tt>
+ <tt class="computeroutput"><span class="identifier">T</span></tt>.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">s1</span></code>...<code class="computeroutput"><span class="identifier">sN</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">s1</span></tt>...<tt class="computeroutput"><span class="identifier">sN</span></tt></span></dt>
<dd><p>
- A <a class="link" href="../basics.html#spirit.qi.reference.basics.string">String</a>.
+ A String.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">d1</span></code>...<code class="computeroutput"><span class="identifier">dN</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">d1</span></tt>...<tt class="computeroutput"><span class="identifier">dN</span></tt></span></dt>
<dd><p>
- Objects of type <code class="computeroutput"><span class="identifier">T</span></code>.
+ Objects of type <tt class="computeroutput"><span class="identifier">T</span></tt>.
</p></dd>
-<dt><span class="term"><code class="computeroutput"><span class="identifier">f</span></code></span></dt>
+<dt><span class="term"><tt class="computeroutput"><span class="identifier">f</span></tt></span></dt>
<dd><p>
A callable function or function object.
</p></dd>
</dl>
</div>
<a name="spirit.qi.reference.string.symbols.expression_semantics"></a><h6>
-<a name="id729373"></a>
- <a class="link" href="symbols.html#spirit.qi.reference.string.symbols.expression_semantics">Expression
+<a name="id536350"></a>
+ <a href="symbols.html#spirit.qi.reference.string.symbols.expression_semantics">Expression
Semantics</a>
</h6>
<p>
Semantics of an expression is defined only where it differs from, or
- is not defined in <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>.
+ is not defined in PrimitiveParser.
</p>
<div class="informaltable"><table class="table">
<colgroup>
@@ -248,244 +219,180 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Expression
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Semantics
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Sym</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Sym</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
Construct an empty symbols.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Sym</span><span class="special">(</span><span class="identifier">sym</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Copy construct a symbols from <code class="computeroutput"><span class="identifier">sym2</span></code>
- (Another <code class="computeroutput"><span class="identifier">symbols</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Sym</span><span class="special">(</span><span class="identifier">sym</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Copy construct a symbols from <tt class="computeroutput"><span class="identifier">sym2</span></tt>
+ (Another <tt class="computeroutput"><span class="identifier">symbols</span></tt>
object).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Sym</span><span class="special">(</span><span class="identifier">sseq</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Construct symbols from <code class="computeroutput"><span class="identifier">sseq</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Sym</span><span class="special">(</span><span class="identifier">sseq</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Construct symbols from <tt class="computeroutput"><span class="identifier">sseq</span></tt>
(An STL container
of strings).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">Sym</span><span class="special">(</span><span class="identifier">sseq</span><span class="special">,</span>
- <span class="identifier">dseq</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Construct symbols from <code class="computeroutput"><span class="identifier">sseq</span></code>
- and <code class="computeroutput"><span class="identifier">dseq</span></code> (An
+<td><p>
+ <tt class="computeroutput"><span class="identifier">Sym</span><span class="special">(</span><span class="identifier">sseq</span><span class="special">,</span>
+ <span class="identifier">dseq</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Construct symbols from <tt class="computeroutput"><span class="identifier">sseq</span></tt>
+ and <tt class="computeroutput"><span class="identifier">dseq</span></tt> (An
<a href="http://www.sgi.com/tech/stl/" target="_top">STL</a> container
of strings and an STL
- container of data with <code class="computeroutput"><span class="identifier">value_type</span></code>
- <code class="computeroutput"><span class="identifier">T</span></code>).
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">sym</span> <span class="special">=</span>
- <span class="identifier">sym</span></code>
- </p>
- </td>
-<td>
- <p>
- Assign <code class="computeroutput"><span class="identifier">sym2</span></code> to
- <code class="computeroutput"><span class="identifier">sym</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">sym</span> <span class="special">=</span>
+ container of data with <tt class="computeroutput"><span class="identifier">value_type</span></tt>
+ <tt class="computeroutput"><span class="identifier">T</span></tt>).
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">sym</span> <span class="special">=</span>
+ <span class="identifier">sym</span></tt>
+ </p></td>
+<td><p>
+ Assign <tt class="computeroutput"><span class="identifier">sym2</span></tt> to
+ <tt class="computeroutput"><span class="identifier">sym</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">sym</span> <span class="special">=</span>
<span class="identifier">s1</span><span class="special">,</span>
<span class="identifier">s2</span><span class="special">,...</span>
- <span class="identifier">sN</span></code>
- </p>
- </td>
-<td>
- <p>
- Assigns one or more symbols (<code class="computeroutput"><span class="identifier">s1</span></code>...<code class="computeroutput"><span class="identifier">sN</span></code>) to <code class="computeroutput"><span class="identifier">sym</span></code>.
- </p>
- </td>
+ <span class="identifier">sN</span></tt>
+ </p></td>
+<td><p>
+ Assigns one or more symbols (<tt class="computeroutput"><span class="identifier">s1</span></tt>...<tt class="computeroutput"><span class="identifier">sN</span></tt>) to <tt class="computeroutput"><span class="identifier">sym</span></tt>.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">sym</span> <span class="special">+=</span>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">sym</span> <span class="special">+=</span>
<span class="identifier">s1</span><span class="special">,</span>
<span class="identifier">s2</span><span class="special">,...</span>
- <span class="identifier">sN</span></code>
- </p>
- </td>
-<td>
- <p>
- Adds one or more symbols (<code class="computeroutput"><span class="identifier">s1</span></code>...<code class="computeroutput"><span class="identifier">sN</span></code>) to <code class="computeroutput"><span class="identifier">sym</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">sym</span><span class="special">.</span><span class="identifier">add</span><span class="special">(</span><span class="identifier">s1</span><span class="special">)(</span><span class="identifier">s2</span><span class="special">)...(</span><span class="identifier">sN</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Adds one or more symbols (<code class="computeroutput"><span class="identifier">s1</span></code>...<code class="computeroutput"><span class="identifier">sN</span></code>) to <code class="computeroutput"><span class="identifier">sym</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">sym</span><span class="special">.</span><span class="identifier">add</span><span class="special">(</span><span class="identifier">s1</span><span class="special">,</span>
+ <span class="identifier">sN</span></tt>
+ </p></td>
+<td><p>
+ Adds one or more symbols (<tt class="computeroutput"><span class="identifier">s1</span></tt>...<tt class="computeroutput"><span class="identifier">sN</span></tt>) to <tt class="computeroutput"><span class="identifier">sym</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">sym</span><span class="special">.</span><span class="identifier">add</span><span class="special">(</span><span class="identifier">s1</span><span class="special">)(</span><span class="identifier">s2</span><span class="special">)...(</span><span class="identifier">sN</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Adds one or more symbols (<tt class="computeroutput"><span class="identifier">s1</span></tt>...<tt class="computeroutput"><span class="identifier">sN</span></tt>) to <tt class="computeroutput"><span class="identifier">sym</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">sym</span><span class="special">.</span><span class="identifier">add</span><span class="special">(</span><span class="identifier">s1</span><span class="special">,</span>
<span class="identifier">d1</span><span class="special">)(</span><span class="identifier">s2</span><span class="special">,</span>
<span class="identifier">d2</span><span class="special">)...(</span><span class="identifier">sN</span><span class="special">,</span>
- <span class="identifier">dN</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Adds one or more symbols (<code class="computeroutput"><span class="identifier">s1</span></code>...<code class="computeroutput"><span class="identifier">sN</span></code>) with associated data (<code class="computeroutput"><span class="identifier">d1</span></code>...<code class="computeroutput"><span class="identifier">dN</span></code>)
- to <code class="computeroutput"><span class="identifier">sym</span></code>.
- </p>
- </td>
+ <span class="identifier">dN</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Adds one or more symbols (<tt class="computeroutput"><span class="identifier">s1</span></tt>...<tt class="computeroutput"><span class="identifier">sN</span></tt>) with associated data (<tt class="computeroutput"><span class="identifier">d1</span></tt>...<tt class="computeroutput"><span class="identifier">dN</span></tt>)
+ to <tt class="computeroutput"><span class="identifier">sym</span></tt>.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">sym</span> <span class="special">-=</span>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">sym</span> <span class="special">-=</span>
<span class="identifier">s1</span><span class="special">,</span>
<span class="identifier">s2</span><span class="special">,...</span>
- <span class="identifier">sN</span></code>
- </p>
- </td>
-<td>
- <p>
- Remove one or more symbols (<code class="computeroutput"><span class="identifier">s1</span></code>...<code class="computeroutput"><span class="identifier">sN</span></code>) from <code class="computeroutput"><span class="identifier">sym</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">sym</span><span class="special">.</span><span class="identifier">remove</span><span class="special">(</span><span class="identifier">s1</span><span class="special">)(</span><span class="identifier">s2</span><span class="special">)...(</span><span class="identifier">sN</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Remove one or more symbols (<code class="computeroutput"><span class="identifier">s1</span></code>...<code class="computeroutput"><span class="identifier">sN</span></code>) from <code class="computeroutput"><span class="identifier">sym</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">sym</span><span class="special">.</span><span class="identifier">clear</span><span class="special">()</span></code>
- </p>
- </td>
-<td>
- <p>
- Erase all of the symbols in <code class="computeroutput"><span class="identifier">sym</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">sym</span><span class="special">.</span><span class="identifier">at</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Returns a reference to the object associated with symbol, <code class="computeroutput"><span class="identifier">s</span></code>. If <code class="computeroutput"><span class="identifier">sym</span></code>
- does not already contain such an object, <code class="computeroutput"><span class="identifier">at</span></code>
- inserts the default object <code class="computeroutput"><span class="identifier">T</span><span class="special">()</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">sym</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- Returns a pointer to the object associated with symbol, <code class="computeroutput"><span class="identifier">s</span></code>. If <code class="computeroutput"><span class="identifier">sym</span></code>
- does not already contain such an object, <code class="computeroutput"><span class="identifier">find</span></code>
+ <span class="identifier">sN</span></tt>
+ </p></td>
+<td><p>
+ Remove one or more symbols (<tt class="computeroutput"><span class="identifier">s1</span></tt>...<tt class="computeroutput"><span class="identifier">sN</span></tt>) from <tt class="computeroutput"><span class="identifier">sym</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">sym</span><span class="special">.</span><span class="identifier">remove</span><span class="special">(</span><span class="identifier">s1</span><span class="special">)(</span><span class="identifier">s2</span><span class="special">)...(</span><span class="identifier">sN</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Remove one or more symbols (<tt class="computeroutput"><span class="identifier">s1</span></tt>...<tt class="computeroutput"><span class="identifier">sN</span></tt>) from <tt class="computeroutput"><span class="identifier">sym</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">sym</span><span class="special">.</span><span class="identifier">clear</span><span class="special">()</span></tt>
+ </p></td>
+<td><p>
+ Erase all of the symbols in <tt class="computeroutput"><span class="identifier">sym</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">sym</span><span class="special">.</span><span class="identifier">at</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Returns a reference to the object associated with symbol, <tt class="computeroutput"><span class="identifier">s</span></tt>. If <tt class="computeroutput"><span class="identifier">sym</span></tt>
+ does not already contain such an object, <tt class="computeroutput"><span class="identifier">at</span></tt>
+ inserts the default object <tt class="computeroutput"><span class="identifier">T</span><span class="special">()</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">sym</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="identifier">s</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ Returns a pointer to the object associated with symbol, <tt class="computeroutput"><span class="identifier">s</span></tt>. If <tt class="computeroutput"><span class="identifier">sym</span></tt>
+ does not already contain such an object, <tt class="computeroutput"><span class="identifier">find</span></tt>
returns a null pointer.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">sym</span><span class="special">.</span><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">f</span><span class="special">)</span></code>
- </p>
- </td>
-<td>
- <p>
- For each symbol in <code class="computeroutput"><span class="identifier">sym</span></code>,
- <code class="computeroutput"><span class="identifier">s</span></code>, a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">Char</span><span class="special">></span></code>
- with associated data, <code class="computeroutput"><span class="identifier">d</span></code>,
- an object of type <code class="computeroutput"><span class="identifier">T</span></code>,
- invoke <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>
- <span class="identifier">d</span><span class="special">)</span></code>.
- </p>
- </td>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">sym</span><span class="special">.</span><span class="identifier">for_each</span><span class="special">(</span><span class="identifier">f</span><span class="special">)</span></tt>
+ </p></td>
+<td><p>
+ For each symbol in <tt class="computeroutput"><span class="identifier">sym</span></tt>,
+ <tt class="computeroutput"><span class="identifier">s</span></tt>, a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string</span><span class="special"><</span><span class="identifier">Char</span><span class="special">></span></tt>
+ with associated data, <tt class="computeroutput"><span class="identifier">d</span></tt>,
+ an object of type <tt class="computeroutput"><span class="identifier">T</span></tt>,
+ invoke <tt class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">s</span><span class="special">,</span>
+ <span class="identifier">d</span><span class="special">)</span></tt>.
+ </p></td>
</tr>
</tbody>
</table></div>
<a name="spirit.qi.reference.string.symbols.attributes"></a><h6>
-<a name="id730483"></a>
- <a class="link" href="symbols.html#spirit.qi.reference.string.symbols.attributes">Attributes</a>
+<a name="id537885"></a>
+ Attributes
</h6>
<p>
- The attribute of <code class="computeroutput"><span class="identifier">symbol</span><span class="special"><</span><span class="identifier">Char</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span></code> is <code class="computeroutput"><span class="identifier">T</span></code>.
+ The attribute of <tt class="computeroutput"><span class="identifier">symbol</span><span class="special"><</span><span class="identifier">Char</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span></tt> is <tt class="computeroutput"><span class="identifier">T</span></tt>.
</p>
<a name="spirit.qi.reference.string.symbols.complexity"></a><h6>
-<a name="id730533"></a>
- <a class="link" href="symbols.html#spirit.qi.reference.string.symbols.complexity">Complexity</a>
+<a name="id537964"></a>
+ Complexity
</h6>
<p>
The default implementation uses a Ternary Search Tree (TST) with complexity:
@@ -512,7 +419,7 @@
</p>
<p>
An alternative implementation uses a hybrid hash-map front end (for the
- first character) plus a TST: <code class="computeroutput"><span class="identifier">tst_map</span></code>.
+ first character) plus a TST: <tt class="computeroutput"><span class="identifier">tst_map</span></tt>.
This gives us a complexity of
</p>
<div class="blockquote"><blockquote class="blockquote">
@@ -527,15 +434,15 @@
<p>
This is found to be significantly faster than plain TST, albeit with
a bit more memory usage requirements (each slot in the hash-map is a
- TST node). If you require a lot of symbols to be searched, use the <code class="computeroutput"><span class="identifier">tst_map</span></code> implementation. This can be
- done by using <code class="computeroutput"><span class="identifier">tst_map</span></code>
+ TST node). If you require a lot of symbols to be searched, use the <tt class="computeroutput"><span class="identifier">tst_map</span></tt> implementation. This can be
+ done by using <tt class="computeroutput"><span class="identifier">tst_map</span></tt>
as the third template parameter to the symbols class:
</p>
<pre class="programlisting"><span class="identifier">symbols</span><span class="special"><</span><span class="identifier">Char</span><span class="special">,</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">tst_map</span><span class="special"><</span><span class="identifier">Char</span><span class="special">,</span> <span class="identifier">T</span><span class="special">></span> <span class="special">></span> <span class="identifier">sym</span><span class="special">;</span>
</pre>
<a name="spirit.qi.reference.string.symbols.example"></a><h6>
-<a name="id730672"></a>
- <a class="link" href="symbols.html#spirit.qi.reference.string.symbols.example">Example</a>
+<a name="id538173"></a>
+ Example
</h6>
<p>
Some using declarations:
@@ -576,11 +483,12 @@
<p>
</p>
<p>
- When <code class="computeroutput"><span class="identifier">symbols</span></code> is used
- for case-insensitive parsing (in a <a class="link" href="../directive/no_case.html" title="Inhibiting Case Sensitivity (no_case[])"><code class="computeroutput"><span class="identifier">no_case</span></code></a> directive), added symbol
+ When <tt class="computeroutput"><span class="identifier">symbols</span></tt> is used
+ for case-insensitive parsing (in a <a href="../directive/no_case.html" title=" Inhibiting
+ Case Sensitivity (no_case[])"><tt class="computeroutput"><span class="identifier">no_case</span></tt></a> directive), added symbol
strings should be in lowercase. Symbol strings containing one or more
uppercase characters will not match any input when symbols is used in
- a <code class="computeroutput"><span class="identifier">no_case</span></code> directive.
+ a <tt class="computeroutput"><span class="identifier">no_case</span></tt> directive.
</p>
<p>
</p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Tutorials</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../index.html" title="Spirit 2.1">
-<link rel="up" href="../qi.html" title="Qi - Writing Parsers">
-<link rel="prev" href="../qi.html" title="Qi - Writing Parsers">
+<link rel="up" href="../qi.html" title=" Qi - Writing Parsers">
+<link rel="previous" href="../qi.html" title=" Qi - Writing Parsers">
<link rel="next" href="tutorials/quick_start.html" title="Quick Start">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,10 +22,13 @@
<div class="spirit-nav">
<a accesskey="p" href="../qi.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../qi.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tutorials/quick_start.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Tutorials">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.qi.tutorials"></a><a class="link" href="tutorials.html" title="Tutorials">Tutorials</a>
-</h3></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h3 class="title">
+<a name="spirit.qi.tutorials"></a>Tutorials
+</h3></div></div>
+<div></div>
+</div>
<div class="toc"><dl>
<dt><span class="section">Quick Start</span></dt>
<dt><span class="section">Warming up</span></dt>
Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/complex___our_first_complex_parser.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/complex___our_first_complex_parser.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/complex___our_first_complex_parser.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,15 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Complex - Our first complex parser</title>
+<title>Complex
+ - Our first complex parser</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="semantic_actions.html" title="Semantic Actions">
-<link rel="next" href="sum___adding_numbers.html" title="Sum - adding numbers">
+<link rel="previous" href="semantic_actions.html" title="Semantic Actions">
+<link rel="next" href="sum___adding_numbers.html" title="Sum - adding
+ numbers">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +24,15 @@
<div class="spirit-nav">
<a accesskey="p" href="semantic_actions.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="sum___adding_numbers.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Complex - Our first complex parser">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.tutorials.complex___our_first_complex_parser"></a><a class="link" href="complex___our_first_complex_parser.html" title="Complex - Our first complex parser">Complex
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.tutorials.complex___our_first_complex_parser"></a><a href="complex___our_first_complex_parser.html" title="Complex
+ - Our first complex parser">Complex
- Our first complex parser</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<p>
Well, not really a complex parser, but a parser that parses complex numbers.
This time, we're using Phoenix
@@ -41,26 +47,26 @@
<p>
What's new? Well, we have:
</p>
-<div class="orderedlist"><ol class="orderedlist" type="1">
-<li class="listitem">
- Alternates: e.g. <code class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
- <span class="identifier">b</span></code>. Try <code class="computeroutput"><span class="identifier">a</span></code>
- first. If it succeeds, good. If not, try the next alternative, <code class="computeroutput"><span class="identifier">b</span></code>.
+<div class="orderedlist"><ol type="1">
+<li>
+ Alternates: e.g. <tt class="computeroutput"><span class="identifier">a</span> <span class="special">|</span>
+ <span class="identifier">b</span></tt>. Try <tt class="computeroutput"><span class="identifier">a</span></tt>
+ first. If it succeeds, good. If not, try the next alternative, <tt class="computeroutput"><span class="identifier">b</span></tt>.
</li>
-<li class="listitem">
+<li>
Optionals: e.g. -p. Match the parser p zero or one time.
</li>
</ol></div>
<p>
The complex parser presented above reads as:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
One or two real number in parantheses, separated by comma (the second
number is optional)
</li>
-<li class="listitem">
-<span class="bold"><strong>OR</strong></span> a single real number.
+<li>
+<span class="bold"><b>OR</b></span> a single real number.
</li>
</ul></div>
<p>
@@ -118,15 +124,15 @@
The full cpp file for this example can be found here: ../../example/qi/complex_number.cpp
</p>
<p>
- The <code class="computeroutput"><span class="identifier">double_</span></code> parser attaches
+ 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>
<p>
- This assigns the parsed result (actually, the attribute of <code class="computeroutput"><span class="identifier">double_</span></code>) to n. <code class="computeroutput"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></code>
- tells Phoenix that <code class="computeroutput"><span class="identifier">n</span></code> is
- a mutable reference. <code class="computeroutput"><span class="identifier">_1</span></code>
+ 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>
+ tells Phoenix that <tt class="computeroutput"><span class="identifier">n</span></tt> is
+ a mutable reference. <tt class="computeroutput"><span class="identifier">_1</span></tt>
is a Phoenix placeholder for the parsed result attribute.
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/employee___parsing_into_structs.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/employee___parsing_into_structs.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/employee___parsing_into_structs.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Employee - Parsing into structs</title>
+<title>Employee
+ - Parsing into structs</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="roman_numerals.html" title="Roman Numerals">
+<link rel="previous" href="roman_numerals.html" title="Roman Numerals">
<link rel="next" href="mini_xml___asts_.html" title="Mini XML - ASTs!">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,11 +23,15 @@
<div class="spirit-nav">
<a accesskey="p" href="roman_numerals.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="mini_xml___asts_.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Employee - Parsing into structs">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.tutorials.employee___parsing_into_structs"></a><a class="link" href="employee___parsing_into_structs.html" title="Employee - Parsing into structs">Employee
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.tutorials.employee___parsing_into_structs"></a><a href="employee___parsing_into_structs.html" title="Employee
+ - Parsing into structs">Employee
- Parsing into structs</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<p>
It's a common question in the <a href="http://www.nabble.com/The-Spirit-Parser-Library-f3430.html" target="_top">Spirit
General List</a>: How do I parse and place the results into a C++ struct?
@@ -35,17 +40,17 @@
attributed, makes it even easier. The next example demonstrates some features
of Spirit2 that make this easy. In the process, you'll learn about:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
More about attributes
</li>
-<li class="listitem">
+<li>
Auto rules
</li>
-<li class="listitem">
+<li>
Some more built-in parsers
</li>
-<li class="listitem">
+<li>
Directives
</li>
</ul></div>
@@ -153,15 +158,15 @@
<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>
- <code class="computeroutput"><span class="identifier">employee_parser</span></code> is a grammar.
+ <tt class="computeroutput"><span class="identifier">employee_parser</span></tt> is a grammar.
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>
<p>
- meaning, the parser generates employee structs. <code class="computeroutput"><span class="identifier">employee_parser</span></code>
- skips white spaces using <code class="computeroutput"><span class="identifier">space_type</span></code>
+ 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>
@@ -173,19 +178,19 @@
<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>
- Declares two rules: <code class="computeroutput"><span class="identifier">quoted_string</span></code>
- and <code class="computeroutput"><span class="identifier">start</span></code>. <code class="computeroutput"><span class="identifier">start</span></code> has the same template parameters
- as the grammar itself. <code class="computeroutput"><span class="identifier">quoted_string</span></code>
- has a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code> attribute.
- </p>
-<a name="spirit.qi.tutorials.employee___parsing_into_structs.lexeme"></a><h6>
-<a name="id621806"></a>
- <a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.lexeme">Lexeme</a>
- </h6>
+ Declares two rules: <tt class="computeroutput"><span class="identifier">quoted_string</span></tt>
+ and <tt class="computeroutput"><span class="identifier">start</span></tt>. <tt class="computeroutput"><span class="identifier">start</span></tt> has the same template parameters
+ as the grammar itself. <tt class="computeroutput"><span class="identifier">quoted_string</span></tt>
+ 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.tutorials.employee___parsing_into_structs.lexeme"></a><h5>
+<a name="id434506"></a>
+ Lexeme
+ </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>
<p>
- <code class="computeroutput"><span class="identifier">lexeme</span></code> inhibits space skipping
+ <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>
@@ -195,37 +200,37 @@
parses one or more chars, except the double quote. It stops when it sees
a double quote.
</p>
-<a name="spirit.qi.tutorials.employee___parsing_into_structs.difference"></a><h6>
-<a name="id621919"></a>
- <a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.difference">Difference</a>
- </h6>
+<a name="spirit.qi.tutorials.employee___parsing_into_structs.difference"></a><h5>
+<a name="id434662"></a>
+ Difference
+ </h5>
<p>
The expression:
</p>
<pre class="programlisting"><span class="identifier">a</span> <span class="special">-</span> <span class="identifier">b</span>
</pre>
<p>
- parses <code class="computeroutput"><span class="identifier">a</span></code> but not <code class="computeroutput"><span class="identifier">b</span></code>. Its attribute is just <code class="computeroutput"><span class="identifier">A</span></code>, the attribute of <code class="computeroutput"><span class="identifier">a</span></code>.
- <code class="computeroutput"><span class="identifier">b</span></code>'s attribute is ignored.
+ 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>
<p>
- is just <code class="computeroutput"><span class="keyword">char</span></code>.
+ is just <tt class="computeroutput"><span class="keyword">char</span></tt>.
</p>
-<a name="spirit.qi.tutorials.employee___parsing_into_structs.plus"></a><h6>
-<a name="id622027"></a>
- <a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.plus">Plus</a>
- </h6>
+<a name="spirit.qi.tutorials.employee___parsing_into_structs.plus"></a><h5>
+<a name="id434820"></a>
+ Plus
+ </h5>
<pre class="programlisting"><span class="special">+</span><span class="identifier">a</span>
</pre>
<p>
- is similar to kleene star. Rather than match everything, <code class="computeroutput"><span class="special">+</span><span class="identifier">a</span></code> matches
+ is similar to kleene star. Rather than match everything, <tt class="computeroutput"><span class="special">+</span><span class="identifier">a</span></tt> matches
one or more. Like it's related function, the kleene star, its attribute
- is a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></code>
- where <code class="computeroutput"><span class="identifier">A</span></code> is the attribute
- of <code class="computeroutput"><span class="identifier">a</span></code>. So, putting all these
+ is a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">A</span><span class="special">></span></tt>
+ where <tt class="computeroutput"><span class="identifier">A</span></tt> 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>
@@ -235,11 +240,11 @@
</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>
-<a name="spirit.qi.tutorials.employee___parsing_into_structs.sequence_attribute"></a><h6>
-<a name="id622164"></a>
- <a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.sequence_attribute">Sequence
+<a name="spirit.qi.tutorials.employee___parsing_into_structs.sequence_attribute"></a><h5>
+<a name="id435023"></a>
+ <a href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.sequence_attribute">Sequence
Attribute</a>
- </h6>
+ </h5>
<p>
Now what's the attribute of
</p>
@@ -259,45 +264,45 @@
<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 <code class="computeroutput"><span class="identifier">A</span></code> is the attribute
- of <code class="computeroutput"><span class="identifier">a</span></code>, <code class="computeroutput"><span class="identifier">B</span></code>
- is the attribute of <code class="computeroutput"><span class="identifier">b</span></code> and
- <code class="computeroutput"><span class="identifier">C</span></code> is the attribute of
- <code class="computeroutput"><span class="identifier">c</span></code>. What is <code class="computeroutput"><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span></code>? - a tuple.
+ where <tt class="computeroutput"><span class="identifier">A</span></tt> is the attribute
+ of <tt class="computeroutput"><span class="identifier">a</span></tt>, <tt class="computeroutput"><span class="identifier">B</span></tt>
+ is the attribute of <tt class="computeroutput"><span class="identifier">b</span></tt> and
+ <tt class="computeroutput"><span class="identifier">C</span></tt> is the attribute of
+ <tt class="computeroutput"><span class="identifier">c</span></tt>. What is <tt class="computeroutput"><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span></tt>? - a tuple.
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
If you don't know what I am talking about, see: <a href="http://tinyurl.com/6xun4j" target="_top">Fusion
Vector</a>. It might be a good idea to have a look into Boost.Fusion
at this point. You'll definitely see more of it in the coming pages.
</p></td></tr>
</table></div>
-<a name="spirit.qi.tutorials.employee___parsing_into_structs.attribute_collapsing"></a><h6>
-<a name="id622386"></a>
- <a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.attribute_collapsing">Attribute
+<a name="spirit.qi.tutorials.employee___parsing_into_structs.attribute_collapsing"></a><h5>
+<a name="id435345"></a>
+ <a href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.attribute_collapsing">Attribute
Collapsing</a>
- </h6>
+ </h5>
<p>
Some parsers, especially those very little literal parsers you see, like
- <code class="computeroutput"><span class="char">'"'</span></code>, do not have attributes.
+ <tt class="computeroutput"><span class="char">'"'</span></tt>, do not have attributes.
</p>
<p>
Nodes without attributes are disregarded. In a sequence, like above, all
- nodes with no attributes are filtered out of the <code class="computeroutput"><span class="identifier">fusion</span><span class="special">:</span><span class="identifier">vector</span></code>.
- So, since <code class="computeroutput"><span class="char">'"'</span></code> has no attribute,
- and <code class="computeroutput"><span class="special">+(</span><span class="identifier">char_</span>
- <span class="special">-</span> <span class="char">'"'</span><span class="special">)</span></code> has a <code 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></code> attribute, the whole expression's attribute
+ nodes with no attributes are filtered out of the <tt class="computeroutput"><span class="identifier">fusion</span><span class="special">:</span><span class="identifier">vector</span></tt>.
+ So, since <tt class="computeroutput"><span class="char">'"'</span></tt> has no attribute,
+ and <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> 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>
<p>
But wait, there's one more collapsing rule: If after the attribute is a
- single element <code class="computeroutput"><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span></code>, The element is stripped naked
+ single element <tt class="computeroutput"><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">vector</span></tt>, The element is stripped naked
from its container. So, to make a long story short, the attribute of the
expression:
</p>
@@ -308,11 +313,11 @@
</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>
-<a name="spirit.qi.tutorials.employee___parsing_into_structs.auto_rules"></a><h6>
-<a name="id622625"></a>
- <a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.auto_rules">Auto
+<a name="spirit.qi.tutorials.employee___parsing_into_structs.auto_rules"></a><h5>
+<a name="id435694"></a>
+ <a href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.auto_rules">Auto
Rules</a>
- </h6>
+ </h5>
<p>
It is typical to see rules like:
</p>
@@ -326,11 +331,11 @@
<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 <code class="computeroutput"><span class="identifier">p</span></code> automatically
- uses the attribute of <code class="computeroutput"><span class="identifier">r</span></code>.
+ The attribute of <tt class="computeroutput"><span class="identifier">p</span></tt> automatically
+ uses the attribute of <tt class="computeroutput"><span class="identifier">r</span></tt>.
</p>
<p>
- So, going back to our <code class="computeroutput"><span class="identifier">quoted_string</span></code>
+ 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>
@@ -341,15 +346,15 @@
<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 <code class="computeroutput"><span class="identifier">quoted_string</span></code>
- rule: <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code> <span class="bold"><strong>is compatible</strong></span>
- with the attribute of the RHS: <code 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></code>. The RHS extracts the parsed attribute
+ The attribute of the <tt class="computeroutput"><span class="identifier">quoted_string</span></tt>
+ rule: <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></tt> <span class="bold"><b>is compatible</b></span>
+ with the attribute of the RHS: <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>. The RHS extracts the parsed attribute
directly into the rule's attribute, in-situ.
</p>
-<a name="spirit.qi.tutorials.employee___parsing_into_structs.finally"></a><h6>
-<a name="id623013"></a>
- <a class="link" href="employee___parsing_into_structs.html#spirit.qi.tutorials.employee___parsing_into_structs.finally">Finally</a>
- </h6>
+<a name="spirit.qi.tutorials.employee___parsing_into_structs.finally"></a><h5>
+<a name="id436139"></a>
+ Finally
+ </h5>
<p>
We're down to one rule, the start rule:
</p>
@@ -371,28 +376,28 @@
<p>
These nodes do not have an attribute:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem"><code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="string">"employee"</span><span class="special">)</span></code></li>
-<li class="listitem"><code class="computeroutput"><span class="char">'{'</span></code></li>
-<li class="listitem"><code class="computeroutput"><span class="char">'}'</span></code></li>
+<div class="itemizedlist"><ul type="disc">
+<li><tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="string">"employee"</span><span class="special">)</span></tt></li>
+<li><tt class="computeroutput"><span class="char">'{'</span></tt></li>
+<li><tt class="computeroutput"><span class="char">'}'</span></tt></li>
</ul></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
- In case you are wondering, <code class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="string">"employee"</span><span class="special">)</span></code> is the same as "employee".
- We had to wrap it inside <code class="computeroutput"><span class="identifier">lit</span></code>
- because immediately after it is <code class="computeroutput"><span class="special">>></span>
- <span class="char">'{'</span></code>. You can't right-shift a <code class="computeroutput"><span class="keyword">char</span><span class="special">[]</span></code>
- and a <code class="computeroutput"><span class="keyword">char</span></code> - you know, C++
+<tr><td colspan="2" align="left" valign="top"><p>
+ In case you are wondering, <tt class="computeroutput"><span class="identifier">lit</span><span class="special">(</span><span class="string">"employee"</span><span class="special">)</span></tt> is the same as "employee".
+ We had to wrap it inside <tt class="computeroutput"><span class="identifier">lit</span></tt>
+ because immediately after it is <tt class="computeroutput"><span class="special">>></span>
+ <span class="char">'{'</span></tt>. You can't right-shift a <tt class="computeroutput"><span class="keyword">char</span><span class="special">[]</span></tt>
+ and a <tt class="computeroutput"><span class="keyword">char</span></tt> - you know, C++
syntax rules.
</p></td></tr>
</table></div>
<p>
- Recall that the attribute of <code class="computeroutput"><span class="identifier">start</span></code>
- is the <code class="computeroutput"><span class="identifier">employee</span></code> struct:
+ Recall that the attribute of <tt class="computeroutput"><span class="identifier">start</span></tt>
+ is the <tt class="computeroutput"><span class="identifier">employee</span></tt> struct:
</p>
<p>
</p>
@@ -412,11 +417,11 @@
<p>
</p>
<p>
- Now everything is clear, right? The <code class="computeroutput"><span class="keyword">struct</span>
- <span class="identifier">employee</span></code> <span class="bold"><strong>IS</strong></span>
- compatible with <code class="computeroutput"><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></code>. So, the RHS of <code class="computeroutput"><span class="identifier">start</span></code>
- uses start's attribute (a <code class="computeroutput"><span class="keyword">struct</span>
- <span class="identifier">employee</span></code>) in-situ when it does
+ Now everything is clear, right? The <tt class="computeroutput"><span class="keyword">struct</span>
+ <span class="identifier">employee</span></tt> <span class="bold"><b>IS</b></span>
+ compatible with <tt class="computeroutput"><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></tt>. So, the RHS of <tt class="computeroutput"><span class="identifier">start</span></tt>
+ uses start's attribute (a <tt class="computeroutput"><span class="keyword">struct</span>
+ <span class="identifier">employee</span></tt>) in-situ when it does
its work.
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___asts_.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___asts_.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___asts_.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,13 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Mini XML - ASTs!</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="employee___parsing_into_structs.html" title="Employee - Parsing into structs">
-<link rel="next" href="mini_xml___error_handling.html" title="Mini XML - Error Handling">
+<link rel="previous" href="employee___parsing_into_structs.html" title="Employee
+ - Parsing into structs">
+<link rel="next" href="mini_xml___error_handling.html" title="Mini
+ XML - Error Handling">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,16 +24,19 @@
<div class="spirit-nav">
<a accesskey="p" href="employee___parsing_into_structs.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="mini_xml___error_handling.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Mini XML - ASTs!">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.tutorials.mini_xml___asts_"></a><a class="link" href="mini_xml___asts_.html" title="Mini XML - ASTs!">Mini XML - ASTs!</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.tutorials.mini_xml___asts_"></a>Mini XML - ASTs!
+</h4></div></div>
+<div></div>
+</div>
<p>
Stop and think about it... We've come very close to generating an AST in
our last example. We parsed a single structure and generated an in-memory
- representation of it in the form of a struct: the <code class="computeroutput"><span class="keyword">struct</span>
- <span class="identifier">employee</span></code>. If we changed the implementation
- to parse one or more employees, the result would be a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">employee</span><span class="special">></span></code>. We can go on and add more hierarchy:
+ representation of it in the form of a struct: the <tt class="computeroutput"><span class="keyword">struct</span>
+ <span class="identifier">employee</span></tt>. If we changed the implementation
+ to parse one or more employees, the result would be a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">employee</span><span class="special">></span></tt>. We can go on and add more hierarchy:
teams, departments, corporations. Then we'll have an AST representation
of it all.
</p>
@@ -43,20 +48,20 @@
<p>
Along the way, we'll see new features:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
Inherited attributes
</li>
-<li class="listitem">
+<li>
Variant attributes
</li>
-<li class="listitem">
+<li>
Local Variables
</li>
-<li class="listitem">
+<li>
Not Predicate
</li>
-<li class="listitem">
+<li>
Lazy Lit
</li>
</ul></div>
@@ -68,10 +73,10 @@
There are a couple of sample toy-xml files in: ../../example/qi/mini_xml_samples
for testing purposes. "4.toyxml" has an error in it.
</p>
-<a name="spirit.qi.tutorials.mini_xml___asts_.first_cut"></a><h6>
-<a name="id623661"></a>
- <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.first_cut">First Cut</a>
- </h6>
+<a name="spirit.qi.tutorials.mini_xml___asts_.first_cut"></a><h5>
+<a name="id437046"></a>
+ First Cut
+ </h5>
<p>
Without further delay, here's the first version of the XML grammar:
</p>
@@ -129,7 +134,7 @@
<p>
</p>
<p>
- Going bottom up, let's examine the <code class="computeroutput"><span class="identifier">text</span></code>
+ 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>
@@ -141,13 +146,13 @@
</pre>
<p>
The semantic action collects the chars and appends them (via +=) to the
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code> attribute of the rule (represented
- by the placeholder <code class="computeroutput"><span class="identifier">_val</span></code>).
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></tt> attribute of the rule (represented
+ by the placeholder <tt class="computeroutput"><span class="identifier">_val</span></tt>).
</p>
-<a name="spirit.qi.tutorials.mini_xml___asts_.alternates"></a><h6>
-<a name="id624842"></a>
- <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.alternates">Alternates</a>
- </h6>
+<a name="spirit.qi.tutorials.mini_xml___asts_.alternates"></a><h5>
+<a name="id438646"></a>
+ Alternates
+ </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>
<p>
@@ -156,15 +161,15 @@
<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 <code class="computeroutput"><span class="identifier">mini_xml_node</span></code>
+ We'll see what a <tt class="computeroutput"><span class="identifier">mini_xml_node</span></tt>
structure later. Looking at the rule definition, we see some alternation
- goiing on here. An xml <code class="computeroutput"><span class="identifier">node</span></code>
- is either an <code class="computeroutput"><span class="identifier">xml</span></code> OR <code class="computeroutput"><span class="identifier">text</span></code>. Hmmm... hold on to that thought...
+ 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>
<p>
- Again, with an attribute of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code>.
+ 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>
@@ -174,46 +179,46 @@
<span class="special">>></span> <span class="char">'>'</span>
<span class="special">;</span>
</pre>
-<a name="spirit.qi.tutorials.mini_xml___asts_.not_predicate"></a><h6>
-<a name="id626407"></a>
- <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.not_predicate">Not
+<a name="spirit.qi.tutorials.mini_xml___asts_.not_predicate"></a><h5>
+<a name="id439107"></a>
+ <a href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.not_predicate">Not
Predicate</a>
- </h6>
+ </h5>
<p>
- <code class="computeroutput"><span class="identifier">start_tag</span></code> is similar to
- the <code class="computeroutput"><span class="identifier">text</span></code> rule apart from
- the added <code class="computeroutput"><span class="char">'<'</span></code> and <code class="computeroutput"><span class="char">'>'</span></code>. But wait, to make sure that the <code class="computeroutput"><span class="identifier">start_tag</span></code> does not parse <code class="computeroutput"><span class="identifier">end_tag</span></code>s too, we add: <code class="computeroutput"><span class="special">!</span><span class="identifier">char_</span><span class="special">(</span><span class="char">'/'</span><span class="special">)</span></code>. This
+ <tt class="computeroutput"><span class="identifier">start_tag</span></tt> is similar to
+ the <tt class="computeroutput"><span class="identifier">text</span></tt> rule apart from
+ 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>
<p>
- It will try the parser, <code class="computeroutput"><span class="identifier">p</span></code>.
+ It will try the parser, <tt class="computeroutput"><span class="identifier">p</span></tt>.
If it is successful, fail, otherwise, pass. In other words, it negates
- the result of <code class="computeroutput"><span class="identifier">p</span></code>. Like the
- <code class="computeroutput"><span class="identifier">eps</span></code>, it does not consume
+ the result of <tt class="computeroutput"><span class="identifier">p</span></tt>. Like the
+ <tt class="computeroutput"><span class="identifier">eps</span></tt>, it does not consume
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>
<p>
- basically says: we should not have a <code class="computeroutput"><span class="char">'/'</span></code>
+ basically says: we should not have a <tt class="computeroutput"><span class="char">'/'</span></tt>
at this point.
</p>
-<a name="spirit.qi.tutorials.mini_xml___asts_.inherited_attribute"></a><h6>
-<a name="id626562"></a>
- <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.inherited_attribute">Inherited
+<a name="spirit.qi.tutorials.mini_xml___asts_.inherited_attribute"></a><h5>
+<a name="id439348"></a>
+ <a href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.inherited_attribute">Inherited
Attribute</a>
- </h6>
+ </h5>
<p>
- The <code class="computeroutput"><span class="identifier">end_tag</span></code>:
+ 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>
<p>
- Ohh! Now we see an inherited attribute there: <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code>.
- The <code class="computeroutput"><span class="identifier">end_tag</span></code> does not have
+ 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>
@@ -223,28 +228,28 @@
<span class="special">;</span>
</pre>
<p>
- <code class="computeroutput"><span class="identifier">_r1</span></code> is yet another Phoenix placeholder for
- the 1st inherited attribute (we have only one, use <code class="computeroutput"><span class="identifier">_r2</span></code>,
- <code class="computeroutput"><span class="identifier">_r3</span></code>, etc. if you have more).
- </p>
-<a name="spirit.qi.tutorials.mini_xml___asts_.a_lazy_lit"></a><h6>
-<a name="id626756"></a>
- <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.a_lazy_lit">A Lazy
+ <tt class="computeroutput"><span class="identifier">_r1</span></tt> is yet another Phoenix placeholder for
+ the 1st inherited attribute (we have only one, use <tt class="computeroutput"><span class="identifier">_r2</span></tt>,
+ <tt class="computeroutput"><span class="identifier">_r3</span></tt>, etc. if you have more).
+ </p>
+<a name="spirit.qi.tutorials.mini_xml___asts_.a_lazy_lit"></a><h5>
+<a name="id439627"></a>
+ <a href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.a_lazy_lit">A Lazy
Lit</a>
- </h6>
+ </h5>
<p>
- Check out how we used <code class="computeroutput"><span class="identifier">lit</span></code>
+ Check out how we used <tt class="computeroutput"><span class="identifier">lit</span></tt>
here, this time, not with a literal string, but with the value of the 1st
- inherited attribute, which is specified as <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></code>
+ inherited attribute, which is specified as <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span></tt>
in our rule declaration.
</p>
<p>
- Finally, our <code class="computeroutput"><span class="identifier">xml</span></code> rule:
+ 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>
<p>
- <code class="computeroutput"><span class="identifier">mini_xml</span></code> is our attribute
+ <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>
@@ -255,37 +260,37 @@
</pre>
<p>
Those who know Boost.Fusion
- now will notice <code class="computeroutput"><span class="identifier">at_c</span><span class="special"><</span><span class="number">0</span><span class="special">></span></code> and
- <code class="computeroutput"><span class="identifier">at_c</span><span class="special"><</span><span class="number">1</span><span class="special">></span></code>. This
- gives us a hint that <code class="computeroutput"><span class="identifier">mini_xml</span></code>
- is a sort of a tuple - a fusion sequence. <code class="computeroutput"><span class="identifier">at_c</span><span class="special"><</span><span class="identifier">N</span><span class="special">></span></code> here is a lazy version of the tuple
+ now will notice <tt class="computeroutput"><span class="identifier">at_c</span><span class="special"><</span><span class="number">0</span><span class="special">></span></tt> and
+ <tt class="computeroutput"><span class="identifier">at_c</span><span class="special"><</span><span class="number">1</span><span class="special">></span></tt>. This
+ gives us a hint that <tt class="computeroutput"><span class="identifier">mini_xml</span></tt>
+ is a sort of a tuple - a fusion sequence. <tt class="computeroutput"><span class="identifier">at_c</span><span class="special"><</span><span class="identifier">N</span><span class="special">></span></tt> here is a lazy version of the tuple
accessors, provided by Phoenix.
</p>
-<a name="spirit.qi.tutorials.mini_xml___asts_.how_it_all_works"></a><h6>
-<a name="id627087"></a>
- <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.how_it_all_works">How
+<a name="spirit.qi.tutorials.mini_xml___asts_.how_it_all_works"></a><h5>
+<a name="id440106"></a>
+ <a href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.how_it_all_works">How
it all works</a>
- </h6>
+ </h5>
<p>
So, what's happening?
</p>
-<div class="orderedlist"><ol class="orderedlist" type="1">
-<li class="listitem">
- Upon parsing <code class="computeroutput"><span class="identifier">start_tag</span></code>,
- the parsed start-tag string is placed in <code class="computeroutput"><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></code>.
- </li>
-<li class="listitem">
- Then we parse zero or more <code class="computeroutput"><span class="identifier">node</span></code>s.
- At each step, we <code class="computeroutput"><span class="identifier">push_back</span></code>
- the result into <code class="computeroutput"><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></code>.
- </li>
-<li class="listitem">
- Finally, we parse the <code class="computeroutput"><span class="identifier">end_tag</span></code>
- giving it an inherited attribute: <code class="computeroutput"><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></code>.
- This is the string we obtained from the <code class="computeroutput"><span class="identifier">start_tag</span></code>.
- Investigate <code class="computeroutput"><span class="identifier">end_tag</span></code> above.
+<div class="orderedlist"><ol type="1">
+<li>
+ Upon parsing <tt class="computeroutput"><span class="identifier">start_tag</span></tt>,
+ the parsed start-tag string is placed in <tt class="computeroutput"><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></tt>.
+ </li>
+<li>
+ Then we parse zero or more <tt class="computeroutput"><span class="identifier">node</span></tt>s.
+ At each step, we <tt class="computeroutput"><span class="identifier">push_back</span></tt>
+ the result into <tt class="computeroutput"><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></tt>.
+ </li>
+<li>
+ Finally, we parse the <tt class="computeroutput"><span class="identifier">end_tag</span></tt>
+ giving it an inherited attribute: <tt class="computeroutput"><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></tt>.
+ This is the string we obtained from the <tt class="computeroutput"><span class="identifier">start_tag</span></tt>.
+ Investigate <tt class="computeroutput"><span class="identifier">end_tag</span></tt> above.
It will fail to parse if it gets something different from what we got
- from the <code class="computeroutput"><span class="identifier">start_tag</span></code>. This
+ from the <tt class="computeroutput"><span class="identifier">start_tag</span></tt>. This
ensures that our tags are balanced.
</li>
</ol></div>
@@ -304,15 +309,15 @@
<span class="special">;</span>
</pre>
<p>
- passing in <code class="computeroutput"><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></code>, the string from start tag. This is referred
- to in the <code class="computeroutput"><span class="identifier">end_tag</span></code> body
- as <code class="computeroutput"><span class="identifier">_r1</span></code>.
- </p>
-<a name="spirit.qi.tutorials.mini_xml___asts_.the_structures"></a><h6>
-<a name="id627384"></a>
- <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.the_structures">The
+ passing in <tt class="computeroutput"><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></tt>, the string from start tag. This is referred
+ to in the <tt class="computeroutput"><span class="identifier">end_tag</span></tt> body
+ as <tt class="computeroutput"><span class="identifier">_r1</span></tt>.
+ </p>
+<a name="spirit.qi.tutorials.mini_xml___asts_.the_structures"></a><h5>
+<a name="id440550"></a>
+ <a href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.the_structures">The
Structures</a>
- </h6>
+ </h5>
<p>
Let's see our structures. It will definitely be hierarchical: xml is hierarchical.
It will also be recursive: xml is recursive.
@@ -341,17 +346,17 @@
</p>
<p>
</p>
-<a name="spirit.qi.tutorials.mini_xml___asts_.of_alternates_and_variants"></a><h6>
-<a name="id627579"></a>
- <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.of_alternates_and_variants">Of
+<a name="spirit.qi.tutorials.mini_xml___asts_.of_alternates_and_variants"></a><h5>
+<a name="id440818"></a>
+ <a href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.of_alternates_and_variants">Of
Alternates and Variants</a>
- </h6>
+ </h5>
<p>
- So that's how a <code class="computeroutput"><span class="identifier">mini_xml_node</span></code>
- looks like. We had a hint that it is either a <code class="computeroutput"><span class="identifier">string</span></code>
- or a <code class="computeroutput"><span class="identifier">mini_xml</span></code>. For this,
+ So that's how a <tt class="computeroutput"><span class="identifier">mini_xml_node</span></tt>
+ looks like. We had a hint that it is either a <tt class="computeroutput"><span class="identifier">string</span></tt>
+ or a <tt class="computeroutput"><span class="identifier">mini_xml</span></tt>. For this,
we use Boost.Variant.
- <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">recursive_wrapper</span></code> wraps <code class="computeroutput"><span class="identifier">mini_xml</span></code>, making it a recursive data
+ <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">recursive_wrapper</span></tt> wraps <tt class="computeroutput"><span class="identifier">mini_xml</span></tt>, making it a recursive data
structure.
</p>
<p>
@@ -365,16 +370,16 @@
<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 <code class="computeroutput"><span class="identifier">A</span></code> is the attribute
- of <code class="computeroutput"><span class="identifier">a</span></code> and <code class="computeroutput"><span class="identifier">B</span></code> is the attribute of <code class="computeroutput"><span class="identifier">b</span></code>.
+ 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.tutorials.mini_xml___asts_.adapting_structs_again"></a><h6>
-<a name="id627744"></a>
- <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.adapting_structs_again">Adapting
+<a name="spirit.qi.tutorials.mini_xml___asts_.adapting_structs_again"></a><h5>
+<a name="id441060"></a>
+ <a href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.adapting_structs_again">Adapting
structs again</a>
- </h6>
+ </h5>
<p>
- <code class="computeroutput"><span class="identifier">mini_xml</span></code> is no brainier.
+ <tt class="computeroutput"><span class="identifier">mini_xml</span></tt> is no brainier.
It is a plain ol' struct. But as we've seen in our employee example, we
can adapt that to be a Boost.Fusion
sequence:
@@ -394,11 +399,11 @@
</p>
<p>
</p>
-<a name="spirit.qi.tutorials.mini_xml___asts_.one_more_take"></a><h6>
-<a name="id627884"></a>
- <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.one_more_take">One
+<a name="spirit.qi.tutorials.mini_xml___asts_.one_more_take"></a><h5>
+<a name="id441258"></a>
+ <a href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.one_more_take">One
More Take</a>
- </h6>
+ </h5>
<p>
Here's another version. The AST structure remains the same, but this time,
you'll see that we make use of auto-rules making the grammar semantic-action-
@@ -461,19 +466,19 @@
the first xml parser example. The rules are almost the same, except that,
we got rid of semantic actions and used auto-rules (see the employee example
if you missed that). There are a couple of new stuff, though. It's all
- in the <code class="computeroutput"><span class="identifier">xml</span></code> rule:
+ in the <tt class="computeroutput"><span class="identifier">xml</span></tt> rule:
</p>
-<a name="spirit.qi.tutorials.mini_xml___asts_.local_variables"></a><h6>
-<a name="id628885"></a>
- <a class="link" href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.local_variables">Local
+<a name="spirit.qi.tutorials.mini_xml___asts_.local_variables"></a><h5>
+<a name="id442503"></a>
+ <a href="mini_xml___asts_.html#spirit.qi.tutorials.mini_xml___asts_.local_variables">Local
Variables</a>
- </h6>
+ </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>
<p>
- Wow, we have four template parameters now. What's that <code class="computeroutput"><span class="identifier">locals</span></code>
- guy doing there? Well, it declares that the rule <code class="computeroutput"><span class="identifier">xml</span></code>
- will have one local variable: a <code class="computeroutput"><span class="identifier">string</span></code>.
+ Wow, we have four template parameters now. What's that <tt class="computeroutput"><span class="identifier">locals</span></tt>
+ guy doing there? Well, it declares that the rule <tt class="computeroutput"><span class="identifier">xml</span></tt>
+ 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>
@@ -482,25 +487,25 @@
<span class="special">>></span> <span class="identifier">end_tag</span><span class="special">(</span><span class="identifier">_a</span><span class="special">)</span>
<span class="special">;</span>
</pre>
-<div class="orderedlist"><ol class="orderedlist" type="1">
-<li class="listitem">
- Upon parsing <code class="computeroutput"><span class="identifier">start_tag</span></code>,
+<div class="orderedlist"><ol type="1">
+<li>
+ Upon parsing <tt class="computeroutput"><span class="identifier">start_tag</span></tt>,
the parsed start-tag string is placed in the local variable specified
by (yet another) Phoenix
- placeholder: <code class="computeroutput"><span class="identifier">_a</span></code>. We have
- only one local variable. If we had more, these are designated by <code class="computeroutput"><span class="identifier">_b</span></code>..<code class="computeroutput"><span class="identifier">_z</span></code>.
+ placeholder: <tt class="computeroutput"><span class="identifier">_a</span></tt>. We have
+ only one local variable. If we had more, these are designated by <tt class="computeroutput"><span class="identifier">_b</span></tt>..<tt class="computeroutput"><span class="identifier">_z</span></tt>.
</li>
-<li class="listitem">
- Then we parse zero or more <code class="computeroutput"><span class="identifier">node</span></code>s.
+<li>
+ Then we parse zero or more <tt class="computeroutput"><span class="identifier">node</span></tt>s.
</li>
-<li class="listitem">
- Finally, we parse the <code class="computeroutput"><span class="identifier">end_tag</span></code>
- giving it an inherited attribute: <code class="computeroutput"><span class="identifier">_a</span></code>,
+<li>
+ Finally, we parse the <tt class="computeroutput"><span class="identifier">end_tag</span></tt>
+ giving it an inherited attribute: <tt class="computeroutput"><span class="identifier">_a</span></tt>,
our local variable.
</li>
</ol></div>
<p>
- There are no actions involved in stuffing data into our <code class="computeroutput"><span class="identifier">xml</span></code>
+ There are no actions involved in stuffing data into our <tt class="computeroutput"><span class="identifier">xml</span></tt>
attribute. It's all taken cared of thatnks to the auto-rule.
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___error_handling.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___error_handling.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/mini_xml___error_handling.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Mini XML - Error Handling</title>
+<title>Mini
+ XML - Error Handling</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="mini_xml___asts_.html" title="Mini XML - ASTs!">
+<link rel="previous" href="mini_xml___asts_.html" title="Mini XML - ASTs!">
<link rel="next" href="../quick_reference.html" title="Quick Reference">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,11 +23,15 @@
<div class="spirit-nav">
<a accesskey="p" href="mini_xml___asts_.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../quick_reference.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Mini XML - Error Handling">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.tutorials.mini_xml___error_handling"></a><a class="link" href="mini_xml___error_handling.html" title="Mini XML - Error Handling">Mini
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.tutorials.mini_xml___error_handling"></a><a href="mini_xml___error_handling.html" title="Mini
+ XML - Error Handling">Mini
XML - Error Handling</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<p>
A parser will not be complete without error handling. Spirit2 provides
some facilities to make it easy to adapt a grammar for error handling.
@@ -43,11 +48,11 @@
<p>
What's new?
</p>
-<a name="spirit.qi.tutorials.mini_xml___error_handling.readable_names"></a><h6>
-<a name="id629190"></a>
- <a class="link" href="mini_xml___error_handling.html#spirit.qi.tutorials.mini_xml___error_handling.readable_names">Readable
+<a name="spirit.qi.tutorials.mini_xml___error_handling.readable_names"></a><h5>
+<a name="id442956"></a>
+ <a href="mini_xml___error_handling.html#spirit.qi.tutorials.mini_xml___error_handling.readable_names">Readable
Names</a>
- </h6>
+ </h5>
<p>
First, when we call the base class, we give the grammar a name:
</p>
@@ -62,13 +67,13 @@
<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.tutorials.mini_xml___error_handling.on_error"></a><h6>
-<a name="id629370"></a>
- <a class="link" href="mini_xml___error_handling.html#spirit.qi.tutorials.mini_xml___error_handling.on_error">On
+<a name="spirit.qi.tutorials.mini_xml___error_handling.on_error"></a><h5>
+<a name="id443207"></a>
+ <a href="mini_xml___error_handling.html#spirit.qi.tutorials.mini_xml___error_handling.on_error">On
Error</a>
- </h6>
+ </h5>
<p>
- <code class="computeroutput"><span class="identifier">on_error</span></code> declares our error
+ <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>
@@ -90,8 +95,8 @@
<span class="special">);</span>
</pre>
<p>
- we choose to <code class="computeroutput"><span class="identifier">fail</span></code> in our
- example for the <code class="computeroutput"><span class="identifier">Action</span></code>:
+ we choose to <tt class="computeroutput"><span class="identifier">fail</span></tt> in our
+ example for the <tt class="computeroutput"><span class="identifier">Action</span></tt>:
Quit and fail. Return a no_match (false). It can be one of:
</p>
<div class="informaltable"><table class="table">
@@ -100,75 +105,55 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
- <code class="computeroutput"><span class="identifier">Action</span></code>
- </p>
- </th>
-<th>
- <p>
+<th><p>
+ <tt class="computeroutput"><span class="identifier">Action</span></tt>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
+<td><p>
fail
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Quit and fail. Return a no_match.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
retry
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Attempt error recovery, possibly moving the iterator position.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
accept
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Force success, moving the iterator position appropriately.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
rethrow
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Rethrows the error.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
<p>
- <code class="computeroutput"><span class="identifier">rule</span></code> is the rule we attach
- the handler to. In our case, we are attaching to the <code class="computeroutput"><span class="identifier">xml</span></code>
+ <tt class="computeroutput"><span class="identifier">rule</span></tt> is the rule we attach
+ the handler to. In our case, we are attaching to the <tt class="computeroutput"><span class="identifier">xml</span></tt>
rule.
</p>
<p>
- <code class="computeroutput"><span class="identifier">handler</span></code> is the actual error
+ <tt class="computeroutput"><span class="identifier">handler</span></tt> is the actual error
handling function. It expects 4 arguments:
</p>
<div class="informaltable"><table class="table">
@@ -177,77 +162,57 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Arg
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
+<td><p>
first
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
The position of the iterator when the rule with the handler was
entered.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
last
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
The end of input.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
error-pos
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
The actual position of the iterator where the error occurred.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
what
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
What failed: a string decribing the failure.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
-<a name="spirit.qi.tutorials.mini_xml___error_handling.expectation_points"></a><h6>
-<a name="id629879"></a>
- <a class="link" href="mini_xml___error_handling.html#spirit.qi.tutorials.mini_xml___error_handling.expectation_points">Expectation
+<a name="spirit.qi.tutorials.mini_xml___error_handling.expectation_points"></a><h5>
+<a name="id443877"></a>
+ <a href="mini_xml___error_handling.html#spirit.qi.tutorials.mini_xml___error_handling.expectation_points">Expectation
Points</a>
- </h6>
+ </h5>
<p>
You might not have noticed it, but some of our expressions changed from
- using the <code class="computeroutput"><span class="special">>></span></code> to <code class="computeroutput"><span class="special">></span></code>. Look, for example:
+ 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>
<span class="string">"</"</span>
@@ -258,10 +223,10 @@
<p>
What is it? It's the <span class="emphasis"><em>expectation</em></span> operator. You will
have some "deterministic points" in the grammar. Those are the
- places where backtracking <span class="bold"><strong>cannot</strong></span> occur.
- For our example above, when you get a <code class="computeroutput"><span class="string">"</"</span></code>,
+ places where backtracking <span class="bold"><b>cannot</b></span> occur.
+ For our example above, when you get a <tt class="computeroutput"><span class="string">"</"</span></tt>,
you definitely must see a valid end-tag label next. It should be the one
- you got from the start-tag. After that, you definitely must have a <code class="computeroutput"><span class="char">'>'</span></code> next. Otherwise, there is no point in
+ you got from the start-tag. After that, you definitely must have a <tt class="computeroutput"><span class="char">'>'</span></tt> next. Otherwise, there is no point in
proceeding forward and trying other branches, regardless where they are.
The input is definitely erroneous. When this happens, an expectation_failure
exception is thrown. Somewhere outward, the error handler will catch the
Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/number_list___stuffing_numbers_into_a_std__vector.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/number_list___stuffing_numbers_into_a_std__vector.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/number_list___stuffing_numbers_into_a_std__vector.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Number List - stuffing numbers into a std::vector</title>
+<title>Number
+ List - stuffing numbers into a std::vector</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="sum___adding_numbers.html" title="Sum - adding numbers">
-<link rel="next" href="number_list_redux___list_syntax.html" title="Number List Redux - list syntax">
+<link rel="previous" href="sum___adding_numbers.html" title="Sum - adding
+ numbers">
+<link rel="next" href="number_list_redux___list_syntax.html" title="Number
+ List Redux - list syntax">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +25,15 @@
<div class="spirit-nav">
<a accesskey="p" href="sum___adding_numbers.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="number_list_redux___list_syntax.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Number List - stuffing numbers into a std::vector">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.tutorials.number_list___stuffing_numbers_into_a_std__vector"></a><a class="link" href="number_list___stuffing_numbers_into_a_std__vector.html" title="Number List - stuffing numbers into a std::vector">Number
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.tutorials.number_list___stuffing_numbers_into_a_std__vector"></a><a href="number_list___stuffing_numbers_into_a_std__vector.html" title="Number
+ List - stuffing numbers into a std::vector">Number
List - stuffing numbers into a std::vector</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<p>
This sample demontrates a parser for a comma separated list of numbers.
The numbers are inserted in a vector using phoenix.
@@ -72,18 +79,18 @@
</p>
<p>
This, again, is the same parser as before. This time, instead of summing
- up the numbers, we stuff them in a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code>.
- <code class="computeroutput"><span class="identifier">push_back</span></code> is supplied by
+ up the numbers, we stuff them in a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></tt>.
+ <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>
<p>
- appends the parsed number. Like before, <code class="computeroutput"><span class="identifier">_1</span></code>
+ appends the parsed number. Like before, <tt class="computeroutput"><span class="identifier">_1</span></tt>
is a Phoenix placeholder
- for the parsed result attribute. Also, like before, <code class="computeroutput"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">v</span><span class="special">)</span></code>
+ for the parsed result attribute. Also, like before, <tt class="computeroutput"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">v</span><span class="special">)</span></tt>
tells Phoenix that
- <code class="computeroutput"><span class="identifier">v</span></code>, the <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code>,
+ <tt class="computeroutput"><span class="identifier">v</span></tt>, the <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></tt>,
is a mutable reference.
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/number_list_attribute___one_more__with_style.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/number_list_attribute___one_more__with_style.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/number_list_attribute___one_more__with_style.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Number List Attribute - one more, with style</title>
+<title>Number
+ List Attribute - one more, with style</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="number_list_redux___list_syntax.html" title="Number List Redux - list syntax">
+<link rel="previous" href="number_list_redux___list_syntax.html" title="Number
+ List Redux - list syntax">
<link rel="next" href="roman_numerals.html" title="Roman Numerals">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,14 +24,18 @@
<div class="spirit-nav">
<a accesskey="p" href="number_list_redux___list_syntax.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="roman_numerals.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Number List Attribute - one more, with style">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.tutorials.number_list_attribute___one_more__with_style"></a><a class="link" href="number_list_attribute___one_more__with_style.html" title="Number List Attribute - one more, with style">Number
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.tutorials.number_list_attribute___one_more__with_style"></a><a href="number_list_attribute___one_more__with_style.html" title="Number
+ List Attribute - one more, with style">Number
List Attribute - one more, with style</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<p>
- You've seen that the <code class="computeroutput"><span class="identifier">double_</span></code>
- parser has a <code class="computeroutput"><span class="keyword">double</span></code> attribute.
+ You've seen that the <tt class="computeroutput"><span class="identifier">double_</span></tt>
+ parser has a <tt class="computeroutput"><span class="keyword">double</span></tt> attribute.
All parsers have an attribute, even complex parsers, those that are composed
from primitives using operators, like the list parser, also have an attribute.
It so happens that the the attribute of a list parser:
@@ -37,7 +43,7 @@
<pre class="programlisting"><span class="identifier">p</span> <span class="special">%</span> <span class="identifier">d</span>
</pre>
<p>
- is a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code> of the attribute of <code class="computeroutput"><span class="identifier">p</span></code>. So, for our parser:
+ 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>
@@ -47,25 +53,25 @@
<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 <code 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></code>
+ 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>
to our number list parser and it will happily churn out our result in our
- vector. For that to happen, we'll use a variation of the <code class="computeroutput"><span class="identifier">phrase_parse</span></code> with an additional argument:
+ vector. For that to happen, we'll use a variation of the <tt class="computeroutput"><span class="identifier">phrase_parse</span></tt> with an additional argument:
the parser's attribute:
</p>
-<div class="orderedlist"><ol class="orderedlist" type="1">
-<li class="listitem">
+<div class="orderedlist"><ol type="1">
+<li>
An iterator pointing to the start of the input
</li>
-<li class="listitem">
+<li>
An iterator pointing to one past the end of the input
</li>
-<li class="listitem">
+<li>
The parser object
</li>
-<li class="listitem">
+<li>
The parser's attribute
</li>
-<li class="listitem">
+<li>
Another parser called the skip parser
</li>
</ol></div>
@@ -109,7 +115,7 @@
The full cpp file for this example can be found here: ../../example/qi/num_list4.cpp
</p>
<p>
- <span class="bold"><strong>Hey, no more actions!!!</strong></span> Now we're entering
+ <span class="bold"><b>Hey, no more actions!!!</b></span> Now we're entering
the realm of attribute grammars. Cool eh?
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/number_list_redux___list_syntax.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/number_list_redux___list_syntax.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/number_list_redux___list_syntax.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Number List Redux - list syntax</title>
+<title>Number
+ List Redux - list syntax</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="number_list___stuffing_numbers_into_a_std__vector.html" title="Number List - stuffing numbers into a std::vector">
-<link rel="next" href="number_list_attribute___one_more__with_style.html" title="Number List Attribute - one more, with style">
+<link rel="previous" href="number_list___stuffing_numbers_into_a_std__vector.html" title="Number
+ List - stuffing numbers into a std::vector">
+<link rel="next" href="number_list_attribute___one_more__with_style.html" title="Number
+ List Attribute - one more, with style">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +25,15 @@
<div class="spirit-nav">
<a accesskey="p" href="number_list___stuffing_numbers_into_a_std__vector.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="number_list_attribute___one_more__with_style.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Number List Redux - list syntax">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.tutorials.number_list_redux___list_syntax"></a><a class="link" href="number_list_redux___list_syntax.html" title="Number List Redux - list syntax">Number
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.tutorials.number_list_redux___list_syntax"></a><a href="number_list_redux___list_syntax.html" title="Number
+ List Redux - list syntax">Number
List Redux - list syntax</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<p>
So far, we've been using the syntax:
</p>
@@ -40,7 +47,7 @@
<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 <code class="computeroutput"><span class="char">','</span></code>.
+ read as: a list of doubles separated by <tt class="computeroutput"><span class="char">','</span></tt>.
</p>
<p>
This sample, again a variation of our previous example, demonstrates just
Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/quick_start.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/quick_start.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/quick_start.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Quick Start</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="../tutorials.html" title="Tutorials">
+<link rel="previous" href="../tutorials.html" title="Tutorials">
<link rel="next" href="warming_up.html" title="Warming up">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,15 +22,18 @@
<div class="spirit-nav">
<a accesskey="p" href="../tutorials.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="warming_up.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Quick Start">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.tutorials.quick_start"></a><a class="link" href="quick_start.html" title="Quick Start">Quick Start</a>
-</h4></div></div></div>
-<a name="spirit.qi.tutorials.quick_start.why_would_you_want_to_use_spirit_qi_"></a><h6>
-<a name="id608511"></a>
- <a class="link" href="quick_start.html#spirit.qi.tutorials.quick_start.why_would_you_want_to_use_spirit_qi_">Why
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.tutorials.quick_start"></a>Quick Start
+</h4></div></div>
+<div></div>
+</div>
+<a name="spirit.qi.tutorials.quick_start.why_would_you_want_to_use_spirit_qi_"></a><h5>
+<a name="id420983"></a>
+ <a href="quick_start.html#spirit.qi.tutorials.quick_start.why_would_you_want_to_use_spirit_qi_">Why
would you want to use Spirit.Qi?</a>
- </h6>
+ </h5>
<p>
Spirit.Qi is designed to be a practical parsing tool. The ability to generate
a fully-working parser from a formal EBNF specification inlined in C++
Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/roman_numerals.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/roman_numerals.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/roman_numerals.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,13 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Roman Numerals</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="number_list_attribute___one_more__with_style.html" title="Number List Attribute - one more, with style">
-<link rel="next" href="employee___parsing_into_structs.html" title="Employee - Parsing into structs">
+<link rel="previous" href="number_list_attribute___one_more__with_style.html" title="Number
+ List Attribute - one more, with style">
+<link rel="next" href="employee___parsing_into_structs.html" title="Employee
+ - Parsing into structs">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,32 +24,35 @@
<div class="spirit-nav">
<a accesskey="p" href="number_list_attribute___one_more__with_style.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="employee___parsing_into_structs.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Roman Numerals">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.tutorials.roman_numerals"></a><a class="link" href="roman_numerals.html" title="Roman Numerals">Roman Numerals</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.tutorials.roman_numerals"></a>Roman Numerals
+</h4></div></div>
+<div></div>
+</div>
<p>
This example demonstrates:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
symbol table
</li>
-<li class="listitem">
+<li>
rule
</li>
-<li class="listitem">
+<li>
grammar
</li>
</ul></div>
-<a name="spirit.qi.tutorials.roman_numerals.symbol_table"></a><h6>
-<a name="id615702"></a>
- <a class="link" href="roman_numerals.html#spirit.qi.tutorials.roman_numerals.symbol_table">Symbol
+<a name="spirit.qi.tutorials.roman_numerals.symbol_table"></a><h5>
+<a name="id429314"></a>
+ <a href="roman_numerals.html#spirit.qi.tutorials.roman_numerals.symbol_table">Symbol
Table</a>
- </h6>
+ </h5>
<p>
The symbol table holds a dictionary of symbols where each symbol is a sequence
- of characters (a <code class="computeroutput"><span class="keyword">char</span></code>, <code class="computeroutput"><span class="keyword">wchar_t</span></code>, <code class="computeroutput"><span class="keyword">int</span></code>,
+ of characters (a <tt class="computeroutput"><span class="keyword">char</span></tt>, <tt class="computeroutput"><span class="keyword">wchar_t</span></tt>, <tt class="computeroutput"><span class="keyword">int</span></tt>,
enumeration etc.) . The template class, parameterized by the character
type, can work efficiently with 8, 16, 32 and even 64 bit characters. Mutable
data of type T is associated with each symbol.
@@ -168,19 +173,19 @@
<p>
</p>
<p>
- Now we can use <code class="computeroutput"><span class="identifier">hundreds</span></code>,
- <code class="computeroutput"><span class="identifier">tens</span></code> and <code class="computeroutput"><span class="identifier">ones</span></code> anywhere in our parser expressions.
+ Now we can use <tt class="computeroutput"><span class="identifier">hundreds</span></tt>,
+ <tt class="computeroutput"><span class="identifier">tens</span></tt> and <tt class="computeroutput"><span class="identifier">ones</span></tt> anywhere in our parser expressions.
They are all parsers.
</p>
-<a name="spirit.qi.tutorials.roman_numerals.rules"></a><h6>
-<a name="id617374"></a>
- <a class="link" href="roman_numerals.html#spirit.qi.tutorials.roman_numerals.rules">Rules</a>
- </h6>
+<a name="spirit.qi.tutorials.roman_numerals.rules"></a><h5>
+<a name="id430627"></a>
+ Rules
+ </h5>
<p>
Up until now, we've been inlining our parser expressions, passing them
- directly to the <code class="computeroutput"><span class="identifier">phrase_parse</span></code>
+ directly to the <tt class="computeroutput"><span class="identifier">phrase_parse</span></tt>
function. The expression evaluates into a temporary, unnamed parser which
- is passed into the <code class="computeroutput"><span class="identifier">phrase_parse</span></code>
+ is passed into the <tt class="computeroutput"><span class="identifier">phrase_parse</span></tt>
function, used, and then destroyed. This is fine for small parsers. When
the expressions get complicated, you'd want to break the expressions into
smaller easier to understand pieces, name them, and refer to them from
@@ -194,8 +199,8 @@
</pre>
<p>
At the very least, the rule needs to know the iterator type it will be
- working on. This rule cannot be used with <code class="computeroutput"><span class="identifier">phrase_parse</span></code>.
- It can only be used with the <code class="computeroutput"><span class="identifier">parse</span></code>
+ working on. This rule cannot be used with <tt class="computeroutput"><span class="identifier">phrase_parse</span></tt>.
+ It can only be used with the <tt class="computeroutput"><span class="identifier">parse</span></tt>
function -- a version that does not do white space skipping (does not have
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:
@@ -208,8 +213,8 @@
<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 <code class="computeroutput"><span class="identifier">phrase_parse</span></code>
- and <code class="computeroutput"><span class="identifier">parse</span></code>.
+ This type of rule can be used for both <tt class="computeroutput"><span class="identifier">phrase_parse</span></tt>
+ and <tt class="computeroutput"><span class="identifier">parse</span></tt>.
</p>
<p>
For our next example, there's one more rule form you should know about:
@@ -221,19 +226,19 @@
</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>
-<div class="tip" title="Tip"><table border="0" summary="Tip">
+<div class="tip"><table border="0" summary="Tip">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Tip]" src="../../../images/tip.png"></td>
<th align="left">Tip</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
All rule template arguments after Iterator can be supplied in any order.
</p></td></tr>
</table></div>
<p>
The Signature specifies the attributes of the rule. You've seen that our
- parsers can have an attribute. Recall that the <code class="computeroutput"><span class="identifier">double_</span></code>
- parser has an attribute of <code class="computeroutput"><span class="keyword">double</span></code>.
+ parsers can have an attribute. Recall that the <tt class="computeroutput"><span class="identifier">double_</span></tt>
+ parser has an attribute of <tt class="computeroutput"><span class="keyword">double</span></tt>.
To be precise, these are <span class="emphasis"><em>synthesized</em></span> attributes. The
parser "synthesizes" the attribute value. Think of them as function
return values.
@@ -252,27 +257,27 @@
</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>
-<a name="spirit.qi.tutorials.roman_numerals.grammars"></a><h6>
-<a name="id617766"></a>
- <a class="link" href="roman_numerals.html#spirit.qi.tutorials.roman_numerals.grammars">Grammars</a>
- </h6>
+<a name="spirit.qi.tutorials.roman_numerals.grammars"></a><h5>
+<a name="id431212"></a>
+ Grammars
+ </h5>
<p>
A grammar encapsulates one or more rules. It has the same template parameters
as the rule. You declare a grammar by:
</p>
-<div class="orderedlist"><ol class="orderedlist" type="1">
-<li class="listitem">
- deriving a struct (or class) from the <code class="computeroutput"><span class="identifier">grammar</span></code>
+<div class="orderedlist"><ol type="1">
+<li>
+ deriving a struct (or class) from the <tt class="computeroutput"><span class="identifier">grammar</span></tt>
class template
</li>
-<li class="listitem">
+<li>
declare one or more rules as member variables
</li>
-<li class="listitem">
+<li>
initialize the base grammar class by giving it the start rule (its the
first rule that gets called when the grammar starts parsing)
</li>
-<li class="listitem">
+<li>
initialize your rules in your constructor
</li>
</ol></div>
@@ -315,52 +320,52 @@
<p>
Things to take notice of:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
- The grammar and start rule signature is <code class="computeroutput"><span class="keyword">unsigned</span><span class="special">()</span></code>. It has a synthesized attribute (return
- value) of type <code class="computeroutput"><span class="keyword">unsigned</span></code>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ The grammar and start rule signature is <tt class="computeroutput"><span class="keyword">unsigned</span><span class="special">()</span></tt>. It has a synthesized attribute (return
+ value) of type <tt class="computeroutput"><span class="keyword">unsigned</span></tt>
with no inherited attributes (arguments).
</li>
-<li class="listitem">
+<li>
We did not specify a skip-parser. We don't want to skip in between the
numerals.
</li>
-<li class="listitem">
-<code class="computeroutput"><span class="identifier">roman</span><span class="special">::</span><span class="identifier">base_type</span></code> is a typedef for <code class="computeroutput"><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></code>.
- If <code class="computeroutput"><span class="identifier">roman</span></code> was not a template,
+<li>
+<tt class="computeroutput"><span class="identifier">roman</span><span class="special">::</span><span class="identifier">base_type</span></tt> is a typedef for <tt class="computeroutput"><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></tt>.
+ If <tt class="computeroutput"><span class="identifier">roman</span></tt> was not a template,
you can simply write: base_type(start)
</li>
-<li class="listitem">
+<li>
But it's best to make your grammar templates, so that they can be reused
for different iterator types.
</li>
-<li class="listitem">
-<code class="computeroutput"><span class="identifier">_val</span></code> is another Phoenix placeholder representing
+<li>
+<tt class="computeroutput"><span class="identifier">_val</span></tt> is another Phoenix placeholder representing
the rule's synthesized attribute.
</li>
-<li class="listitem">
-<code class="computeroutput"><span class="identifier">eps</span></code> is a special spirit
+<li>
+<tt class="computeroutput"><span class="identifier">eps</span></tt> is a special spirit
parser that consumes no input but is always successful. We use it to
- initialize <code class="computeroutput"><span class="identifier">_val</span></code>, the
+ initialize <tt class="computeroutput"><span class="identifier">_val</span></tt>, the
rule's synthesized attribute, to zero before anything else. The actual
- parser starts at <code class="computeroutput"><span class="special">+</span><span class="identifier">char_</span><span class="special">(</span><span class="char">'M'</span><span class="special">)</span></code>,
- parsing roman thousands. Using <code class="computeroutput"><span class="identifier">eps</span></code>
+ parser starts at <tt class="computeroutput"><span class="special">+</span><span class="identifier">char_</span><span class="special">(</span><span class="char">'M'</span><span class="special">)</span></tt>,
+ parsing roman thousands. Using <tt class="computeroutput"><span class="identifier">eps</span></tt>
this way is good for doing pre and post initializations.
</li>
-<li class="listitem">
- The expression <code class="computeroutput"><span class="identifier">a</span> <span class="special">||</span>
- <span class="identifier">b</span></code> reads: match a or b and in
- sequence. That is, if both <code class="computeroutput"><span class="identifier">a</span></code>
- and <code class="computeroutput"><span class="identifier">b</span></code> match, it must
- be in sequence; this is equivalent to <code class="computeroutput"><span class="identifier">a</span>
- <span class="special">>></span> <span class="special">-</span><span class="identifier">b</span> <span class="special">|</span> <span class="identifier">b</span></code>, but more efficient.
+<li>
+ The expression <tt class="computeroutput"><span class="identifier">a</span> <span class="special">||</span>
+ <span class="identifier">b</span></tt> reads: match a or b and in
+ sequence. That is, if both <tt class="computeroutput"><span class="identifier">a</span></tt>
+ and <tt class="computeroutput"><span class="identifier">b</span></tt> match, it must
+ be in sequence; this is equivalent to <tt class="computeroutput"><span class="identifier">a</span>
+ <span class="special">>></span> <span class="special">-</span><span class="identifier">b</span> <span class="special">|</span> <span class="identifier">b</span></tt>, but more efficient.
</li>
</ul></div>
-<a name="spirit.qi.tutorials.roman_numerals.let_s_parse_"></a><h6>
-<a name="id618493"></a>
- <a class="link" href="roman_numerals.html#spirit.qi.tutorials.roman_numerals.let_s_parse_">Let's Parse!</a>
- </h6>
+<a name="spirit.qi.tutorials.roman_numerals.let_s_parse_"></a><h5>
+<a name="id432227"></a>
+ Let's Parse!
+ </h5>
<p>
</p>
<p>
@@ -389,12 +394,12 @@
<p>
</p>
<p>
- <code class="computeroutput"><span class="identifier">roman_parser</span></code> is an object
- of type <code class="computeroutput"><span class="identifier">roman</span></code> -our roman
+ <tt class="computeroutput"><span class="identifier">roman_parser</span></tt> is an object
+ of type <tt class="computeroutput"><span class="identifier">roman</span></tt> -our roman
numeral parser. This time around, we are using the no-skipping version
of the parse functions. We do not want to skip any spaces! We are also
- passing in an attribute, <code class="computeroutput"><span class="keyword">unsigned</span>
- <span class="identifier">result</span></code>, which will receive the
+ passing in an attribute, <tt class="computeroutput"><span class="keyword">unsigned</span>
+ <span class="identifier">result</span></tt>, which will receive the
parsed value.
</p>
<p>
Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/semantic_actions.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/semantic_actions.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/semantic_actions.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,11 +3,12 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Semantic Actions</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="warming_up.html" title="Warming up">
-<link rel="next" href="complex___our_first_complex_parser.html" title="Complex - Our first complex parser">
+<link rel="previous" href="warming_up.html" title="Warming up">
+<link rel="next" href="complex___our_first_complex_parser.html" title="Complex
+ - Our first complex parser">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,10 +23,13 @@
<div class="spirit-nav">
<a accesskey="p" href="warming_up.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="complex___our_first_complex_parser.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Semantic Actions">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.tutorials.semantic_actions"></a><a class="link" href="semantic_actions.html" title="Semantic Actions">Semantic Actions</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.tutorials.semantic_actions"></a>Semantic Actions
+</h4></div></div>
+<div></div>
+</div>
<p>
The example in the previous section was very simplistic. It only recognized
data, but did nothing with it. It answered the question: "Did the
@@ -37,22 +41,22 @@
Semantic actions may be attached to any point in the grammar specification.
These actions are C++ functions or function objects that are called whenever
a part of the parser successfully recognizes a portion of the input. Say
- you have a parser <code class="computeroutput"><span class="identifier">P</span></code>, and
- a C++ function <code class="computeroutput"><span class="identifier">F</span></code>. You can
- make the parser call <code class="computeroutput"><span class="identifier">F</span></code>
- whenever it matches an input by attaching <code class="computeroutput"><span class="identifier">F</span></code>:
+ you have a parser <tt class="computeroutput"><span class="identifier">P</span></tt>, and
+ a C++ function <tt class="computeroutput"><span class="identifier">F</span></tt>. You 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>
<p>
- The expression above links <code class="computeroutput"><span class="identifier">F</span></code>
- to the parser, <code class="computeroutput"><span class="identifier">P</span></code>.
+ The expression above links <tt class="computeroutput"><span class="identifier">F</span></tt>
+ to the parser, <tt class="computeroutput"><span class="identifier">P</span></tt>.
</p>
<p>
The function/function object signature depends on the type of the parser
- to which it is attached. The parser <code class="computeroutput"><span class="identifier">double_</span></code>
- passes the parsed number. Thus, if we were to attach a function <code class="computeroutput"><span class="identifier">F</span></code> to <code class="computeroutput"><span class="identifier">double_</span></code>,
- we need <code class="computeroutput"><span class="identifier">F</span></code> to be declared
+ to which it is attached. The parser <tt class="computeroutput"><span class="identifier">double_</span></tt>
+ passes the parsed number. Thus, if we were to attach a function <tt class="computeroutput"><span class="identifier">F</span></tt> to <tt class="computeroutput"><span class="identifier">double_</span></tt>,
+ 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>
@@ -67,22 +71,22 @@
<p>
Presented are various ways to attach semantic actions:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
Using plain function pointer
</li>
-<li class="listitem">
+<li>
Using simple function object
</li>
-<li class="listitem">
+<li>
Using Boost.Bind with
a plain function
</li>
-<li class="listitem">
+<li>
Using Boost.Bind with
a member function
</li>
-<li class="listitem">
+<li>
Using Boost.Lambda
</li>
</ul></div>
@@ -128,11 +132,11 @@
<p>
</p>
<p>
- Take note that with function objects, we need to have an <code class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></code>
+ Take note that with function objects, we need to have an <tt class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></tt>
with 3 arguments. Since we don't care about the other two, we can use
- <code class="computeroutput"><span class="identifier">unused_type</span></code> for these.
- We'll see more of <code class="computeroutput"><span class="identifier">unused_type</span></code>
- elsewhere. <code class="computeroutput"><span class="identifier">unused_type</span></code>
+ <tt class="computeroutput"><span class="identifier">unused_type</span></tt> for these.
+ We'll see more of <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
+ elsewhere. <tt class="computeroutput"><span class="identifier">unused_type</span></tt>
is a Spirit supplied support class.
</p>
<p>
@@ -158,8 +162,8 @@
<p>
</p>
<p>
- What's new? Well <code class="computeroutput"><span class="identifier">int_</span></code> is
- the sibbling of <code class="computeroutput"><span class="identifier">double_</span></code>.
+ What's new? Well <tt class="computeroutput"><span class="identifier">int_</span></tt> is
+ the sibbling of <tt class="computeroutput"><span class="identifier">double_</span></tt>.
I'm sure you can guess what this parser does.
</p>
<p>
@@ -231,10 +235,10 @@
<p>
The examples above can be found here: ../../example/qi/actions.cpp
</p>
-<a name="spirit.qi.tutorials.semantic_actions.phoenix"></a><h6>
-<a name="id611979"></a>
- <a class="link" href="semantic_actions.html#spirit.qi.tutorials.semantic_actions.phoenix">Phoenix</a>
- </h6>
+<a name="spirit.qi.tutorials.semantic_actions.phoenix"></a><h5>
+<a name="id424230"></a>
+ Phoenix
+ </h5>
<p>
<a href="../../../../../phoenix/doc/html/index.html" target="_top">Phoenix</a>, a companion
library bundled with Spirit, is specifically suited for binding semantic
Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/sum___adding_numbers.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/sum___adding_numbers.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/sum___adding_numbers.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,16 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Sum - adding numbers</title>
+<title>Sum - adding
+ numbers</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="complex___our_first_complex_parser.html" title="Complex - Our first complex parser">
-<link rel="next" href="number_list___stuffing_numbers_into_a_std__vector.html" title="Number List - stuffing numbers into a std::vector">
+<link rel="previous" href="complex___our_first_complex_parser.html" title="Complex
+ - Our first complex parser">
+<link rel="next" href="number_list___stuffing_numbers_into_a_std__vector.html" title="Number
+ List - stuffing numbers into a std::vector">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,11 +25,15 @@
<div class="spirit-nav">
<a accesskey="p" href="complex___our_first_complex_parser.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="number_list___stuffing_numbers_into_a_std__vector.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Sum - adding numbers">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.tutorials.sum___adding_numbers"></a><a class="link" href="sum___adding_numbers.html" title="Sum - adding numbers">Sum - adding
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.tutorials.sum___adding_numbers"></a><a href="sum___adding_numbers.html" title="Sum - adding
+ numbers">Sum - adding
numbers</a>
-</h4></div></div></div>
+</h4></div></div>
+<div></div>
+</div>
<p>
Here's a parser that sums a comma-separated list of numbers.
</p>
@@ -76,88 +83,64 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Namespace
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
+<td><p>
boost::phoenix
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
All of phoenix
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
boost::spirit
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
All of spirit
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
boost::spirit::qi
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
All of spirit.qi
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
boost::spirit::ascii
- </p>
- </td>
-<td>
- <p>
- ASCII version of <code class="computeroutput"><span class="identifier">char_</span></code>
+ </p></td>
+<td><p>
+ ASCII version of <tt class="computeroutput"><span class="identifier">char_</span></tt>
and all char related parsers. Other encodings are also provided
(e.g. also an ISO8859.1)
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
boost::spirit::arg_names
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Special phoenix placeholders for spirit
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
If you feel uneasy with using whole namespaces, feel free to qualify
your code, use namespace aliases, etc. For the purpose of this tutorial,
we will be presenting unqualified names for both Spirit and Phoenix.
@@ -209,25 +192,25 @@
the sum of all the parsed numbers.
</p>
<p>
- The first <code class="computeroutput"><span class="identifier">double_</span></code> parser
+ 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>
<p>
- This assigns the parsed result (actually, the attribute of <code class="computeroutput"><span class="identifier">double_</span></code>) to <code class="computeroutput"><span class="identifier">n</span></code>.
- <code class="computeroutput"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></code> tells
- Phoenix that <code class="computeroutput"><span class="identifier">n</span></code> is a mutable reference. <code class="computeroutput"><span class="identifier">_1</span></code> is a Phoenix
+ 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>.
+ <tt class="computeroutput"><span class="identifier">ref</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></tt> tells
+ Phoenix that <tt class="computeroutput"><span class="identifier">n</span></tt> is a mutable reference. <tt class="computeroutput"><span class="identifier">_1</span></tt> is a Phoenix
placeholder for the parsed result attribute.
</p>
<p>
- The second <code class="computeroutput"><span class="identifier">double_</span></code> parser
+ 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>
<p>
- So, subsequent numbers add into <code class="computeroutput"><span class="identifier">n</span></code>.
+ So, subsequent numbers add into <tt class="computeroutput"><span class="identifier">n</span></tt>.
</p>
<p>
That wasn't too bad, was it :-) ?
Modified: trunk/libs/spirit/doc/html/spirit/qi/tutorials/warming_up.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/qi/tutorials/warming_up.html (original)
+++ trunk/libs/spirit/doc/html/spirit/qi/tutorials/warming_up.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Warming up</title>
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../../index.html" title="Spirit 2.1">
<link rel="up" href="../tutorials.html" title="Tutorials">
-<link rel="prev" href="quick_start.html" title="Quick Start">
+<link rel="previous" href="quick_start.html" title="Quick Start">
<link rel="next" href="semantic_actions.html" title="Semantic Actions">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,10 +22,13 @@
<div class="spirit-nav">
<a accesskey="p" href="quick_start.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="semantic_actions.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Warming up">
-<div class="titlepage"><div><div><h4 class="title">
-<a name="spirit.qi.tutorials.warming_up"></a><a class="link" href="warming_up.html" title="Warming up">Warming up</a>
-</h4></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h4 class="title">
+<a name="spirit.qi.tutorials.warming_up"></a>Warming up
+</h4></div></div>
+<div></div>
+</div>
<p>
We'll start by showing examples of parser expressions to give you a feel
on how to build parsers from the simplest parser, building up as we go.
@@ -33,11 +36,11 @@
the expressions may seem awkward at first. Spirit
heavily uses operator overloading to accomplish its magic.
</p>
-<a name="spirit.qi.tutorials.warming_up.trivial_example__1_parsing_a_number"></a><h6>
-<a name="id608566"></a>
- <a class="link" href="warming_up.html#spirit.qi.tutorials.warming_up.trivial_example__1_parsing_a_number">Trivial
+<a name="spirit.qi.tutorials.warming_up.trivial_example__1_parsing_a_number"></a><h5>
+<a name="id421094"></a>
+ <a href="warming_up.html#spirit.qi.tutorials.warming_up.trivial_example__1_parsing_a_number">Trivial
Example #1 Parsing a number</a>
- </h6>
+ </h5>
<p>
Create a parser that will parse a floating-point number.
</p>
@@ -48,11 +51,11 @@
a Spirit floating point parser (a built-in parser). Spirit has many pre-defined
parsers and consistent naming conventions help you keep from going insane!
</p>
-<a name="spirit.qi.tutorials.warming_up.trivial_example__2_parsing_two_numbers"></a><h6>
-<a name="id608595"></a>
- <a class="link" href="warming_up.html#spirit.qi.tutorials.warming_up.trivial_example__2_parsing_two_numbers">Trivial
+<a name="spirit.qi.tutorials.warming_up.trivial_example__2_parsing_two_numbers"></a><h5>
+<a name="id421145"></a>
+ <a href="warming_up.html#spirit.qi.tutorials.warming_up.trivial_example__2_parsing_two_numbers">Trivial
Example #2 Parsing two numbers</a>
- </h6>
+ </h5>
<p>
Create a parser that will accept a line consisting of two floating-point
numbers.
@@ -60,8 +63,8 @@
<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 <code class="computeroutput"><span class="identifier">double_</span></code>
- used twice, once for each number. What's that <code class="computeroutput"><span class="special">>></span></code>
+ Here you see the familiar floating-point numeric parser <tt class="computeroutput"><span class="identifier">double_</span></tt>
+ used twice, once for each number. What's that <tt class="computeroutput"><span class="special">>></span></tt>
operator doing in there? Well, they had to be separated by something, and
this was chosen as the "followed by" sequence operator. The above
program creates a parser from two simpler parsers, glueing them together
@@ -69,23 +72,23 @@
of smaller parsers. Whitespace between numbers can implicitly be consumed
depending on how the parser is invoked (see below).
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
When we combine parsers, we end up with a "bigger" parser,
but it's still a parser. Parsers can get bigger and bigger, nesting more
and more, but whenever you glue two parsers together, you end up with
one bigger parser. This is an important concept.
</p></td></tr>
</table></div>
-<a name="spirit.qi.tutorials.warming_up.trivial_example__3_parsing_one_or_more_numbers"></a><h6>
-<a name="id608656"></a>
- <a class="link" href="warming_up.html#spirit.qi.tutorials.warming_up.trivial_example__3_parsing_one_or_more_numbers">Trivial
+<a name="spirit.qi.tutorials.warming_up.trivial_example__3_parsing_one_or_more_numbers"></a><h5>
+<a name="id421253"></a>
+ <a href="warming_up.html#spirit.qi.tutorials.warming_up.trivial_example__3_parsing_one_or_more_numbers">Trivial
Example #3 Parsing one or more numbers</a>
- </h6>
+ </h5>
<p>
Create a parser that will accept zero or more floating-point numbers.
</p>
@@ -93,7 +96,7 @@
</pre>
<p>
This is like a regular-expression Kleene Star, though the syntax might
- look a bit odd for a C++ programmer not used to seeing the <code class="computeroutput"><span class="special">*</span></code> operator overloaded like this. Actually,
+ look a bit odd for a C++ programmer not used to seeing the <tt class="computeroutput"><span class="special">*</span></tt> operator overloaded like this. Actually,
if you know regular expressions it may look odd too since the star is before
the expression it modifies. C'est la vie. Blame it on the fact that we
must work with the syntax rules of C++.
@@ -104,11 +107,11 @@
expressions in parentheses for complex expressions. The Kleene Star is
also known as a Kleene Closure, but we call it the Star in most places.
</p>
-<a name="spirit.qi.tutorials.warming_up.trivial_example__4_parsing_a_comma_delimited_list_of_numbers"></a><h6>
-<a name="id608701"></a>
- <a class="link" href="warming_up.html#spirit.qi.tutorials.warming_up.trivial_example__4_parsing_a_comma_delimited_list_of_numbers">Trivial
+<a name="spirit.qi.tutorials.warming_up.trivial_example__4_parsing_a_comma_delimited_list_of_numbers"></a><h5>
+<a name="id421330"></a>
+ <a href="warming_up.html#spirit.qi.tutorials.warming_up.trivial_example__4_parsing_a_comma_delimited_list_of_numbers">Trivial
Example #4 Parsing a comma-delimited list of numbers</a>
- </h6>
+ </h5>
<p>
This example will create a parser that accepts a comma-delimited list of
numbers.
@@ -116,8 +119,8 @@
<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 <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="char">','</span><span class="special">)</span></code>. It is
- a literal character parser that can recognize the comma <code class="computeroutput"><span class="char">','</span></code>.
+ Notice <tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="char">','</span><span class="special">)</span></tt>. It is
+ a literal character parser that can recognize the comma <tt class="computeroutput"><span class="char">','</span></tt>.
In this case, the Kleene Star is modifying a more complex parser, namely,
the one generated by the expression:
</p>
@@ -127,38 +130,38 @@
Note that this is a case where the parentheses are necessary. The Kleene
star encloses the complete expression above.
</p>
-<a name="spirit.qi.tutorials.warming_up.let_s_parse_"></a><h6>
-<a name="id608832"></a>
- <a class="link" href="warming_up.html#spirit.qi.tutorials.warming_up.let_s_parse_">Let's Parse!</a>
- </h6>
+<a name="spirit.qi.tutorials.warming_up.let_s_parse_"></a><h5>
+<a name="id421522"></a>
+ Let's Parse!
+ </h5>
<p>
We're done with defining the parser. So the next step is now invoking this
parser to do its work. There are a couple of ways to do this. For now,
- we will use the <code class="computeroutput"><span class="identifier">phrase_parse</span></code>
+ we will use the <tt class="computeroutput"><span class="identifier">phrase_parse</span></tt>
function. One overload of this function accepts four arguments:
</p>
-<div class="orderedlist"><ol class="orderedlist" type="1">
-<li class="listitem">
+<div class="orderedlist"><ol type="1">
+<li>
An iterator pointing to the start of the input
</li>
-<li class="listitem">
+<li>
An iterator pointing to one past the end of the input
</li>
-<li class="listitem">
+<li>
The parser object
</li>
-<li class="listitem">
+<li>
Another parser called the skip parser
</li>
</ol></div>
<p>
In our example, we wish to skip spaces and tabs. Another parser named
- <code class="computeroutput"><span class="identifier">space</span></code> is included in Spirit's
+ <tt class="computeroutput"><span class="identifier">space</span></tt> is included in Spirit's
repertoire of predefined parsers. It is a very simple parser that simply
- recognizes whitespace. We will use <code class="computeroutput"><span class="identifier">space</span></code>
+ recognizes whitespace. We will use <tt class="computeroutput"><span class="identifier">space</span></tt>
as our skip parser. The skip parser is the one responsible for skipping
- characters in between parser elements such as the <code class="computeroutput"><span class="identifier">double_</span></code>
- and <code class="computeroutput"><span class="identifier">char_</span></code>.
+ characters in between parser elements such as the <tt class="computeroutput"><span class="identifier">double_</span></tt>
+ and <tt class="computeroutput"><span class="identifier">char_</span></tt>.
</p>
<p>
Ok, so now let's parse!
@@ -176,10 +179,10 @@
<span class="keyword">using</span> <span class="identifier">ascii</span><span class="special">::</span><span class="identifier">space</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="callout_bug"><a class="co" name="spirit0co" href="warming_up.html#spirit0"><img src="../../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span>
- <span class="identifier">last</span><span class="special">,</span> <span class="callout_bug"><a class="co" name="spirit1co" href="warming_up.html#spirit1"><img src="../../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a></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="callout_bug"><a class="co" name="spirit2co" href="warming_up.html#spirit2"><img src="../../../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a></span>
- <span class="identifier">space</span> <span class="callout_bug"><a class="co" name="spirit3co" href="warming_up.html#spirit3"><img src="../../../../../../../doc/src/images/callouts/4.png" alt="4" border="0"></a></span>
+ <span class="identifier">first</span><span class="special">,</span> <span class="callout_bug"><a name="spirit0co" href="warming_up.html#spirit0"><img src="../../../../../../../doc/src/images/callouts/1.png" alt="1" border="0"></a></span>
+ <span class="identifier">last</span><span class="special">,</span> <span class="callout_bug"><a name="spirit1co" href="warming_up.html#spirit1"><img src="../../../../../../../doc/src/images/callouts/2.png" alt="2" border="0"></a></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="callout_bug"><a name="spirit2co" href="warming_up.html#spirit2"><img src="../../../../../../../doc/src/images/callouts/3.png" alt="3" border="0"></a></span>
+ <span class="identifier">space</span> <span class="callout_bug"><a name="spirit3co" href="warming_up.html#spirit3"><img src="../../../../../../../doc/src/images/callouts/4.png" alt="4" border="0"></a></span>
<span class="special">);</span>
<span class="keyword">if</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="comment">// fail if we did not get a full match
</span> <span class="keyword">return</span> <span class="keyword">false</span><span class="special">;</span>
@@ -194,19 +197,23 @@
</p>
<div class="calloutlist"><table border="0" summary="Callout list">
<tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit0"></a> </p></td>
+<td width="5%" valign="top" align="left">
+<a name="spirit0"></a> </td>
<td valign="top" align="left"><p> start iterator </p></td>
</tr>
<tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit1"></a> </p></td>
+<td width="5%" valign="top" align="left">
+<a name="spirit1"></a> </td>
<td valign="top" align="left"><p> end iterator </p></td>
</tr>
<tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit2"></a> </p></td>
+<td width="5%" valign="top" align="left">
+<a name="spirit2"></a> </td>
<td valign="top" align="left"><p> the parser </p></td>
</tr>
<tr>
-<td width="5%" valign="top" align="left"><p><a name="spirit3"></a> </p></td>
+<td width="5%" valign="top" align="left">
+<a name="spirit3"></a> </td>
<td valign="top" align="left"><p> the skip-parser </p></td>
</tr>
</table></div>
@@ -215,11 +222,11 @@
<p>
</p>
<p>
- The parse function returns <code class="computeroutput"><span class="keyword">true</span></code>
- or <code class="computeroutput"><span class="keyword">false</span></code> depending on the
+ The parse function returns <tt class="computeroutput"><span class="keyword">true</span></tt>
+ or <tt class="computeroutput"><span class="keyword">false</span></tt> depending on the
result of the parse. The first iterator is passed by reference. On a successful
parse, this iterator is repositioned to the rightmost position consumed
- by the parser. If this becomes equal to <code class="computeroutput"><span class="identifier">last</span></code>,
+ by the parser. If this becomes equal to <tt class="computeroutput"><span class="identifier">last</span></tt>,
then we have a full match. If not, then we have a partial match. A partial
match happens when the parser is only able to parse a portion of the input.
</p>
@@ -236,39 +243,39 @@
<p>
You can find the full cpp file here: ../../example/qi/num_list1.cpp
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top">
+<tr><td colspan="2" align="left" valign="top">
<p>
- <code class="computeroutput"><span class="keyword">char</span></code> and <code class="computeroutput"><span class="keyword">wchar_t</span></code>
+ <tt class="computeroutput"><span class="keyword">char</span></tt> and <tt class="computeroutput"><span class="keyword">wchar_t</span></tt>
operands
</p>
<p>
- The careful reader may notice that the parser expression has <code class="computeroutput"><span class="char">','</span></code> instead of <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="char">','</span><span class="special">)</span></code>
+ The careful reader may notice that the parser expression has <tt class="computeroutput"><span class="char">','</span></tt> instead of <tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="char">','</span><span class="special">)</span></tt>
as the previous examples did. This is ok due to C++ syntax rules of conversion.
- There are <code class="computeroutput"><span class="special">>></span></code> operators
- that are overloaded to accept a <code class="computeroutput"><span class="keyword">char</span></code>
- or <code class="computeroutput"><span class="keyword">wchar_t</span></code> argument on its
+ There are <tt class="computeroutput"><span class="special">>></span></tt> operators
+ that are overloaded to accept a <tt class="computeroutput"><span class="keyword">char</span></tt>
+ or <tt class="computeroutput"><span class="keyword">wchar_t</span></tt> argument on its
left or right (but not both). An operator may be overloaded if at least
- one of its parameters is a user-defined type. In this case, the <code class="computeroutput"><span class="identifier">double_</span></code> is the 2nd argument to <code class="computeroutput"><span class="keyword">operator</span><span class="special">>></span></code>,
- and so the proper overload of <code class="computeroutput"><span class="special">>></span></code>
- is used, converting <code class="computeroutput"><span class="char">','</span></code> into
+ one of its parameters is a user-defined type. In this case, the <tt class="computeroutput"><span class="identifier">double_</span></tt> is the 2nd argument to <tt class="computeroutput"><span class="keyword">operator</span><span class="special">>></span></tt>,
+ and so the proper overload of <tt class="computeroutput"><span class="special">>></span></tt>
+ is used, converting <tt class="computeroutput"><span class="char">','</span></tt> into
a character literal parser.
</p>
<p>
- The problem with omiting the <code class="computeroutput"><span class="identifier">char_</span></code>
- should be obvious: <code class="computeroutput"><span class="char">'a'</span> <span class="special">>></span>
- <span class="char">'b'</span></code> is not a spirit parser, it is
+ The problem with omiting the <tt class="computeroutput"><span class="identifier">char_</span></tt>
+ should be obvious: <tt class="computeroutput"><span class="char">'a'</span> <span class="special">>></span>
+ <span class="char">'b'</span></tt> is not a spirit parser, it is
a numeric expression, right-shifting the ASCII (or another encoding)
- value of <code class="computeroutput"><span class="char">'a'</span></code> by the ASCII value
- of <code class="computeroutput"><span class="char">'b'</span></code>. However, both <code class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="char">'a'</span><span class="special">)</span> <span class="special">>></span>
- <span class="char">'b'</span></code> and <code class="computeroutput"><span class="char">'a'</span>
- <span class="special">>></span> <span class="identifier">char_</span><span class="special">(</span><span class="char">'b'</span><span class="special">)</span></code>
- are Spirit sequence parsers for the letter <code class="computeroutput"><span class="char">'a'</span></code>
- followed by <code class="computeroutput"><span class="char">'b'</span></code>. You'll get
+ value of <tt class="computeroutput"><span class="char">'a'</span></tt> by the ASCII value
+ of <tt class="computeroutput"><span class="char">'b'</span></tt>. However, both <tt class="computeroutput"><span class="identifier">char_</span><span class="special">(</span><span class="char">'a'</span><span class="special">)</span> <span class="special">>></span>
+ <span class="char">'b'</span></tt> and <tt class="computeroutput"><span class="char">'a'</span>
+ <span class="special">>></span> <span class="identifier">char_</span><span class="special">(</span><span class="char">'b'</span><span class="special">)</span></tt>
+ are Spirit sequence parsers for the letter <tt class="computeroutput"><span class="char">'a'</span></tt>
+ followed by <tt class="computeroutput"><span class="char">'b'</span></tt>. You'll get
used to it, sooner or later.
</p>
</td></tr>
Modified: trunk/libs/spirit/doc/html/spirit/references.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/references.html (original)
+++ trunk/libs/spirit/doc/html/spirit/references.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>References</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../index.html" title="Spirit 2.1">
<link rel="up" href="../index.html" title="Spirit 2.1">
-<link rel="prev" href="acknowledgments.html" title="Acknowledgments">
+<link rel="previous" href="acknowledgments.html" title="Acknowledgments">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -21,10 +21,13 @@
<div class="spirit-nav">
<a accesskey="p" href="acknowledgments.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a>
</div>
-<div class="section" title="References">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.references"></a><a class="link" href="references.html" title="References">References</a>
-</h2></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h2 class="title" style="clear: both">
+<a name="spirit.references"></a>References
+</h2></div></div>
+<div></div>
+</div>
<div class="informaltable"><table class="table">
<colgroup>
<col>
@@ -32,444 +35,300 @@
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
- </p>
- </th>
-<th>
- <p>
+<th><p>
+ </p></th>
+<th><p>
Authors
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Title, Publisher/link, Date Published
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
+<td><p>
1.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Todd Veldhuizen
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
<a href="http://www.extreme.indiana.edu/%7Etveldhui/papers/Expression-Templates/exprtmpl.html" target="_top">"Expression
Templates"</a>. C++ Report, June 1995.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
2.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Peter Naur (ed.)
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
<a href="http://www.masswerk.at/algol60/report.htm" target="_top">"Report
on the Algorithmic Language ALGOL 60"</a>. CACM, May 1960.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
3.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
ISO/IEC
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
<a href="http://www.cl.cam.ac.uk/%7Emgk25/iso-14977.pdf" target="_top">"ISO-EBNF"</a>,
ISO/IEC 14977: 1996(E).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
4.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Richard J.Botting, Ph.D.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
<a href="http://www.csci.csusb.edu/dick/maths/intro_ebnf.html" target="_top">"XBNF"</a>
(citing Leu-Weiner, 1973). California State University, San Bernardino,
1998.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
5.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
James Coplien.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
"Curiously Recurring Template Pattern". C++ Report, Feb.
1995.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
6.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Thierry Geraud and Alexandre Duret-Lutz
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
<a href="http://www.coldewey.com/europlop2000/papers/geraud%2Bduret.zip" target="_top">Generic
Programming Redesign of Patterns</a> Proceedings of the 5th European
Conference on Pattern Languages of Programs(EuroPLoP'2000) Irsee, Germany,
July 2000.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
7.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Geoffrey Furnish
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
<a href="http://www.adtmag.com/joop/carticle.aspx?ID=627" target="_top">"Disambiguated
Glommable Expression Templates Reintroduced"</a> C++ Report,
May 2000
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
8.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Erich Gamma, Richard Helm, Ralph Jhonson, and John Vlissides
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Design Patterns, Elements of Reusable Object-Oriented Software. Addison-Wesley,
1995.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
9.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Alfred V. Aho, Revi Sethi, Feffrey D. Ulman
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Compilers, Principles, Techniques and Tools Addison-Wesley, June 1987.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
10.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Dick Grune and Ceriel Jacobs
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
<a href="http://www.cs.vu.nl/%7Edick/PTAPG.html" target="_top">Parsing Techniques:
A Practical Guide.</a> Ellis Horwood Ltd.: West Sussex, England,
1990. (electronic copy, 1998).
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
11.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
T. J. Parr, H. G. Dietz, and W. E. Cohen
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
<a href="http://citeseer.ist.psu.edu/6885.html" target="_top">PCCTS Reference
Manual (Version 1.00)</a>. School of Electrical Engineering, Purdue
University, West Lafayette, August 1991.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
12.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Adrian Johnstone and Elizabeth Scott.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
<a href="ftp://ftp.cs.rhul.ac.uk/pub/rdp" target="_top">RDP, A Recursive Descent
Compiler Compiler</a>. Technical Report CSD TR 97 25, Dept. of
Computer Science, Egham, Surrey, England, Dec. 20, 1997.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
13.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Adrian Johnstone
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
<a href="http://www.cs.rhul.ac.uk/research/languages/projects/lookahead_backtrack.shtml" target="_top">Languages
and Architectures, Parser generators with backtrack or extended lookahead
capability</a> Department of Computer Science, Royal Holloway,
University of London, Egham, Surrey, England
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
14.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Damian Conway
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
<a href="http://www.csse.monash.edu.au/%7Edamian/papers/#Embedded_Input_Parsing_for_C" target="_top">Parsing
with C++ Classes</a>. ACM SIGPLAN Notices, 29:1, 1994.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
15.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Joel de Guzman
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
<a href="http://spirit.sourceforge.net/distrib/spirit_1_8_5/libs/spirit/index.html" target="_top">"Spirit
Version 1.8"</a>, 1998-2003.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
16.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
S. Doaitse Swierstra and Luc Duponcheel
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
<a href="http://citeseer.ist.psu.edu/448665.html" target="_top">Deterministic,
Error-Correcting Combinator Parsers</a> Dept. of Computer Science,
Utrecht University P.O.Box 80.089, 3508 TB Utrecht, The Netherland
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
17.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Bjarne Stroustrup
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
<a href="http://www.research.att.com/%7Ebs/whitespace98.pdf" target="_top">Generalizing
Overloading for C++2000</a> Overload, Issue 25. April 1, 1998.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
18.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Dr. John Maddock
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
<a href="http://www.boost.org/libs/regex/index.html" target="_top">Regex++ Documentation</a>
http://www.boost.org/libs/regex/index.htm
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
19.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Anonymous Edited by Graham Hutton
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
<a href="http://www.cs.nott.ac.uk/~gmh//faq.html" target="_top">Frequently Asked
Questions for comp.lang.functional</a>. Edited by Graham Hutton,
University of Nottingham.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
20.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Hewlett-Packard
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
<a href="http://www.sgi.com/tech/stl/" target="_top">Standard Template Library
Programmer's Guide.</a>, Hewlett-Packard Company, 1994
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
21.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Boost Libraries
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
<a href="http://boost.org/libs/libraries.htm" target="_top">Boost Libraries Documentation</a>.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
22.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Brian McNamara and Yannis Smaragdakis
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
<a href="http://www.cc.gatech.edu/~yannis/fc++/" target="_top">FC++:Functional
Programming in C++</a>.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
23.
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
Todd Veldhuizen
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
<a href="ftp://ftp.cs.indiana.edu/pub/techreports/TR542.pdf" target="_top">Techniques
for Scientic C++.</a>
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
</table></div>
Modified: trunk/libs/spirit/doc/html/spirit/repository.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/repository.html (original)
+++ trunk/libs/spirit/doc/html/spirit/repository.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,12 +1,12 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Spirit Repository</title>
+<title> Spirit Repository</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../index.html" title="Spirit 2.1">
<link rel="up" href="../index.html" title="Spirit 2.1">
-<link rel="prev" href="notes/style_guide.html" title="Style Guide">
+<link rel="previous" href="notes/style_guide.html" title="Style Guide">
<link rel="next" href="acknowledgments.html" title="Acknowledgments">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,10 +22,13 @@
<div class="spirit-nav">
<a accesskey="p" href="notes/style_guide.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgments.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Spirit Repository">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.repository"></a><a class="link" href="repository.html" title="Spirit Repository"> Spirit Repository</a>
-</h2></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h2 class="title" style="clear: both">
+<a name="spirit.repository"></a> Spirit Repository
+</h2></div></div>
+<div></div>
+</div>
<p>
The Spirit repository is
a community effort collecting different reusable components (primitives, directives,
Modified: trunk/libs/spirit/doc/html/spirit/structure.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/structure.html (original)
+++ trunk/libs/spirit/doc/html/spirit/structure.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Structure</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../index.html" title="Spirit 2.1">
<link rel="up" href="../index.html" title="Spirit 2.1">
-<link rel="prev" href="introduction.html" title="Introduction">
+<link rel="previous" href="introduction.html" title="Introduction">
<link rel="next" href="structure/include.html" title="Include">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,10 +22,13 @@
<div class="spirit-nav">
<a accesskey="p" href="introduction.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="structure/include.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Structure">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.structure"></a><a class="link" href="structure.html" title="Structure">Structure</a>
-</h2></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h2 class="title" style="clear: both">
+<a name="spirit.structure"></a>Structure
+</h2></div></div>
+<div></div>
+</div>
<div class="toc"><dl><dt><span class="section">Include</span></dt></dl></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
Modified: trunk/libs/spirit/doc/html/spirit/structure/include.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/structure/include.html (original)
+++ trunk/libs/spirit/doc/html/spirit/structure/include.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Include</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../index.html" title="Spirit 2.1">
<link rel="up" href="../structure.html" title="Structure">
-<link rel="prev" href="../structure.html" title="Structure">
+<link rel="previous" href="../structure.html" title="Structure">
<link rel="next" href="../abstracts.html" title="Abstracts">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,10 +22,13 @@
<div class="spirit-nav">
<a accesskey="p" href="../structure.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../structure.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../abstracts.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="Include">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.structure.include"></a><a class="link" href="include.html" title="Include">Include</a>
-</h3></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h3 class="title">
+<a name="spirit.structure.include"></a>Include
+</h3></div></div>
+<div></div>
+</div>
<p>
Spirit is a header file only library. There are no libraries to link to.
This section documents the structure of the Spirit headers.
@@ -34,23 +37,23 @@
Spirit contains five sub-libraries plus a 'support' module where common support
classes are placed:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
Classic
</li>
-<li class="listitem">
+<li>
Qi
</li>
-<li class="listitem">
+<li>
Karma
</li>
-<li class="listitem">
+<li>
Lex
</li>
-<li class="listitem">
+<li>
Phoenix
</li>
-<li class="listitem">
+<li>
Support
</li>
</ul></div>
@@ -106,26 +109,26 @@
is a special flat directory that contains all the spirit headers. To accomodate
the flat structure, the headers are prefixed with the sub-library name:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
classic_
</li>
-<li class="listitem">
+<li>
karma_
</li>
-<li class="listitem">
+<li>
lex_
</li>
-<li class="listitem">
+<li>
phoenix1_
</li>
-<li class="listitem">
+<li>
phoenix_
</li>
-<li class="listitem">
+<li>
qi_
</li>
-<li class="listitem">
+<li>
support_
</li>
</ul></div>
@@ -136,26 +139,26 @@
<p>
If you want to simply include the main sub-library name, then you can include:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
<boost/spirit/include/classic.hpp>
</li>
-<li class="listitem">
+<li>
<boost/spirit/include/karma.hpp>
</li>
-<li class="listitem">
+<li>
<boost/spirit/include/lex.hpp>
</li>
-<li class="listitem">
+<li>
<boost/spirit/include/phoenix1.hpp>
</li>
-<li class="listitem">
+<li>
<boost/spirit/include/phoenix.hpp>
</li>
-<li class="listitem">
+<li>
<boost/spirit/include/qi.hpp>
</li>
-<li class="listitem">
+<li>
<boost/spirit/include/support.hpp>
</li>
</ul></div>
@@ -174,23 +177,23 @@
<p>
As usual, these directories have their corresponding include files:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
<boost/spirit/home/classic.hpp>
</li>
-<li class="listitem">
+<li>
<boost/spirit/home/karma.hpp>
</li>
-<li class="listitem">
+<li>
<boost/spirit/home/lex.hpp>
</li>
-<li class="listitem">
+<li>
<boost/spirit/home/phoenix.hpp>
</li>
-<li class="listitem">
+<li>
<boost/spirit/home/qi.hpp>
</li>
-<li class="listitem">
+<li>
<boost/spirit/home/support.hpp>
</li>
</ul></div>
@@ -205,7 +208,7 @@
</p>
<p>
For some additional information about the rationale you might want to have
- a look at the FAQ entry <a class="link" href="../faq.html#spirit.faq.i_m_very_confused_about_the_header_hell_in_my_boost_spirit_directory__what_s_all_this_about_">Header
+ a look at the FAQ entry <a href="../faq.html#spirit.faq.i_m_very_confused_about_the_header_hell_in_my_boost_spirit_directory__what_s_all_this_about_">Header
Hell</a>.
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/support.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/support.html (original)
+++ trunk/libs/spirit/doc/html/spirit/support.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,14 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Supporting libraries</title>
+<title> Supporting libraries</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../index.html" title="Spirit 2.1">
<link rel="up" href="../index.html" title="Spirit 2.1">
-<link rel="prev" href="lex/reference/tokendef.html" title="TokenDef Class">
-<link rel="next" href="support/multi_pass.html" title="The multi pass iterator">
+<link rel="previous" href="advanced/customize/extract_from.html" title=" Extract an
+ Attribute Value to Generate Output (Karma)">
+<link rel="next" href="support/multi_pass.html" title=" The multi pass iterator">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -20,12 +21,15 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="lex/reference/tokendef.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="support/multi_pass.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="advanced/customize/extract_from.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="support/multi_pass.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h2 class="title" style="clear: both">
+<a name="spirit.support"></a> Supporting libraries
+</h2></div></div>
+<div></div>
</div>
-<div class="section" title="Supporting libraries">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.support"></a><a class="link" href="support.html" title="Supporting libraries"> Supporting libraries</a>
-</h2></div></div></div>
<div class="toc"><dl><dt><span class="section"> The multi pass iterator</span></dt></dl></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
@@ -39,7 +43,7 @@
</tr></table>
<hr>
<div class="spirit-nav">
-<a accesskey="p" href="lex/reference/tokendef.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="support/multi_pass.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="advanced/customize/extract_from.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="support/multi_pass.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
</body>
</html>
Modified: trunk/libs/spirit/doc/html/spirit/support/multi_pass.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/support/multi_pass.html (original)
+++ trunk/libs/spirit/doc/html/spirit/support/multi_pass.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -1,13 +1,13 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>The multi pass iterator</title>
+<title> The multi pass iterator</title>
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../../index.html" title="Spirit 2.1">
-<link rel="up" href="../support.html" title="Supporting libraries">
-<link rel="prev" href="../support.html" title="Supporting libraries">
-<link rel="next" href="../faq.html" title="Spirit FAQ">
+<link rel="up" href="../support.html" title=" Supporting libraries">
+<link rel="previous" href="../support.html" title=" Supporting libraries">
+<link rel="next" href="../faq.html" title=" Spirit FAQ">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
@@ -22,31 +22,34 @@
<div class="spirit-nav">
<a accesskey="p" href="../support.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../support.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../faq.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="The multi pass iterator">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="spirit.support.multi_pass"></a><a class="link" href="multi_pass.html" title="The multi pass iterator"> The multi pass iterator</a>
-</h3></div></div></div>
+<div class="section" lang="en">
+<div class="titlepage">
+<div><div><h3 class="title">
+<a name="spirit.support.multi_pass"></a> The multi pass iterator
+</h3></div></div>
+<div></div>
+</div>
<p>
Backtracking in <span class="emphasis"><em>Spirit.Qi</em></span> requires the use of the following
types of iterator: forward, bidirectional, or random access. Because of backtracking,
input iterators cannot be used. Therefore, the standard library classes
- <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">istreambuf_iterator</span></code> and <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream_iterator</span></code>,
+ <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">istreambuf_iterator</span></tt> and <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream_iterator</span></tt>,
that fall under the category of input iterators, cannot be used. Another
input iterator that is of interest is one that wraps a lexer, such as LEX.
</p>
-<div class="note" title="Note"><table border="0" summary="Note">
+<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
<th align="left">Note</th>
</tr>
-<tr><td align="left" valign="top"><p>
+<tr><td colspan="2" align="left" valign="top"><p>
In general, <span class="emphasis"><em>Spirit.Qi</em></span> generates recursive descent
parser which require backtracking parsers by design. For this reason we
need to provide at least forward iterators to any of <span class="emphasis"><em>Spirit.Qi</em></span>'s
API functions. This is not an absolute requirement though. In the future,
we shall see more deterministic parsers that require no more than 1 character
(token) of lookahead. Such parsers allow us to use input iterators such
- as the <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream_iterator</span></code> as is.
+ as the <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream_iterator</span></tt> as is.
</p></td></tr>
</table></div>
<p>
@@ -57,53 +60,53 @@
to this problem is to simply load all the data to be parsed into a container,
such as a vector or deque, and then pass the begin and end of the container
to <span class="emphasis"><em>Spirit.Qi</em></span>. This method can be too memory intensive
- for certain applications, which is why the <code class="computeroutput"><span class="identifier">multi_pass</span></code>
+ for certain applications, which is why the <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>
iterator was created.
</p>
-<a name="spirit.support.multi_pass.using_the_multi_pass"></a><h5>
-<a name="id907204"></a>
- <a class="link" href="multi_pass.html#spirit.support.multi_pass.using_the_multi_pass">Using the
+<a name="spirit.support.multi_pass.using_the_multi_pass"></a><h4>
+<a name="id738499"></a>
+ <a href="multi_pass.html#spirit.support.multi_pass.using_the_multi_pass">Using the
multi_pass</a>
- </h5>
+ </h4>
<p>
- The <code class="computeroutput"><span class="identifier">multi_pass</span></code> iterator will
+ The <tt class="computeroutput"><span class="identifier">multi_pass</span></tt> iterator will
convert any input iterator into a forward iterator suitable for use with
- <span class="emphasis"><em>Spirit.Qi</em></span>. <code class="computeroutput"><span class="identifier">multi_pass</span></code>
+ <span class="emphasis"><em>Spirit.Qi</em></span>. <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>
will buffer data when needed and will discard the buffer when its contents
is not needed anymore. This happens either if only one copy of the iterator
exists or if no backtracking can occur.
</p>
<p>
- A grammar must be designed with care if the <code class="computeroutput"><span class="identifier">multi_pass</span></code>
+ A grammar must be designed with care if the <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>
iterator is used. Any rule that may need to backtrack, such as one that contains
an alternative, will cause data to be buffered. The rules that are optimal
to use are repetition constructs (as kleene and plus).
</p>
<p>
- Sequences of the form <code class="computeroutput"><span class="identifier">a</span> <span class="special">>></span> <span class="identifier">b</span></code>
+ Sequences of the form <tt class="computeroutput"><span class="identifier">a</span> <span class="special">>></span> <span class="identifier">b</span></tt>
will buffer data as well. This is different from the behaviour of Spirit.Classic
but for a good reason. Sequences need to reset the current iterator to its
initial state if one of the components of a seqeunce fails to match. To compensate
- for this behaviour we added functionality to the <code class="computeroutput"><span class="identifier">expect</span></code>
- parsers (i.e. constructs like <code class="computeroutput"><span class="identifier">a</span>
- <span class="special">></span> <span class="identifier">b</span></code>).
+ for this behaviour we added functionality to the <tt class="computeroutput"><span class="identifier">expect</span></tt>
+ parsers (i.e. constructs like <tt class="computeroutput"><span class="identifier">a</span>
+ <span class="special">></span> <span class="identifier">b</span></tt>).
Expectation points introduce deterministic points into the grammar ensuring
no backtracking can occur if they match. For this reason we clear the buffers
of any multi_pass iterator on each expectation point, ensuring minimal buffer
content even for large grammars.
</p>
-<div class="important" title="Important"><table border="0" summary="Important">
+<div class="important"><table border="0" summary="Important">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../images/important.png"></td>
<th align="left">Important</th>
</tr>
-<tr><td align="left" valign="top">
+<tr><td colspan="2" align="left" valign="top">
<p>
- If you use an error handler in conjunction with the <code class="computeroutput"><span class="identifier">expect</span></code>
- parser while utilizing a <code class="computeroutput"><span class="identifier">multi_pass</span></code>
- iterator and you intend to use the error handler to force a <code class="computeroutput"><span class="identifier">retry</span></code> or a <code class="computeroutput"><span class="identifier">fail</span></code>
- (see the description of error handlers - <span class="bold"><strong>FIXME</strong></span>:
- insert link), then you need to instantiate the error handler using <code class="computeroutput"><span class="identifier">retry</span></code> or <code class="computeroutput"><span class="identifier">fail</span></code>,
+ If you use an error handler in conjunction with the <tt class="computeroutput"><span class="identifier">expect</span></tt>
+ parser while utilizing a <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>
+ iterator and you intend to use the error handler to force a <tt class="computeroutput"><span class="identifier">retry</span></tt> or a <tt class="computeroutput"><span class="identifier">fail</span></tt>
+ (see the description of error handlers - <span class="bold"><b>FIXME</b></span>:
+ insert link), then you need to instantiate the error handler using <tt class="computeroutput"><span class="identifier">retry</span></tt> or <tt class="computeroutput"><span class="identifier">fail</span></tt>,
for instance:
</p>
<pre class="programlisting"><span class="identifier">rule</span> <span class="identifier">r</span><span class="special"><</span><span class="identifier">iterator_type</span><span class="special">></span> <span class="identifier">r</span><span class="special">;</span>
@@ -116,7 +119,7 @@
</td></tr>
</table></div>
<p>
- Any rule that repeats, such as kleene_star (<code class="computeroutput"><span class="special">*</span><span class="identifier">a</span></code>) or positive such as (<code class="computeroutput"><span class="special">+</span><span class="identifier">a</span></code>), will only buffer the data for the current
+ Any rule that repeats, such as kleene_star (<tt class="computeroutput"><span class="special">*</span><span class="identifier">a</span></tt>) or positive such as (<tt class="computeroutput"><span class="special">+</span><span class="identifier">a</span></tt>), will only buffer the data for the current
repetition.
</p>
<p>
@@ -124,8 +127,8 @@
In fact, many well designed languages are fully deterministic and require
no lookahead at all. Peeking at the first character from the input will immediately
determine the alternative branch to take. Yet, even with highly ambiguous
- grammars, alternatives are often of the form <code class="computeroutput"><span class="special">*(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span>
- <span class="special">|</span> <span class="identifier">c</span> <span class="special">|</span> <span class="identifier">d</span><span class="special">)</span></code>.
+ grammars, alternatives are often of the form <tt class="computeroutput"><span class="special">*(</span><span class="identifier">a</span> <span class="special">|</span> <span class="identifier">b</span>
+ <span class="special">|</span> <span class="identifier">c</span> <span class="special">|</span> <span class="identifier">d</span><span class="special">)</span></tt>.
The input iterator moves on and is never stuck at the beginning. Let's look
at a Pascal snippet for example:
</p>
@@ -152,17 +155,17 @@
star moves on to the next.
</p>
<p>
- Now, after the lecture on the features to be careful with when using <code class="computeroutput"><span class="identifier">multi_pass</span></code>, you may think that <code class="computeroutput"><span class="identifier">multi_pass</span></code> is way too restrictive to use.
+ Now, after the lecture on the features to be careful with when using <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>, you may think that <tt class="computeroutput"><span class="identifier">multi_pass</span></tt> is way too restrictive to use.
That's not the case. If your grammar is deterministic, you can make use of
- the <code class="computeroutput"><span class="identifier">flush_multi_pass</span></code> pseudo
+ the <tt class="computeroutput"><span class="identifier">flush_multi_pass</span></tt> pseudo
parser in your grammar to ensure that data is not buffered when unnecessary
- (<code class="computeroutput"><span class="identifier">flush_multi_pass</span></code> is available
+ (<tt class="computeroutput"><span class="identifier">flush_multi_pass</span></tt> is available
from the <span class="emphasis"><em>Spirit.Qi</em></span> parser Repository).
</p>
<p>
- Here we present a minimal example showing a minimal use case. The <code class="computeroutput"><span class="identifier">multi_pass</span></code> iterator is highly configurable,
+ Here we present a minimal example showing a minimal use case. The <tt class="computeroutput"><span class="identifier">multi_pass</span></tt> iterator is highly configurable,
but the default policies have been chosen so that its easily usable with
- input iterators such as <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">istreambuf_iterator</span></code>.
+ input iterators such as <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">istreambuf_iterator</span></tt>.
For the complete source code of this example please refer to multi_pass.cpp.
</p>
<p>
@@ -208,46 +211,46 @@
</p>
<p>
</p>
-<a name="spirit.support.multi_pass.using_the_flush_multi_pass_parser"></a><h5>
-<a name="id908475"></a>
- <a class="link" href="multi_pass.html#spirit.support.multi_pass.using_the_flush_multi_pass_parser">Using
+<a name="spirit.support.multi_pass.using_the_flush_multi_pass_parser"></a><h4>
+<a name="id740290"></a>
+ <a href="multi_pass.html#spirit.support.multi_pass.using_the_flush_multi_pass_parser">Using
the flush_multi_pass parser</a>
- </h5>
+ </h4>
<p>
The Spirit Repository
- contains the <code class="computeroutput"><span class="identifier">flush_multi_pass</span></code>
- parser component. This is usable in conjunction with the <code class="computeroutput"><span class="identifier">multi_pass</span></code>
+ contains the <tt class="computeroutput"><span class="identifier">flush_multi_pass</span></tt>
+ parser component. This is usable in conjunction with the <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>
iterator to minimize the buffering. It allows to insert explicit synchronization
points into your grammar where it is safe to clear any stored input as it
is ensured that no backtracking can occur at this point anymore.
</p>
<p>
- When the <code class="computeroutput"><span class="identifier">flush_multi_pass</span></code>
- parser is used with <code class="computeroutput"><span class="identifier">multi_pass</span></code>,
- it will call <code class="computeroutput"><span class="identifier">multi_pass</span><span class="special">::</span><span class="identifier">clear_queue</span><span class="special">()</span></code>.
+ When the <tt class="computeroutput"><span class="identifier">flush_multi_pass</span></tt>
+ parser is used with <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>,
+ it will call <tt class="computeroutput"><span class="identifier">multi_pass</span><span class="special">::</span><span class="identifier">clear_queue</span><span class="special">()</span></tt>.
This will cause any buffered data to be erased. This also will invalidate
all other copies of multi_pass and they should not be used. If they are,
- an <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">illegal_backtracking</span></code> exception will be
+ an <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">illegal_backtracking</span></tt> exception will be
thrown.
</p>
-<a name="spirit.support.multi_pass.the_multi_pass_policies"></a><h5>
-<a name="id908569"></a>
- <a class="link" href="multi_pass.html#spirit.support.multi_pass.the_multi_pass_policies">The multi_pass
+<a name="spirit.support.multi_pass.the_multi_pass_policies"></a><h4>
+<a name="id740444"></a>
+ <a href="multi_pass.html#spirit.support.multi_pass.the_multi_pass_policies">The multi_pass
Policies</a>
- </h5>
+ </h4>
<p>
- The <code class="computeroutput"><span class="identifier">multi_pass</span></code> iterator is
- a templated class configurable using policies. The description of <code class="computeroutput"><span class="identifier">multi_pass</span></code> above is how it was originally
+ The <tt class="computeroutput"><span class="identifier">multi_pass</span></tt> iterator is
+ a templated class configurable using policies. The description of <tt class="computeroutput"><span class="identifier">multi_pass</span></tt> above is how it was originally
implemented (before it used policies), and is the default configuration now.
- But, <code class="computeroutput"><span class="identifier">multi_pass</span></code> is capable
+ But, <tt class="computeroutput"><span class="identifier">multi_pass</span></tt> is capable
of much more. Because of the open-ended nature of policies, you can write
- your own policy to make <code class="computeroutput"><span class="identifier">multi_pass</span></code>
+ your own policy to make <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>
behave in a way that we never before imagined.
</p>
<p>
The multi_pass class has two template parameters:
</p>
-<div class="variablelist" title="The multi_pass template parameters">
+<div class="variablelist">
<p class="title"><b>The multi_pass template parameters</b></p>
<dl>
<dt><span class="term">Input</span></dt>
@@ -266,351 +269,275 @@
It is possible to implement all of the required functionality of the combinded
policy in a single class. But it has shown to be more convenient to split
this into four different groups of functions, i.e. four separate, but well
- coordinated policies. For this reason the <code class="computeroutput"><span class="identifier">multi_pass</span></code>
- library implements a template <code class="computeroutput"><span class="identifier">iterator_policies</span><span class="special">::</span><span class="identifier">default_policy</span></code>
+ coordinated policies. For this reason the <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>
+ library implements a template <tt class="computeroutput"><span class="identifier">iterator_policies</span><span class="special">::</span><span class="identifier">default_policy</span></tt>
allowing to combine several different policies, each implementing one of
the functionality groups:
</p>
<div class="table">
-<a name="id911419"></a><p class="title"><b>Table 11. Policies needed for default_policy template</b></p>
-<div class="table-contents"><table class="table" summary="Policies needed for default_policy template">
+<a name="id740609"></a><p class="title"><b>Table 11. Policies needed for default_policy template</b></p>
+<table class="table" summary="Policies needed for default_policy template">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Template Parameter
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">OwnershipPolicy</span></code>
- </p>
- </td>
-<td>
- <p>
- This policy determines how <code class="computeroutput"><span class="identifier">multi_pass</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">OwnershipPolicy</span></tt>
+ </p></td>
+<td><p>
+ This policy determines how <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>
deals with it's shared components.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">CheckingPolicy</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">CheckingPolicy</span></tt>
+ </p></td>
+<td><p>
This policy determines how checking for invalid iterators is done.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">InputPolicy</span></code>
- </p>
- </td>
-<td>
- <p>
- A class that defines how <code class="computeroutput"><span class="identifier">multi_pass</span></code>
- acquires its input. The <code class="computeroutput"><span class="identifier">InputPolicy</span></code>
- is parameterized by the <code class="computeroutput"><span class="identifier">Input</span></code>
- template parameter to the <code class="computeroutput"><span class="identifier">multi_pass</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">StoragePolicy</span></code>
- </p>
- </td>
-<td>
- <p>
- The buffering scheme used by <code class="computeroutput"><span class="identifier">multi_pass</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">InputPolicy</span></tt>
+ </p></td>
+<td><p>
+ A class that defines how <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>
+ acquires its input. The <tt class="computeroutput"><span class="identifier">InputPolicy</span></tt>
+ is parameterized by the <tt class="computeroutput"><span class="identifier">Input</span></tt>
+ template parameter to the <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">StoragePolicy</span></tt>
+ </p></td>
+<td><p>
+ The buffering scheme used by <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>
is determined and managed by the StoragePolicy.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
-</table></div>
+</table>
</div>
-<br class="table-break"><p>
- The <code class="computeroutput"><span class="identifier">multi_pass</span></code> library contains
+<p>
+ The <tt class="computeroutput"><span class="identifier">multi_pass</span></tt> library contains
several predefined policy implementations for each of the policy types as
described above. First we will describe those predefined types. Afterwards
we will give some guidelines how you can write your own policy implementations.
</p>
-<a name="spirit.support.multi_pass.predefined_policies"></a><h5>
-<a name="id911611"></a>
- <a class="link" href="multi_pass.html#spirit.support.multi_pass.predefined_policies">Predefined
+<a name="spirit.support.multi_pass.predefined_policies"></a><h4>
+<a name="id740874"></a>
+ <a href="multi_pass.html#spirit.support.multi_pass.predefined_policies">Predefined
policies</a>
- </h5>
+ </h4>
<p>
- All predefined <code class="computeroutput"><span class="identifier">multi_pass</span></code>
- policies are defined in the namespace <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">iterator_policies</span></code>.
+ All predefined <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>
+ policies are defined in the namespace <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">iterator_policies</span></tt>.
</p>
<div class="table">
-<a name="id911653"></a><p class="title"><b>Table 12. Predefined policy classes</b></p>
-<div class="table-contents"><table class="table" summary="Predefined policy classes">
+<a name="id740938"></a><p class="title"><b>Table 12. Predefined policy classes</b></p>
+<table class="table" summary="Predefined policy classes">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
-<th>
- <p>
+<th><p>
Class name
- </p>
- </th>
-<th>
- <p>
+ </p></th>
+<th><p>
Description
- </p>
- </th>
+ </p></th>
</tr></thead>
<tbody>
<tr>
-<td>
- <p>
- <span class="bold"><strong>InputPolicy</strong></span> classes
- </p>
- </td>
+<td><p>
+ <span class="bold"><b>InputPolicy</b></span> classes
+ </p></td>
<td class="auto-generated"> </td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">input_iterator</span></code>
- </p>
- </td>
-<td>
- <p>
- This policy directs <code class="computeroutput"><span class="identifier">multi_pass</span></code>
- to read from an input iterator of type <code class="computeroutput"><span class="identifier">Input</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">lex_input</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">input_iterator</span></tt>
+ </p></td>
+<td><p>
+ This policy directs <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>
+ to read from an input iterator of type <tt class="computeroutput"><span class="identifier">Input</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">lex_input</span></tt>
+ </p></td>
+<td><p>
This policy obtains it's input by calling yylex(), which would typically
be provided by a scanner generated by Flex.
If you use this policy your code must link against a Flex
generated scanner.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">functor_input</span></code>
- </p>
- </td>
-<td>
- <p>
- This input policy obtains it's data by calling a functor of type <code class="computeroutput"><span class="identifier">Input</span></code>. The functor must meet certain
- requirements. It must have a typedef called <code class="computeroutput"><span class="identifier">result_type</span></code>
- which should be the type returned from <code class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></code>. Also, since an input policy needs
+<td><p>
+ <tt class="computeroutput"><span class="identifier">functor_input</span></tt>
+ </p></td>
+<td><p>
+ This input policy obtains it's data by calling a functor of type <tt class="computeroutput"><span class="identifier">Input</span></tt>. The functor must meet certain
+ requirements. It must have a typedef called <tt class="computeroutput"><span class="identifier">result_type</span></tt>
+ which should be the type returned from <tt class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></tt>. Also, since an input policy needs
a way to determine when the end of input has been reached, the functor
- must contain a static variable named <code class="computeroutput"><span class="identifier">eof</span></code>
- which is comparable to a variable of <code class="computeroutput"><span class="identifier">result_type</span></code>.
- </p>
- </td>
+ must contain a static variable named <tt class="computeroutput"><span class="identifier">eof</span></tt>
+ which is comparable to a variable of <tt class="computeroutput"><span class="identifier">result_type</span></tt>.
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">split_functor_input</span></code>
- </p>
- </td>
-<td>
- <p>
- This is essentially the same as the <code class="computeroutput"><span class="identifier">functor_input</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">split_functor_input</span></tt>
+ </p></td>
+<td><p>
+ This is essentially the same as the <tt class="computeroutput"><span class="identifier">functor_input</span></tt>
policy except that the (user supplied) funtion object exposes separate
- <code class="computeroutput"><span class="identifier">unique</span></code> and <code class="computeroutput"><span class="identifier">shared</span></code> sub classes, allowing to integrate
- the functors <span class="emphasis"><em>unique</em></span> data members with the <code class="computeroutput"><span class="identifier">multi_pass</span></code> data items held by each
+ <tt class="computeroutput"><span class="identifier">unique</span></tt> and <tt class="computeroutput"><span class="identifier">shared</span></tt> sub classes, allowing to integrate
+ the functors <span class="emphasis"><em>unique</em></span> data members with the <tt class="computeroutput"><span class="identifier">multi_pass</span></tt> data items held by each
instance and its <span class="emphasis"><em>shared</em></span> data members will be integrated
- with the <code class="computeroutput"><span class="identifier">multi_pass</span></code>
+ with the <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>
members shared by all copies.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <span class="bold"><strong>OwnershipPolicy</strong></span> classes
- </p>
- </td>
+<td><p>
+ <span class="bold"><b>OwnershipPolicy</b></span> classes
+ </p></td>
<td class="auto-generated"> </td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">ref_counted</span></code>
- </p>
- </td>
-<td>
- <p>
- This class uses a reference counting scheme. The <code class="computeroutput"><span class="identifier">multi_pass</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">ref_counted</span></tt>
+ </p></td>
+<td><p>
+ This class uses a reference counting scheme. The <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>
will delete it's shared components when the count reaches zero.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">first_owner</span></code>
- </p>
- </td>
-<td>
- <p>
- When this policy is used, the first <code class="computeroutput"><span class="identifier">multi_pass</span></code>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">first_owner</span></tt>
+ </p></td>
+<td><p>
+ When this policy is used, the first <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>
created will be the one that deletes the shared data. Each copy will
not take ownership of the shared data. This works well for Spirit,
since no dynamic allocation of iterators is done. All copies are made
on the stack, so the original iterator has the longest lifespan.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <span class="bold"><strong>CheckingPolicy</strong></span> classes
- </p>
- </td>
+<td><p>
+ <span class="bold"><b>CheckingPolicy</b></span> classes
+ </p></td>
<td class="auto-generated"> </td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">no_check</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">no_check</span></tt>
+ </p></td>
+<td><p>
This policy does no checking at all.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">buf_id_check</span></code>
- </p>
- </td>
-<td>
- <p>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">buf_id_check</span></tt>
+ </p></td>
+<td><p>
This policy keeps around a buffer id, or a buffer age. Every time
- <code class="computeroutput"><span class="identifier">clear_queue</span><span class="special">()</span></code>
- is called on a <code class="computeroutput"><span class="identifier">multi_pass</span></code>
+ <tt class="computeroutput"><span class="identifier">clear_queue</span><span class="special">()</span></tt>
+ is called on a <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>
iterator, it is possible that all other iterators become invalid. When
- <code class="computeroutput"><span class="identifier">clear_queue</span><span class="special">()</span></code>
- is called, <code class="computeroutput"><span class="identifier">buf_id_check</span></code>
+ <tt class="computeroutput"><span class="identifier">clear_queue</span><span class="special">()</span></tt>
+ is called, <tt class="computeroutput"><span class="identifier">buf_id_check</span></tt>
increments the buffer id. When an iterator is dereferenced, this policy
checks that the buffer id of the iterator matches the shared buffer
- id. This policy is most effective when used together with the <code class="computeroutput"><span class="identifier">split_std_deque</span></code> StoragePolicy. It
- should not be used with the <code class="computeroutput"><span class="identifier">fixed_size_queue</span></code>
+ id. This policy is most effective when used together with the <tt class="computeroutput"><span class="identifier">split_std_deque</span></tt> StoragePolicy. It
+ should not be used with the <tt class="computeroutput"><span class="identifier">fixed_size_queue</span></tt>
StoragePolicy, because it will not detect iterator dereferences that
are out of range.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
+<td><p>
full_check
- </p>
- </td>
-<td>
- <p>
+ </p></td>
+<td><p>
This policy has not been implemented yet. When it is, it will keep
track of all iterators and make sure that they are all valid. This
will be mostly useful for debugging purposes as it will incur significant
overhead.
- </p>
- </td>
+ </p></td>
</tr>
<tr>
-<td>
- <p>
- <span class="bold"><strong>StoragePolicy</strong></span> classes
- </p>
- </td>
+<td><p>
+ <span class="bold"><b>StoragePolicy</b></span> classes
+ </p></td>
<td class="auto-generated"> </td>
</tr>
<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">split_std_deque</span></code>
- </p>
- </td>
-<td>
- <p>
- Despite its name this policy keeps all buffered data in a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code>. All data is stored as long
+<td><p>
+ <tt class="computeroutput"><span class="identifier">split_std_deque</span></tt>
+ </p></td>
+<td><p>
+ Despite its name this policy keeps all buffered data in a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></tt>. All data is stored as long
as there is more than one iterator. Once the iterator count goes down
to one, and the queue is no longer needed, it is cleared, freeing up
- memory. The queue can also be forcibly cleared by calling <code class="computeroutput"><span class="identifier">multi_pass</span><span class="special">::</span><span class="identifier">clear_queue</span><span class="special">()</span></code>.
- </p>
- </td>
-</tr>
-<tr>
-<td>
- <p>
- <code class="computeroutput"><span class="identifier">fixed_size_queue</span><span class="special"><</span><span class="identifier">N</span><span class="special">></span></code>
- </p>
- </td>
-<td>
- <p>
- This policy keeps a circular buffer that is size <code class="computeroutput"><span class="identifier">N</span><span class="special">+</span><span class="number">1</span></code> and
- stores <code class="computeroutput"><span class="identifier">N</span></code> elements.
- <code class="computeroutput"><span class="identifier">fixed_size_queue</span></code> is
- a template with a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span></code>
+ memory. The queue can also be forcibly cleared by calling <tt class="computeroutput"><span class="identifier">multi_pass</span><span class="special">::</span><span class="identifier">clear_queue</span><span class="special">()</span></tt>.
+ </p></td>
+</tr>
+<tr>
+<td><p>
+ <tt class="computeroutput"><span class="identifier">fixed_size_queue</span><span class="special"><</span><span class="identifier">N</span><span class="special">></span></tt>
+ </p></td>
+<td><p>
+ This policy keeps a circular buffer that is size <tt class="computeroutput"><span class="identifier">N</span><span class="special">+</span><span class="number">1</span></tt> and
+ stores <tt class="computeroutput"><span class="identifier">N</span></tt> elements.
+ <tt class="computeroutput"><span class="identifier">fixed_size_queue</span></tt> is
+ a template with a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span></tt>
parameter that specified the queue size. It is your responsibility
- to ensure that <code class="computeroutput"><span class="identifier">N</span></code> is
+ to ensure that <tt class="computeroutput"><span class="identifier">N</span></tt> is
big enough for your parser. Whenever the foremost iterator is incremented,
the last character of the buffer is automatically erased. Currently
there is no way to tell if an iterator is trailing too far behind and
has become invalid. No dynamic allocation is done by this policy during
normal iterator operation, only on initial construction. The memory
- usage of this <code class="computeroutput"><span class="identifier">StoragePolicy</span></code>
- is set at <code class="computeroutput"><span class="identifier">N</span><span class="special">+</span><span class="number">1</span></code> bytes, unlike <code class="computeroutput"><span class="identifier">split_std_deque</span></code>,
+ usage of this <tt class="computeroutput"><span class="identifier">StoragePolicy</span></tt>
+ is set at <tt class="computeroutput"><span class="identifier">N</span><span class="special">+</span><span class="number">1</span></tt> bytes, unlike <tt class="computeroutput"><span class="identifier">split_std_deque</span></tt>,
which is unbounded.
- </p>
- </td>
+ </p></td>
</tr>
</tbody>
-</table></div>
+</table>
</div>
-<br class="table-break"><a name="spirit.support.multi_pass.combinations__how_to_specify_your_own_custom_multi_pass"></a><h5>
-<a name="id912318"></a>
- <a class="link" href="multi_pass.html#spirit.support.multi_pass.combinations__how_to_specify_your_own_custom_multi_pass">Combinations:
+<a name="spirit.support.multi_pass.combinations__how_to_specify_your_own_custom_multi_pass"></a><h4>
+<a name="id741886"></a>
+ <a href="multi_pass.html#spirit.support.multi_pass.combinations__how_to_specify_your_own_custom_multi_pass">Combinations:
How to specify your own custom multi_pass</a>
- </h5>
+ </h4>
<p>
The beauty of policy based designs is that you can mix and match policies
to create your own custom iterator by selecting the policies you want. Here's
- an example of how to specify a custom <code class="computeroutput"><span class="identifier">multi_pass</span></code>
- that wraps an <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream_iterator</span><span class="special"><</span><span class="keyword">char</span><span class="special">></span></code>,
- and is slightly more efficient than the default <code class="computeroutput"><span class="identifier">multi_pass</span></code>
- (as generated by the <code class="computeroutput"><span class="identifier">make_default_multi_pass</span><span class="special">()</span></code> API function) because it uses the <code class="computeroutput"><span class="identifier">iterator_policies</span><span class="special">::</span><span class="identifier">first_owner</span></code> OwnershipPolicy and the <code class="computeroutput"><span class="identifier">iterator_policies</span><span class="special">::</span><span class="identifier">no_check</span></code> CheckingPolicy:
+ an example of how to specify a custom <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>
+ that wraps an <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream_iterator</span><span class="special"><</span><span class="keyword">char</span><span class="special">></span></tt>,
+ and is slightly more efficient than the default <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>
+ (as generated by the <tt class="computeroutput"><span class="identifier">make_default_multi_pass</span><span class="special">()</span></tt> API function) because it uses the <tt class="computeroutput"><span class="identifier">iterator_policies</span><span class="special">::</span><span class="identifier">first_owner</span></tt> OwnershipPolicy and the <tt class="computeroutput"><span class="identifier">iterator_policies</span><span class="special">::</span><span class="identifier">no_check</span></tt> CheckingPolicy:
</p>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">multi_pass</span><span class="special"><</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">istream_iterator</span><span class="special"><</span><span class="keyword">char</span><span class="special">></span>
@@ -623,60 +550,60 @@
<span class="special">></span> <span class="identifier">first_owner_multi_pass_type</span><span class="special">;</span>
</pre>
<p>
- The default template parameters for <code class="computeroutput"><span class="identifier">iterator_policies</span><span class="special">::</span><span class="identifier">default_policy</span></code>
+ The default template parameters for <tt class="computeroutput"><span class="identifier">iterator_policies</span><span class="special">::</span><span class="identifier">default_policy</span></tt>
are:
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
-<code class="computeroutput"><span class="identifier">iterator_policies</span><span class="special">::</span><span class="identifier">ref_counted</span></code> OwnershipPolicy
+<div class="itemizedlist"><ul type="disc">
+<li>
+<tt class="computeroutput"><span class="identifier">iterator_policies</span><span class="special">::</span><span class="identifier">ref_counted</span></tt> OwnershipPolicy
</li>
-<li class="listitem">
-<code class="computeroutput"><span class="identifier">iterator_policies</span><span class="special">::</span><span class="identifier">no_check</span></code> CheckingPolicy, if <code class="computeroutput"><span class="identifier">BOOST_SPIRIT_DEBUG</span></code> is defined: <code class="computeroutput"><span class="identifier">iterator_policies</span><span class="special">::</span><span class="identifier">buf_id_check</span></code> CheckingPolicy
+<li>
+<tt class="computeroutput"><span class="identifier">iterator_policies</span><span class="special">::</span><span class="identifier">no_check</span></tt> CheckingPolicy, if <tt class="computeroutput"><span class="identifier">BOOST_SPIRIT_DEBUG</span></tt> is defined: <tt class="computeroutput"><span class="identifier">iterator_policies</span><span class="special">::</span><span class="identifier">buf_id_check</span></tt> CheckingPolicy
</li>
-<li class="listitem">
-<code class="computeroutput"><span class="identifier">iterator_policies</span><span class="special">::</span><span class="identifier">input_iterator</span></code> InputPolicy, and
+<li>
+<tt class="computeroutput"><span class="identifier">iterator_policies</span><span class="special">::</span><span class="identifier">input_iterator</span></tt> InputPolicy, and
</li>
-<li class="listitem">
-<code class="computeroutput"><span class="identifier">iterator_policies</span><span class="special">::</span><span class="identifier">split_std_deque</span></code> StoragePolicy.
+<li>
+<tt class="computeroutput"><span class="identifier">iterator_policies</span><span class="special">::</span><span class="identifier">split_std_deque</span></tt> StoragePolicy.
</li>
</ul></div>
<p>
- So if you use <code class="computeroutput"><span class="identifier">multi_pass</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream_iterator</span><span class="special"><</span><span class="keyword">char</span><span class="special">></span>
- <span class="special">></span></code> you will get those pre-defined
- behaviors while wrapping an <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream_iterator</span><span class="special"><</span><span class="keyword">char</span><span class="special">></span></code>.
- </p>
-<a name="spirit.support.multi_pass.dealing_with_constant_look_ahead"></a><h5>
-<a name="id912740"></a>
- <a class="link" href="multi_pass.html#spirit.support.multi_pass.dealing_with_constant_look_ahead">Dealing
+ So if you use <tt class="computeroutput"><span class="identifier">multi_pass</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream_iterator</span><span class="special"><</span><span class="keyword">char</span><span class="special">></span>
+ <span class="special">></span></tt> you will get those pre-defined
+ behaviors while wrapping an <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream_iterator</span><span class="special"><</span><span class="keyword">char</span><span class="special">></span></tt>.
+ </p>
+<a name="spirit.support.multi_pass.dealing_with_constant_look_ahead"></a><h4>
+<a name="id742504"></a>
+ <a href="multi_pass.html#spirit.support.multi_pass.dealing_with_constant_look_ahead">Dealing
with constant look ahead</a>
- </h5>
+ </h4>
<p>
- There is one other pre-defined class called <code class="computeroutput"><span class="identifier">look_ahead</span></code>.
- The class <code class="computeroutput"><span class="identifier">look_ahead</span></code> is another
- predefine <code class="computeroutput"><span class="identifier">multi_pass</span></code> iterator
- type. It has two template parameters: <code class="computeroutput"><span class="identifier">Input</span></code>,
- the type of the input iterator to wrap, and a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span></code>, which specifies the size of the buffer
- to the <code class="computeroutput"><span class="identifier">fixed_size_queue</span></code> policy.
- While the default multi_pass configuration is designed for safey, <code class="computeroutput"><span class="identifier">look_ahead</span></code> is designed for speed. <code class="computeroutput"><span class="identifier">look_ahead</span></code> is derived from a multi_pass
- with the following policies: <code class="computeroutput"><span class="identifier">input_iterator</span></code>
- InputPolicy, <code class="computeroutput"><span class="identifier">first_owner</span></code>
- OwnershipPolicy, <code class="computeroutput"><span class="identifier">no_check</span></code>
- CheckingPolicy, and <code class="computeroutput"><span class="identifier">fixed_size_queue</span><span class="special"><</span><span class="identifier">N</span><span class="special">></span></code>
+ There is one other pre-defined class called <tt class="computeroutput"><span class="identifier">look_ahead</span></tt>.
+ The class <tt class="computeroutput"><span class="identifier">look_ahead</span></tt> is another
+ predefine <tt class="computeroutput"><span class="identifier">multi_pass</span></tt> iterator
+ type. It has two template parameters: <tt class="computeroutput"><span class="identifier">Input</span></tt>,
+ the type of the input iterator to wrap, and a <tt class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span></tt>, which specifies the size of the buffer
+ to the <tt class="computeroutput"><span class="identifier">fixed_size_queue</span></tt> policy.
+ While the default multi_pass configuration is designed for safey, <tt class="computeroutput"><span class="identifier">look_ahead</span></tt> is designed for speed. <tt class="computeroutput"><span class="identifier">look_ahead</span></tt> is derived from a multi_pass
+ with the following policies: <tt class="computeroutput"><span class="identifier">input_iterator</span></tt>
+ InputPolicy, <tt class="computeroutput"><span class="identifier">first_owner</span></tt>
+ OwnershipPolicy, <tt class="computeroutput"><span class="identifier">no_check</span></tt>
+ CheckingPolicy, and <tt class="computeroutput"><span class="identifier">fixed_size_queue</span><span class="special"><</span><span class="identifier">N</span><span class="special">></span></tt>
StoragePolicy.
</p>
-<a name="spirit.support.multi_pass.how_to_write_a_functor_for_use_with_the__code__phrase_role__identifier__functor_input__phrase___code__inputpolicy"></a><h5>
-<a name="id912872"></a>
- <a class="link" href="multi_pass.html#spirit.support.multi_pass.how_to_write_a_functor_for_use_with_the__code__phrase_role__identifier__functor_input__phrase___code__inputpolicy">How
- to write a functor for use with the <code class="computeroutput"><span class="identifier">functor_input</span></code>
+<a name="spirit.support.multi_pass.how_to_write_a_functor_for_use_with_the__code__phrase_role__identifier__functor_input__phrase___code__inputpolicy"></a><h4>
+<a name="id742719"></a>
+ <a href="multi_pass.html#spirit.support.multi_pass.how_to_write_a_functor_for_use_with_the__code__phrase_role__identifier__functor_input__phrase___code__inputpolicy">How
+ to write a functor for use with the <tt class="computeroutput"><span class="identifier">functor_input</span></tt>
InputPolicy</a>
- </h5>
+ </h4>
<p>
- If you want to use the <code class="computeroutput"><span class="identifier">functor_input</span></code>
+ If you want to use the <tt class="computeroutput"><span class="identifier">functor_input</span></tt>
InputPolicy, you can write your own function object that will supply the
- input to <code class="computeroutput"><span class="identifier">multi_pass</span></code>. The
+ input to <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>. The
function object must satisfy several requirements. It must have a typedef
- <code class="computeroutput"><span class="identifier">result_type</span></code> which specifies
- the return type of its <code class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></code>. This is standard practice in the STL.
+ <tt class="computeroutput"><span class="identifier">result_type</span></tt> which specifies
+ the return type of its <tt class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></tt>. This is standard practice in the STL.
Also, it must supply a static variable called eof which is compared against
to know whether the input has reached the end. Last but not least the function
object must be default constructible. Here is an example:
@@ -723,29 +650,29 @@
<span class="special">++</span><span class="identifier">first</span><span class="special">;</span>
<span class="special">}</span>
</pre>
-<a name="spirit.support.multi_pass.how_to_write_policies_for_use_with_multi_pass"></a><h5>
-<a name="id913459"></a>
- <a class="link" href="multi_pass.html#spirit.support.multi_pass.how_to_write_policies_for_use_with_multi_pass">How
+<a name="spirit.support.multi_pass.how_to_write_policies_for_use_with_multi_pass"></a><h4>
+<a name="id743538"></a>
+ <a href="multi_pass.html#spirit.support.multi_pass.how_to_write_policies_for_use_with_multi_pass">How
to write policies for use with multi_pass</a>
- </h5>
+ </h4>
<p>
- All policies to be used with the <code class="computeroutput"><span class="identifier">default_policy</span></code>
- template need to have two embedded classes: <code class="computeroutput"><span class="identifier">unique</span></code>
- and <code class="computeroutput"><span class="identifier">shared</span></code>. The <code class="computeroutput"><span class="identifier">unique</span></code> class needs to implement all required
+ All policies to be used with the <tt class="computeroutput"><span class="identifier">default_policy</span></tt>
+ template need to have two embedded classes: <tt class="computeroutput"><span class="identifier">unique</span></tt>
+ and <tt class="computeroutput"><span class="identifier">shared</span></tt>. The <tt class="computeroutput"><span class="identifier">unique</span></tt> class needs to implement all required
functions for a particular policy type. In addition it may hold all member
data items being <span class="emphasis"><em>unique</em></span> for a particular instance of
- a <code class="computeroutput"><span class="identifier">multi_pass</span></code> (hence the name).
- The <code class="computeroutput"><span class="identifier">shared</span></code> class does not
+ a <tt class="computeroutput"><span class="identifier">multi_pass</span></tt> (hence the name).
+ The <tt class="computeroutput"><span class="identifier">shared</span></tt> class does not
expose any member functions (except sometimes a constructor), but it may
hold all member data items to be <span class="emphasis"><em>shared</em></span> between all
- copies of a particular <code class="computeroutput"><span class="identifier">multi_pass</span></code>.
+ copies of a particular <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>.
</p>
-<a name="spirit.support.multi_pass.inputpolicy"></a><h5>
-<a name="id913533"></a>
- <a class="link" href="multi_pass.html#spirit.support.multi_pass.inputpolicy">InputPolicy</a>
- </h5>
+<a name="spirit.support.multi_pass.inputpolicy"></a><h4>
+<a name="id743664"></a>
+ InputPolicy
+ </h4>
<p>
- An <code class="computeroutput"><span class="identifier">InputPolicy</span></code> must have
+ An <tt class="computeroutput"><span class="identifier">InputPolicy</span></tt> must have
the following interface:
</p>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">input_policy</span>
@@ -821,27 +748,27 @@
<span class="special">};</span>
</pre>
<p>
- It is possible to derive the struct <code class="computeroutput"><span class="identifier">unique</span></code>
- from the type <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">default_input_policy</span></code>. This type implements
+ It is possible to derive the struct <tt class="computeroutput"><span class="identifier">unique</span></tt>
+ from the type <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">default_input_policy</span></tt>. This type implements
a minimal sufficient interface for some of the required functions, simplifying
the task of writing a new input policy.
</p>
<p>
- This class may implement a function <code class="computeroutput"><span class="identifier">destroy</span><span class="special">()</span></code> being called during destruction of the
- last copy of a <code class="computeroutput"><span class="identifier">multi_pass</span></code>.
+ This class may implement a function <tt class="computeroutput"><span class="identifier">destroy</span><span class="special">()</span></tt> being called during destruction of the
+ last copy of a <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>.
This function should be used to free any of the shared data items the policy
- might have allocated during construction of its <code class="computeroutput"><span class="identifier">shared</span></code>
- part. Because of the way <code class="computeroutput"><span class="identifier">multi_pass</span></code>
- is implemented any allocated data members in <code class="computeroutput"><span class="identifier">shared</span></code>
+ might have allocated during construction of its <tt class="computeroutput"><span class="identifier">shared</span></tt>
+ part. Because of the way <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>
+ is implemented any allocated data members in <tt class="computeroutput"><span class="identifier">shared</span></tt>
should <span class="underline">not</span> be deep copied in a copy
- constructor of <code class="computeroutput"><span class="identifier">shared</span></code>.
+ constructor of <tt class="computeroutput"><span class="identifier">shared</span></tt>.
</p>
-<a name="spirit.support.multi_pass.ownershippolicy"></a><h5>
-<a name="id915518"></a>
- <a class="link" href="multi_pass.html#spirit.support.multi_pass.ownershippolicy">OwnershipPolicy</a>
- </h5>
+<a name="spirit.support.multi_pass.ownershippolicy"></a><h4>
+<a name="id744873"></a>
+ OwnershipPolicy
+ </h4>
<p>
- The <code class="computeroutput"><span class="identifier">OwnershipPolicy</span></code> must
+ The <tt class="computeroutput"><span class="identifier">OwnershipPolicy</span></tt> must
have the following interface:
</p>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">ownership_policy</span>
@@ -888,27 +815,27 @@
<span class="special">};</span>
</pre>
<p>
- It is possible to derive the struct <code class="computeroutput"><span class="identifier">unique</span></code>
- from the type <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">default_ownership_policy</span></code>. This type implements
+ It is possible to derive the struct <tt class="computeroutput"><span class="identifier">unique</span></tt>
+ from the type <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">default_ownership_policy</span></tt>. This type implements
a minimal sufficient interface for some of the required functions, simplifying
the task of writing a new ownership policy.
</p>
<p>
- This class may implement a function <code class="computeroutput"><span class="identifier">destroy</span><span class="special">()</span></code> being called during destruction of the
- last copy of a <code class="computeroutput"><span class="identifier">multi_pass</span></code>.
+ This class may implement a function <tt class="computeroutput"><span class="identifier">destroy</span><span class="special">()</span></tt> being called during destruction of the
+ last copy of a <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>.
This function should be used to free any of the shared data items the policy
- might have allocated during construction of its <code class="computeroutput"><span class="identifier">shared</span></code>
- part. Because of the way <code class="computeroutput"><span class="identifier">multi_pass</span></code>
- is implemented any allocated data members in <code class="computeroutput"><span class="identifier">shared</span></code>
+ might have allocated during construction of its <tt class="computeroutput"><span class="identifier">shared</span></tt>
+ part. Because of the way <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>
+ is implemented any allocated data members in <tt class="computeroutput"><span class="identifier">shared</span></tt>
should <span class="underline">not</span> be deep copied in a copy
- constructor of <code class="computeroutput"><span class="identifier">shared</span></code>.
+ constructor of <tt class="computeroutput"><span class="identifier">shared</span></tt>.
</p>
-<a name="spirit.support.multi_pass.checkingpolicy"></a><h5>
-<a name="id916052"></a>
- <a class="link" href="multi_pass.html#spirit.support.multi_pass.checkingpolicy">CheckingPolicy</a>
- </h5>
+<a name="spirit.support.multi_pass.checkingpolicy"></a><h4>
+<a name="id745617"></a>
+ CheckingPolicy
+ </h4>
<p>
- The <code class="computeroutput"><span class="identifier">CheckingPolicy</span></code> must have
+ The <tt class="computeroutput"><span class="identifier">CheckingPolicy</span></tt> must have
the following interface:
</p>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">checking_policy</span>
@@ -947,27 +874,27 @@
<span class="special">};</span>
</pre>
<p>
- It is possible to derive the struct <code class="computeroutput"><span class="identifier">unique</span></code>
- from the type <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">default_checking_policy</span></code>. This type implements
+ It is possible to derive the struct <tt class="computeroutput"><span class="identifier">unique</span></tt>
+ from the type <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">default_checking_policy</span></tt>. This type implements
a minimal sufficient interface for some of the required functions, simplifying
the task of writing a new checking policy.
</p>
<p>
- This class may implement a function <code class="computeroutput"><span class="identifier">destroy</span><span class="special">()</span></code> being called during destruction of the
- last copy of a <code class="computeroutput"><span class="identifier">multi_pass</span></code>.
+ This class may implement a function <tt class="computeroutput"><span class="identifier">destroy</span><span class="special">()</span></tt> being called during destruction of the
+ last copy of a <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>.
This function should be used to free any of the shared data items the policy
- might have allocated during construction of its <code class="computeroutput"><span class="identifier">shared</span></code>
- part. Because of the way <code class="computeroutput"><span class="identifier">multi_pass</span></code>
- is implemented any allocated data members in <code class="computeroutput"><span class="identifier">shared</span></code>
+ might have allocated during construction of its <tt class="computeroutput"><span class="identifier">shared</span></tt>
+ part. Because of the way <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>
+ is implemented any allocated data members in <tt class="computeroutput"><span class="identifier">shared</span></tt>
should <span class="underline">not</span> be deep copied in a copy
- constructor of <code class="computeroutput"><span class="identifier">shared</span></code>.
+ constructor of <tt class="computeroutput"><span class="identifier">shared</span></tt>.
</p>
-<a name="spirit.support.multi_pass.storagepolicy"></a><h5>
-<a name="id916504"></a>
- <a class="link" href="multi_pass.html#spirit.support.multi_pass.storagepolicy">StoragePolicy</a>
- </h5>
+<a name="spirit.support.multi_pass.storagepolicy"></a><h4>
+<a name="id746253"></a>
+ StoragePolicy
+ </h4>
<p>
- A <code class="computeroutput"><span class="identifier">StoragePolicy</span></code> must have
+ A <tt class="computeroutput"><span class="identifier">StoragePolicy</span></tt> must have
the following interface:
</p>
<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">storage_policy</span>
@@ -1045,25 +972,25 @@
<span class="special">};</span>
</pre>
<p>
- It is possible to derive the struct <code class="computeroutput"><span class="identifier">unique</span></code>
- from the type <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">default_storage_policy</span></code>. This type implements
+ It is possible to derive the struct <tt class="computeroutput"><span class="identifier">unique</span></tt>
+ from the type <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">default_storage_policy</span></tt>. This type implements
a minimal sufficient interface for some of the required functions, simplifying
the task of writing a new storage policy.
</p>
<p>
- This class may implement a function <code class="computeroutput"><span class="identifier">destroy</span><span class="special">()</span></code> being called during destruction of the
- last copy of a <code class="computeroutput"><span class="identifier">multi_pass</span></code>.
+ This class may implement a function <tt class="computeroutput"><span class="identifier">destroy</span><span class="special">()</span></tt> being called during destruction of the
+ last copy of a <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>.
This function should be used to free any of the shared data items the policy
- might have allocated during construction of its <code class="computeroutput"><span class="identifier">shared</span></code>
- part. Because of the way <code class="computeroutput"><span class="identifier">multi_pass</span></code>
- is implemented any allocated data members in <code class="computeroutput"><span class="identifier">shared</span></code>
+ might have allocated during construction of its <tt class="computeroutput"><span class="identifier">shared</span></tt>
+ part. Because of the way <tt class="computeroutput"><span class="identifier">multi_pass</span></tt>
+ is implemented any allocated data members in <tt class="computeroutput"><span class="identifier">shared</span></tt>
should <span class="underline">not</span> be deep copied in a copy
- constructor of <code class="computeroutput"><span class="identifier">shared</span></code>.
+ constructor of <tt class="computeroutput"><span class="identifier">shared</span></tt>.
</p>
<p>
- Generally, a <code class="computeroutput"><span class="identifier">StoragePolicy</span></code>
+ Generally, a <tt class="computeroutput"><span class="identifier">StoragePolicy</span></tt>
is the trickiest policy to implement. You should study and understand the
- existing <code class="computeroutput"><span class="identifier">StoragePolicy</span></code> classes
+ existing <tt class="computeroutput"><span class="identifier">StoragePolicy</span></tt> classes
before you try and write your own.
</p>
</div>
Modified: trunk/libs/spirit/doc/html/spirit/what_s_new.html
==============================================================================
--- trunk/libs/spirit/doc/html/spirit/what_s_new.html (original)
+++ trunk/libs/spirit/doc/html/spirit/what_s_new.html 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -3,10 +3,10 @@
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>What's New</title>
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.0">
+<meta name="generator" content="DocBook XSL Stylesheets V1.65.1">
<link rel="home" href="../index.html" title="Spirit 2.1">
<link rel="up" href="../index.html" title="Spirit 2.1">
-<link rel="prev" href="preface.html" title="Preface">
+<link rel="previous" href="preface.html" title="Preface">
<link rel="next" href="introduction.html" title="Introduction">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -22,14 +22,17 @@
<div class="spirit-nav">
<a accesskey="p" href="preface.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="introduction.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
</div>
-<div class="section" title="What's New">
-<div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="spirit.what_s_new"></a><a class="link" href="what_s_new.html" title="What's New">What's New</a>
-</h2></div></div></div>
-<a name="spirit.what_s_new.spirit_classic"></a><h4>
-<a name="id574435"></a>
- <a class="link" href="what_s_new.html#spirit.what_s_new.spirit_classic">Spirit Classic</a>
- </h4>
+<div class="section" lang="en">
+<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></div>
+</div>
+<a name="spirit.what_s_new.spirit_classic"></a><h3>
+<a name="id409142"></a>
+ Spirit Classic
+ </h3>
<p>
The Spirit V1.8.x code base has been integrated with Spirit V2. It is now called
<a href="../../../../../libs/spirit/classic/index.html" target="_top"><span class="emphasis"><em>Spirit.Classic</em></span></a>.
@@ -54,11 +57,11 @@
</pre>
<p>
To avoid namespace conflicts with the new Spirit V2 library we moved Spirit
- Classic into the namespace <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">classic</span></code>.
- All references to the former namespace <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span></code>
+ Classic into the namespace <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">classic</span></tt>.
+ All references to the former namespace <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span></tt>
need to be adjusted as soon as the header names are corrected as described
- above. As an alternative you can define the preprocessor constant <code class="computeroutput"><span class="identifier">BOOST_SPIRIT_USE_OLD_NAMESPACE</span></code>, which will
- force the Spirit Classic code to be in the namespace <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span></code>
+ above. As an alternative you can define the preprocessor constant <tt class="computeroutput"><span class="identifier">BOOST_SPIRIT_USE_OLD_NAMESPACE</span></tt>, which will
+ force the Spirit Classic code to be in the namespace <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span></tt>
as before. This is not recommended, though, as it may result in naming clashes.
</p>
<p>
@@ -66,135 +69,139 @@
deprecated include files are being used. This ensures full backwards compatibility
for existing applications.
</p>
-<a name="spirit.what_s_new.spirit_v2_1"></a><h4>
-<a name="id574628"></a>
- <a class="link" href="what_s_new.html#spirit.what_s_new.spirit_v2_1">Spirit V2.1</a>
- </h4>
-<a name="spirit.what_s_new.what_s_changed_in__emphasis_spirit_qi__emphasis__and__emphasis_spirit_karma__emphasis__from_v2_0__boost_v1_37_0__to_2_1__boost_v1_41_0_"></a><h4>
-<a name="id574641"></a>
- <a class="link" href="what_s_new.html#spirit.what_s_new.what_s_changed_in__emphasis_spirit_qi__emphasis__and__emphasis_spirit_karma__emphasis__from_v2_0__boost_v1_37_0__to_2_1__boost_v1_41_0_">What's
+<a name="spirit.what_s_new.spirit_v2_1"></a><h3>
+<a name="id409409"></a>
+ Spirit V2.1
+ </h3>
+<a name="spirit.what_s_new.what_s_changed_in__emphasis_spirit_qi__emphasis__and__emphasis_spirit_karma__emphasis__from_v2_0__boost_v1_37_0__to_2_1__boost_v1_41_0_"></a><h3>
+<a name="id409435"></a>
+ <a href="what_s_new.html#spirit.what_s_new.what_s_changed_in__emphasis_spirit_qi__emphasis__and__emphasis_spirit_karma__emphasis__from_v2_0__boost_v1_37_0__to_2_1__boost_v1_41_0_">What's
changed in <span class="emphasis"><em>Spirit.Qi</em></span> and <span class="emphasis"><em>Spirit.Karma</em></span>
from V2.0 (Boost V1.37.0) to 2.1 (Boost V1.41.0)</a>
- </h4>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+ </h3>
+<div class="itemizedlist"><ul type="disc">
+<li>
<a href="http://spirit.sourceforge.net" target="_top">Spirit</a> is now based on
the newest version of Boost.Proto
</li>
-<li class="listitem">
-<code class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">phrase_parse</span></code>, <code class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">phrase_format</span></code>
+<li>
+<tt class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">phrase_parse</span></tt>, <tt class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">phrase_format</span></tt>
now post-skip by default.
</li>
-<li class="listitem">
-<code class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">generate_delimited</span></code> and <code class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">format_delimited</span></code>
+<li>
+<tt class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">generate_delimited</span></tt> and <tt class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">format_delimited</span></tt>
now don't do pre- delimiting by default.
</li>
-<li class="listitem">
- Changed parameter sequence of <code class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">phrase_parse</span></code>,
- <code class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">phrase_match</span></code>, <code class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">generate_delimited</span></code>,
- and <code class="computeroutput"><span class="identifier">match_delimited</span></code>. The
+<li>
+ Changed parameter sequence of <tt class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">phrase_parse</span></tt>,
+ <tt class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">phrase_match</span></tt>, <tt class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">generate_delimited</span></tt>,
+ and <tt class="computeroutput"><span class="identifier">match_delimited</span></tt>. The
attribute is now always the last parameter.
</li>
-<li class="listitem">
+<li>
Added new overloads of those functions allowing to explicitely specify the
post-skipping and pre-delimiting behavior.
</li>
-<li class="listitem">
+<li>
Added multi attribute API functions
</li>
-<li class="listitem">
- Removed <code class="computeroutput"><span class="identifier">grammar_def</span><span class="special"><></span></code>
+<li>
+ Removed <tt class="computeroutput"><span class="identifier">grammar_def</span><span class="special"><></span></tt>
</li>
-<li class="listitem">
- Removed functions <code class="computeroutput"><span class="identifier">make_parser</span><span class="special">()</span></code> and <code class="computeroutput"><span class="identifier">make_generator</span><span class="special">()</span></code>
+<li>
+ Removed functions <tt class="computeroutput"><span class="identifier">make_parser</span><span class="special">()</span></tt> and <tt class="computeroutput"><span class="identifier">make_generator</span><span class="special">()</span></tt>
</li>
-<li class="listitem">
- Removed <code class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">none</span></code> and <code class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">none</span></code>
+<li>
+ Removed <tt class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">none</span></tt> and <tt class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">none</span></tt>
</li>
-<li class="listitem">
+<li>
Sequences and lists now accept a standard container as their attribute
</li>
-<li class="listitem">
+<li>
The string placeholder terminal now can take other strings as its parameter
(i.e. std::string)
</li>
-<li class="listitem">
+<li>
All terminals taking literals now accept a (lazy) function object as well
</li>
-<li class="listitem">
- All placeholders for terminals and directives (such as <code class="computeroutput"><span class="identifier">int_</span></code>,
- <code class="computeroutput"><span class="identifier">double_</span></code>, <code class="computeroutput"><span class="identifier">verbatim</span></code>,
- etc.) were previously defined in the namespace <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span></code>
- only. Now these are additionally imported into the namespaces <code class="computeroutput"><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span></code>, <code class="computeroutput"><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">karma</span></code>,
- and <code class="computeroutput"><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lex</span></code> (if they are supported by the corresponding
+<li>
+ All placeholders for terminals and directives (such as <tt class="computeroutput"><span class="identifier">int_</span></tt>,
+ <tt class="computeroutput"><span class="identifier">double_</span></tt>, <tt class="computeroutput"><span class="identifier">verbatim</span></tt>,
+ etc.) were previously defined in the namespace <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span></tt>
+ only. Now these are additionally imported into the namespaces <tt class="computeroutput"><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span></tt>, <tt class="computeroutput"><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">karma</span></tt>,
+ and <tt class="computeroutput"><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">lex</span></tt> (if they are supported by the corresponding
sub-library).
</li>
-<li class="listitem">
- The terminal placeholders <code class="computeroutput"><span class="identifier">char_</span></code>
- and <code class="computeroutput"><span class="identifier">string</span></code> are not defined
- in the namespace <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span></code> anymore as they have been moved
+<li>
+ The terminal placeholders <tt class="computeroutput"><span class="identifier">char_</span></tt>
+ and <tt class="computeroutput"><span class="identifier">string</span></tt> are not defined
+ in the namespace <tt class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span></tt> anymore as they have been moved
to the character set namespaces, allowing to do proper character set handling
- based on the used namespace (as <code class="computeroutput"><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ascii</span></code>,
+ based on the used namespace (as <tt class="computeroutput"><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">ascii</span></tt>,
etc.)
</li>
-<li class="listitem">
- The <code class="computeroutput"><span class="identifier">uint</span></code>, <code class="computeroutput"><span class="identifier">ushort</span></code>,
- <code class="computeroutput"><span class="identifier">ulong</span></code>, and <code class="computeroutput"><span class="identifier">byte</span></code> terminal placeholders have been renamed
- to <code class="computeroutput"><span class="identifier">uint_</span></code>, <code class="computeroutput"><span class="identifier">ushort_</span></code>,
- <code class="computeroutput"><span class="identifier">ulong_</span></code>, and <code class="computeroutput"><span class="identifier">byte_</span></code>.
- </li>
-<li class="listitem">
-<code class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">skip</span><span class="special">[]</span></code>
- now re-enables outer skipper if used inside <code class="computeroutput"><span class="identifier">lexeme</span><span class="special">[]</span></code>
+<li>
+ The <tt class="computeroutput"><span class="identifier">uint</span></tt>, <tt class="computeroutput"><span class="identifier">ushort</span></tt>,
+ <tt class="computeroutput"><span class="identifier">ulong</span></tt>, and <tt class="computeroutput"><span class="identifier">byte</span></tt> terminal placeholders have been renamed
+ to <tt class="computeroutput"><span class="identifier">uint_</span></tt>, <tt class="computeroutput"><span class="identifier">ushort_</span></tt>,
+ <tt class="computeroutput"><span class="identifier">ulong_</span></tt>, and <tt class="computeroutput"><span class="identifier">byte_</span></tt>.
+ </li>
+<li>
+<tt class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">skip</span><span class="special">[]</span></tt>
+ now re-enables outer skipper if used inside <tt class="computeroutput"><span class="identifier">lexeme</span><span class="special">[]</span></tt>
</li>
-<li class="listitem">
- Added <code class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">maxwidth</span><span class="special">[]</span></code>
+<li>
+ Added <tt class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">maxwidth</span><span class="special">[]</span></tt>
directive
</li>
-<li class="listitem">
- Added <code class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">omit</span><span class="special">[]</span></code>
- directive (see <a class="link" href="karma/reference/directive/omit.html" title="Consume Attribute (omit[])"><code class="computeroutput"><span class="identifier">omit</span></code></a>)
- </li>
-<li class="listitem">
- Added <code class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">buffer</span><span class="special">[]</span></code>
- directive (see <a class="link" href="karma/reference/directive/buffer.html" title="Temporary Output Buffering (buffer[])"><code class="computeroutput"><span class="identifier">buffer</span></code></a>)
- </li>
-<li class="listitem">
-<code class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">delimit</span><span class="special">[]</span></code>
- now re-enables outer delimiter if used inside <code class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></code>
+<li>
+ Added <tt class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">omit</span><span class="special">[]</span></tt>
+ directive (see <a href="karma/reference/directive/omit.html" title=" Consume Attribute
+ (omit[])"><tt class="computeroutput"><span class="identifier">omit</span></tt></a>)
+ </li>
+<li>
+ Added <tt class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">buffer</span><span class="special">[]</span></tt>
+ directive (see <a href="karma/reference/directive/buffer.html" title=" Temporary
+ Output Buffering (buffer[])"><tt class="computeroutput"><span class="identifier">buffer</span></tt></a>)
+ </li>
+<li>
+<tt class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">delimit</span><span class="special">[]</span></tt>
+ now re-enables outer delimiter if used inside <tt class="computeroutput"><span class="identifier">verbatim</span><span class="special">[]</span></tt>
</li>
-<li class="listitem">
- karma: added and-predicate (<code class="computeroutput"><span class="keyword">operator</span><span class="special">&()</span></code>) and not-predicate (<code class="computeroutput"><span class="keyword">operator</span><span class="special">!()</span></code>)
+<li>
+ karma: added and-predicate (<tt class="computeroutput"><span class="keyword">operator</span><span class="special">&()</span></tt>) and not-predicate (<tt class="computeroutput"><span class="keyword">operator</span><span class="special">!()</span></tt>)
</li>
-<li class="listitem">
- karma: changed semantics of <code class="computeroutput"><span class="identifier">char_</span><span class="special">()</span></code>, <code class="computeroutput"><span class="identifier">string</span><span class="special">()</span></code>, <code class="computeroutput"><span class="identifier">int_</span><span class="special">()</span></code> et.al., and <code class="computeroutput"><span class="identifier">double_</span><span class="special">()</span></code> et.al.: all of these generators now always
+<li>
+ karma: changed semantics of <tt class="computeroutput"><span class="identifier">char_</span><span class="special">()</span></tt>, <tt class="computeroutput"><span class="identifier">string</span><span class="special">()</span></tt>, <tt class="computeroutput"><span class="identifier">int_</span><span class="special">()</span></tt> et.al., and <tt class="computeroutput"><span class="identifier">double_</span><span class="special">()</span></tt> et.al.: all of these generators now always
expose an attribute. If they do not have an associate attribute, they generate
their immediate literal. If they have an associated attribute, the generators
first test if the attribute value is equal to the immediate literal. They
fail not while generating anything if those are not equal. Otherwise they
generate their immediate literal. For more information see for instance
- <a class="link" href="karma/reference/numeric/signed_int.html" title="Signed Integer Number Generators (int_, etc.)"><code class="computeroutput"><span class="identifier">int_</span></code></a>.
+ <a href="karma/reference/numeric/signed_int.html" title=" Signed
+ Integer Number Generators (int_,
+ etc.)"><tt class="computeroutput"><span class="identifier">int_</span></tt></a>.
</li>
-<li class="listitem">
-<code class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">lit</span><span class="special">()</span></code> can
+<li>
+<tt class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">lit</span><span class="special">()</span></tt> can
now be used to generate integer and floating point numbers
</li>
-<li class="listitem">
-<code class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">rule</span></code> and <code class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">rule</span></code>
+<li>
+<tt class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">rule</span></tt> and <tt class="computeroutput"><span class="identifier">karma</span><span class="special">::</span><span class="identifier">rule</span></tt>
now can be directly initialzed using their copy constructor. I.e. this works
- now: <code class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">rule</span><span class="special"><...></span>
- <span class="identifier">r</span> <span class="special">=</span> <span class="special">...</span><span class="identifier">some</span> <span class="identifier">parser</span><span class="special">...;</span></code>.The
+ now: <tt class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">rule</span><span class="special"><...></span>
+ <span class="identifier">r</span> <span class="special">=</span> <span class="special">...</span><span class="identifier">some</span> <span class="identifier">parser</span><span class="special">...;</span></tt>.The
semantics of this initalization are equivalent to initializing them using
- <code class="computeroutput"><span class="keyword">operator</span><span class="special">%=()</span></code>
+ <tt class="computeroutput"><span class="keyword">operator</span><span class="special">%=()</span></tt>
(auto attribute propagation is enabled).
</li>
</ul></div>
-<a name="spirit.what_s_new.what_s_changed_in__emphasis_spirit_lex__emphasis__from_v2_0__boost_v1_37_0__to_2_1__boost_v1_41_0_"></a><h4>
-<a name="id578756"></a>
- <a class="link" href="what_s_new.html#spirit.what_s_new.what_s_changed_in__emphasis_spirit_lex__emphasis__from_v2_0__boost_v1_37_0__to_2_1__boost_v1_41_0_">What's
+<a name="spirit.what_s_new.what_s_changed_in__emphasis_spirit_lex__emphasis__from_v2_0__boost_v1_37_0__to_2_1__boost_v1_41_0_"></a><h3>
+<a name="id410483"></a>
+ <a href="what_s_new.html#spirit.what_s_new.what_s_changed_in__emphasis_spirit_lex__emphasis__from_v2_0__boost_v1_37_0__to_2_1__boost_v1_41_0_">What's
changed in <span class="emphasis"><em>Spirit.Lex</em></span> from V2.0 (Boost V1.37.0) to 2.1
(Boost V1.41.0)</a>
- </h4>
+ </h3>
<p>
Here is a list of changes in <span class="emphasis"><em>Spirit.Lex</em></span> since version
2.0. <span class="emphasis"><em>Spirit.Lex</em></span> 2.1 is a complete rewrite of the <span class="emphasis"><em>Spirit.Lex</em></span>
@@ -203,15 +210,15 @@
now uses the infrastructure provided by Spirit
version 2.1.
</p>
-<div class="itemizedlist"><ul class="itemizedlist" type="disc">
-<li class="listitem">
+<div class="itemizedlist"><ul type="disc">
+<li>
The lex::lexer_def class has been renamed to lex::lexer, while the original
class lex::lexer does not exist anymore. This simplifies the creation of
lexers.
</li>
-<li class="listitem">
- The lex::lexer class does not have the function <code class="computeroutput"><span class="identifier">def</span><span class="special">(</span><span class="identifier">Self</span><span class="special">&</span>
- <span class="identifier">self</span><span class="special">)</span></code>
+<li>
+ The lex::lexer class does not have the function <tt class="computeroutput"><span class="identifier">def</span><span class="special">(</span><span class="identifier">Self</span><span class="special">&</span>
+ <span class="identifier">self</span><span class="special">)</span></tt>
anymore, token definitions can be added to the lexer at any time, usually
in the constructor of the user defined lexer class:
<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>
@@ -225,73 +232,76 @@
<span class="special">};</span>
</pre>
</li>
-<li class="listitem">
- The new lexer class can now be used directly. The function <code class="computeroutput"><span class="identifier">make_lexer</span><span class="special">()</span></code>
+<li>
+ The new lexer class can now be used directly. The function <tt class="computeroutput"><span class="identifier">make_lexer</span><span class="special">()</span></tt>
has been removed.
</li>
-<li class="listitem">
- The <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">tokenize_and_parse</span><span class="special">()</span></code>
- and <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">tokenize_and_phrase_parse</span><span class="special">()</span></code>
+<li>
+ The <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">tokenize_and_parse</span><span class="special">()</span></tt>
+ and <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">tokenize_and_phrase_parse</span><span class="special">()</span></tt>
functions have been changed to match the parameter sequence as implemented
- by the <code class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">parse</span><span class="special">()</span></code>
- and <code class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">phrase_parse</span><span class="special">()</span></code>
+ by the <tt class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">parse</span><span class="special">()</span></tt>
+ and <tt class="computeroutput"><span class="identifier">qi</span><span class="special">::</span><span class="identifier">phrase_parse</span><span class="special">()</span></tt>
functions. Both take an arbitrary number of attribute arguments as the last
- parameters. This argument list is limited by the macro <code class="computeroutput"><span class="identifier">SPIRIT_ARGUMENTS_LIMIT</span></code>.
+ parameters. This argument list is limited by the macro <tt class="computeroutput"><span class="identifier">SPIRIT_ARGUMENTS_LIMIT</span></tt>.
</li>
-<li class="listitem">
- The <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexertl_lexer</span></code>, and <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexertl_token</span></code>
- classes have been moved to the <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexertl</span></code>
- namespace and the names have been changed to <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">lexer</span></code>,
- <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">token</span></code>. This also applies to the <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexert_actor_lexer</span></code>,
- and the <code class="computeroutput"><span class="identifier">static_lexertl_</span><span class="special">*</span></code>
+<li>
+ The <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexertl_lexer</span></tt>, and <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexertl_token</span></tt>
+ classes have been moved to the <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexertl</span></tt>
+ namespace and the names have been changed to <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">lexer</span></tt>,
+ <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexertl</span><span class="special">::</span><span class="identifier">token</span></tt>. This also applies to the <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexert_actor_lexer</span></tt>,
+ and the <tt class="computeroutput"><span class="identifier">static_lexertl_</span><span class="special">*</span></tt>
family of types.
</li>
-<li class="listitem">
- The class <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexertl_token_set</span></code> has been removed. This
+<li>
+ The class <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexertl_token_set</span></tt> has been removed. This
functionality is now available from the lexer class.
</li>
-<li class="listitem">
+<li>
The <span class="emphasis"><em>Spirit.Lex</em></span> library has been updated to use the newest
version of Ben Hansons Lexertl
lexer construction library (Boost review pending).
</li>
-<li class="listitem">
- The <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexer</span><span class="special"><</span><span class="identifier">Lexer</span><span class="special">></span></code>
- template constructor now takes an optional parameter specifying the <code class="computeroutput"><span class="identifier">match_flags</span></code> to be used for table generation.
+<li>
+ The <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">lexer</span><span class="special"><</span><span class="identifier">Lexer</span><span class="special">></span></tt>
+ template constructor now takes an optional parameter specifying the <tt class="computeroutput"><span class="identifier">match_flags</span></tt> to be used for table generation.
Currently, there are the following flags available:
<pre class="programlisting"><span class="identifier">match_flags</span><span class="special">::</span><span class="identifier">match_default</span><span class="special">,</span> <span class="comment">// no flags
</span><span class="identifier">match_flags</span><span class="special">::</span><span class="identifier">match_not_dot_newline</span><span class="special">,</span> <span class="comment">// the regex '.' doesn't match newlines
</span><span class="identifier">match_flags</span><span class="special">::</span><span class="identifier">match_icase</span> <span class="comment">// all matching operations are case insensitive
</span></pre>
- If no parameter is passed to the constructor, <code class="computeroutput"><span class="identifier">match_flags</span><span class="special">::</span><span class="identifier">match_default</span></code>
- is used, i.e. the <code class="computeroutput"><span class="special">.</span></code> matches
+ If no parameter is passed to the constructor, <tt class="computeroutput"><span class="identifier">match_flags</span><span class="special">::</span><span class="identifier">match_default</span></tt>
+ is used, i.e. the <tt class="computeroutput"><span class="special">.</span></tt> matches
newlines and matching is case sensitive.
</li>
-<li class="listitem">
- The <code class="computeroutput"><span class="identifier">char_</span><span class="special">()</span></code>
- and <code class="computeroutput"><span class="identifier">string</span><span class="special">()</span></code>
+<li>
+ The <tt class="computeroutput"><span class="identifier">char_</span><span class="special">()</span></tt>
+ and <tt class="computeroutput"><span class="identifier">string</span><span class="special">()</span></tt>
placeholders can now be used for token definitions and are synonymous with
- <code class="computeroutput"><span class="identifier">token_def</span></code>.
+ <tt class="computeroutput"><span class="identifier">token_def</span></tt>.
</li>
-<li class="listitem">
- Lexer semantic actions now have to conform to a changed interface (see <a class="link" href="lex/abstracts/lexer_semantic_actions.html" title="Lexer Semantic Actions">Lexer Semantic Actions</a>
+<li>
+ Lexer semantic actions now have to conform to a changed interface (see <a href="lex/abstracts/lexer_semantic_actions.html" title=" Lexer
+ Semantic Actions">Lexer Semantic Actions</a>
for details).
</li>
-<li class="listitem">
+<li>
Added placeholder symbols usable from the inside of lexer semantic actions
- while using Phoenix: <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">_start</span></code>,
- <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">_end</span></code>, <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">_eoi</span></code>,
- <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">_state</span></code>, <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">_val</span></code>,
- and <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">_pass</span></code> (see <a class="link" href="lex/abstracts/lexer_semantic_actions.html" title="Lexer Semantic Actions">Lexer
+ while using Phoenix: <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">_start</span></tt>,
+ <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">_end</span></tt>, <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">_eoi</span></tt>,
+ <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">_state</span></tt>, <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">_val</span></tt>,
+ and <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">_pass</span></tt> (see <a href="lex/abstracts/lexer_semantic_actions.html" title=" Lexer
+ Semantic Actions">Lexer
Semantic Actions</a> for more details).
</li>
-<li class="listitem">
+<li>
Added (lazy) support functions usable from the inside of lexer semantic actions
- while using Phoenix: <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">more</span><span class="special">()</span></code>, <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">less</span><span class="special">()</span></code>, and <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">lookahead</span><span class="special">()</span></code> (see <a class="link" href="lex/abstracts/lexer_semantic_actions.html" title="Lexer Semantic Actions">Lexer
+ while using Phoenix: <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">more</span><span class="special">()</span></tt>, <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">less</span><span class="special">()</span></tt>, and <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">lookahead</span><span class="special">()</span></tt> (see <a href="lex/abstracts/lexer_semantic_actions.html" title=" Lexer
+ Semantic Actions">Lexer
Semantic Actions</a> for more details).
</li>
-<li class="listitem">
- Removed <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">omitted</span></code> in favor of <code class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">omit</span></code>
+<li>
+ Removed <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">omitted</span></tt> in favor of <tt class="computeroutput"><span class="identifier">lex</span><span class="special">::</span><span class="identifier">omit</span></tt>
to unify the overall interface.
</li>
</ul></div>
Added: trunk/libs/spirit/doc/operator_template.qbk
==============================================================================
--- (empty file)
+++ trunk/libs/spirit/doc/operator_template.qbk 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -0,0 +1,53 @@
+[/------------------------------------------------------------------------------]
+[section XXX]
+
+[heading Description]
+
+Description of XXX
+
+[heading Header]
+
+ // forwards to <boost/spirit/home/qi/operator/xxx.hpp>
+ #include <boost/spirit/include/qi_xxx.hpp>
+
+Also, see __include_structure__.
+
+[heading Model of]
+
+[:__nary_parser_concept__]
+[:__binary_parser_concept__]
+[:__unary_parser_concept__]
+
+[variablelist Notation
+ [[`a`, `b`] [A __parser_concept__]]
+]
+
+[heading Expression Semantics]
+
+Semantics of an expression is defined only where it differs from, or is not
+defined in _concept-of_XXX_.
+
+[table
+ [[Expression] [Semantics]]
+ [[`xxx`] [Semantics of `xxx`]]
+]
+
+[heading Attributes]
+
+See __qi_comp_attr_notation__.
+
+[table
+ [[Expression] [Attribute]]
+ [[`xxx`] [Attribute of `xxx`]]
+]
+
+[heading Complexity]
+
+Big-O complexity of the parser
+
+[heading Example]
+
+Real example code. Use Quickbook import mechanism to link to actual
+working code snippets here.
+
+[endsect] [/ XXX]
Modified: trunk/libs/spirit/doc/spirit2.qbk
==============================================================================
--- trunk/libs/spirit/doc/spirit2.qbk (original)
+++ trunk/libs/spirit/doc/spirit2.qbk 2009-10-12 23:09:50 EDT (Mon, 12 Oct 2009)
@@ -79,7 +79,7 @@
[def __sec_qi__ [link spirit.qi Qi]]
[def __sec_karma__ [link spirit.karma Karma]]
[def __sec_attributes__ [link spirit.abstracts.attributes Attributes]]
-[def __sec_customization_points__ [link spirit.abstracts.customize Customization of Attribute Handling]]
+[def __sec_customization_points__ [link spirit.advanced.customize Customization of Attribute Handling]]
[def __sec_karma_numeric_performance__ [link spirit.karma.performance_measurements.numeric_performance Performance of Numeric Generators]]
[def __sec_karma_primitive__ [link spirit.karma.quick_reference.primitive_generators Karma Generators]]
@@ -357,6 +357,7 @@
[include qi.qbk]
[include karma.qbk]
[include lex.qbk]
+[include advanced.qbk]
[include support.qbk]
[include faq.qbk]
[include notes.qbk]
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