1[/==============================================================================
2    Copyright (C) 2001-2011 Joel de Guzman
3    Copyright (C) 2001-2011 Hartmut Kaiser
4
5    Distributed under the Boost Software License, Version 1.0. (See accompanying
6    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7===============================================================================/]
8
9[article Spirit
10    [quickbook 1.5]
11    [version 2.5.2]
12    [authors [de Guzman, Joel], [Kaiser, Hartmut]]
13    [copyright 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 Joel de Guzman, Hartmut Kaiser]
14    [/ purpose Parser and Generator Library]
15    [license
16        Distributed under the Boost Software License, Version 1.0.
17        (See accompanying file LICENSE_1_0.txt or copy at
18        [@http://www.boost.org/LICENSE_1_0.txt])
19    ]
20]
21
22[/ November 14, 2007 ]
23
24[/ Some links ]
25
26[def __version__                V2.5.2]
27
28[def __spirit__                 [@http://boost-spirit.com Spirit]]
29[def __spirit_list__            [@http://www.nabble.com/The-Spirit-Parser-Library-f3430.html Spirit General List]]
30[def __phoenix__                [@../../phoenix/doc/html/index.html Phoenix]]
31[def __boost_phoenix__          [@boost:/libs/phoenix/doc/html/index.html Boost.Phoenix]]
32[def __fusion__                 [@boost:/libs/fusion/doc/html/index.html Boost.Fusion]]
33[def __mpl__                    [@http://www.boost.org/libs/mpl/index.html Boost.Mpl]]
34[def __stl__                    [@http://www.sgi.com/tech/stl/ STL]]
35[def __boost__                  [@http://www.boost.org/ Boost]]
36[def __boost_tools__            [@http://www.boost.org/tools/index.html Boost Tools]]
37[def __spirit_list__            [@https://lists.sourceforge.net/lists/listinfo/spirit-general Spirit Mailing List]]
38[def __spirit_general__         [@news://news.gmane.org/gmane.comp.spirit.general Spirit General NNTP news portal]]
39[def __gmane__                  [@http://www.gmane.org Gmane]]
40[def __mlist_archive__          [@http://news.gmane.org/gmane.comp.parsers.spirit.general]]
41[def __repo__                   [@../../repository/doc/html/index.html Repository]]
42
43[def __early_spirit__           [@http://spirit.sourceforge.net/dl_docs/pre-spirit.htm pre-Spirit]]
44[def __exprtemplates__          [@http://en.wikipedia.org/wiki/Expression_templates Expression Templates]]
45[/ Ideally, this would link to the references section but there doesn't seem to be
46   a way to do it!]
47[def __ebnf_intro__             [@http://www.csci.csusb.edu/dick/maths/intro_ebnf.html EBNF intro]]
48[def __attr_grammar__           [@http://en.wikipedia.org/wiki/Attribute_grammar Attribute Grammar]]
49[def __string_template__        [@http://www.stringtemplate.org/ StringTemplate]]
50[def __lexertl__                [@http://www.benhanson.net/lexertl.html Lexertl]]
51[def __wave__                   [@http://www.boost.org/libs/wave/index.html Wave]]
52[def __slex__                   [@http://spirit.sourceforge.net/repository/applications/slex.zip SLex]]
53[def __flex__                   [@http://flex.sourceforge.net/ Flex]]
54[def __re2c__                   [@http://re2c.sourceforge.net/ re2c]]
55[def __ragel__                  [@http://www.cs.queensu.ca/~thurston/ragel/ Ragel]]
56
57[def __boost_variant__          [@http://www.boost.org/doc/html/variant.html Boost.Variant]]
58[def __boost_iterator_range__   [@boost:/libs/range/doc/html/range/reference/utilities/iterator_range.html `boost::iterator_range`]]
59[def __boost_bind__             [@boost:/libs/bind/index.html Boost.Bind]]
60[def __boost_lambda__           [@boost:/libs/lambda/index.html Boost.Lambda]]
61[def __boost_tuples__           [@boost:/libs/tuple/index.html Boost.Tuples]]
62[def __boost_proto__            [@boost:/doc/html/proto.html Boost.Proto]]
63[def __boost_format__           [@boost:/libs/format/index.html Boost.Format]]
64[def __boost_any__              [@boost:/libs/any/index.html Boost.Any]]
65
66[def __classic__                [@boost:/libs/spirit/classic/index.html /Spirit.Classic/]]
67[def __qi__                     /Spirit.Qi/]
68[def __karma__                  /Spirit.Karma/]
69[def __lex__                    /Spirit.Lex/]
70
71[def __mpl_boolean_constant__   [@boost:/libs/mpl/doc/refmanual/integral-constant.html MPL Boolean Constant]]
72[def __mpl_int_constant__       [@boost:/libs/mpl/doc/refmanual/integral-constant.html MPL Integral Constant]]
73[def __mpl_fwd_sequence__       [@boost:/libs/mpl/doc/refmanual/forward-sequence.html MPL Forward Sequence]]
74
75[def __fixme__                  *FIXME*]
76
77[def __scanner_business__       [@boost:/libs/spirit/classic/doc/faq.html#scanner_business The Scanner Business]]
78
79[/ Sections ]
80
81[def __sec_qi__                 [link spirit.qi Qi]]
82[def __sec_karma__              [link spirit.karma Karma]]
83[def __sec_attributes__         [link spirit.abstracts.attributes Attributes]]
84[def __sec_customization_points__ [link spirit.advanced.customize Customization of Attribute Handling]]
85
86[def __sec_karma_numeric_performance__  [link spirit.karma.performance_measurements.numeric_performance Performance of Numeric Generators]]
87[def __sec_karma_primitive__    [link spirit.karma.quick_reference.primitive_generators Karma Generators]]
88[def __sec_karma_compound__     [link spirit.karma.quick_reference.compound_attribute_rules Generator Compound Attribute Rules]]
89[def __karma_char_encoding_namespace__ [link spirit.karma.reference.basics.character_encoding_namespace Character Encoding Namespace]]
90[def __sec_karma_reference__    [link spirit.karma.reference Karma Reference]]
91[def __sec_karma_quickref__     [link spirit.karma.quick_reference Karma Quick Reference]]
92
93[def __sec_qi_reference__       [link spirit.qi.reference Qi Reference]]
94[def __sec_qi_primitive__       [link spirit.qi.quick_reference.qi_parsers Qi Parsers]]
95[def __sec_qi_compound__        [link spirit.qi.quick_reference.compound_attribute_rules Parser Compound Attribute Rules]]
96
97[def __sec_lex__                [link spirit.lex Lex]]
98[def __sec_lex_quickstart_1__   [link spirit.lex.tutorials.lexer_quickstart1 Lex Quickstart 1 - A word counter using __lex__]]
99[def __sec_lex_quickstart_2__   [link spirit.lex.tutorials.lexer_quickstart2 Lex Quickstart 2 - A better word counter using __lex__]]
100[def __sec_lex_quickstart_3__   [link spirit.lex.tutorials.lexer_quickstart3 Lex Quickstart 3 - Counting Words Using a Parser]]
101
102[def __sec_lex_static_model__   [link spirit.lex.abstracts.lexer_static_model The /Static/ Model]]
103[def __sec_lex_primitives__     [link spirit.lex.abstracts.lexer_primitives Lexer Primitives]]
104[def __sec_lex_tokenvalues__    [link spirit.lex.abstracts.lexer_primitives.lexer_token_values About Tokens and Token Values]]
105[def __sec_lex_attributes__     [/ link spirit.lex.abstracts.lexer_attributes Lexer Attributes] Lexer Attributes]
106[def __sec_lex_semactions__     [link spirit.lex.abstracts.lexer_semantic_actions Lexer Semantic Actions]]
107
108[def __sec_ref_lex_token__      [/ link spirit.lex.reference.token Token Class] Token Class]
109[def __sec_ref_lex_token_def__  [/ link spirit.lex.reference.tokendef TokenDef Class] TokenDef Class]
110
111[/ References to API descriptions ]
112
113[def __api_tokenize_and_parse__ `tokenize_and_parse()` [/link spirit.qi_and_karma.abstracts.parsing_and_generating.the_tokenize_and_phrase_parse___function `tokenize_and_parse()`]]
114[def __api_tokenize__           [link spirit.lex.lexer_tokenizing.the_tokenize_function `tokenize()`]]
115[def __api_generate_static__    `generate_static_dfa()` [/link spirit.lex.lexer_tokenizing.the_generate_static_function `generate_static()`]]
116
117[template karma_format[str]     [link spirit.karma.reference.generate_api.stream_api [str]]]
118
119[def __generator_api__          [link spirit.karma.reference.generate_api The Generator API]]
120
121[/ References to classes ]
122
123[def __utree__                  [link spirit.support.utree `utree`]]
124[def __line_pos_iterator__      [link spirit.support.line_pos_iterator `line_pos_iterator`]]
125[def __multi_pass__             [link spirit.support.multi_pass `multi_pass`]]
126
127[def __class_token_def__        [/ link spirit.lex.reference.tokendef `token_def<>`] `lex::token_def<>`]
128
129[def __class_lexertl_token__    [/ link spirit.lex.reference.token `lexertl_token<>`] `lex::lexertl::token<>`]
130[def __class_lexertl_lexer__    [/ link spirit.lex.reference.lexer.the_lexertl__lexer_class_implementing_the_dynamic_model `lexertl_lexer<>`] `lex::lexertl::lexer<>`]
131[def __class_lexertl_static_lexer__ [/ link spirit.lex.reference.lexer.the_lexertl__static_lexer_class_implementing_the_static_model `lexertl_static_lexer<>`] `lex::lexertl::static_lexer<>`]
132
133[/ References to support ]
134
135[def __unused_type__            `unused_type`] [/$$$ TODO: link me $$$]
136[def __unused__                 `unused`] [/$$$ TODO: link me $$$]
137[def __info__                   `info`] [/$$$ TODO: link me $$$]
138[def __char_class_types__       Character Class Types] [/$$$ TODO: link me $$$]
139
140[/ References to abstracts ]
141
142[def __rd__                     Recursive Descent] [/$$$ TODO: link me $$$]
143[def __syntax_diagrams__        [link spirit.abstracts.syntax_diagrams Syntax Diagram]]
144[def __peg__                    [link spirit.abstracts.parsing_expression_grammar Parsing Expression Grammar]]
145[def __ast__                    Abstract Syntax Tree] [/$$$ TODO: link me $$$]
146
147[def __include_structure__      [link spirit.structure.include Include Structure]]
148[def __include_structure_faq__  [link spirit.faq.i_m_very_confused_about_the_header_hell_in_my_boost_spirit_directory__what_s_all_this_about_ Header Hell]]
149
150[/ References to reference ]
151
152[def __qi_attr__                    [link spirit.qi.reference.auxiliary.attr `attr(attrib)`]]
153[def __qi_symbols__                 [link spirit.qi.reference.string.symbols `symbols<>`]]
154[template qi_lit_string[str]        [link spirit.qi.reference.string.string [str]]]
155[template qi_lit_char[char]         [link spirit.qi.reference.char.char [char]]]
156[template karma_lit_string[str]        [link spirit.karma.reference.string.string [str]]]
157[template karma_lit_char[char]         [link spirit.karma.reference.char.char_generator [char]]]
158
159[def __generator_concept__          [link spirit.karma.reference.generator_concepts.generator `Generator`]]
160[def __primitive_generator_concept__ [link spirit.karma.reference.generator_concepts.primitivegenerator `PrimitiveGenerator`]]
161[def __unary_generator_concept__    [link spirit.karma.reference.generator_concepts.unarygenerator `UnaryGenerator`]]
162[def __binary_generator_concept__   [link spirit.karma.reference.generator_concepts.binarygenerator `BinaryGenerator`]]
163[def __nary_generator_concept__     [link spirit.karma.reference.generator_concepts.narygenerator `NaryGenerator`]]
164[def __karma_nonterminal_concept__  [link spirit.karma.reference.generator_concepts.nonterminal `Nonterminal`]]
165[def __karma_nonterminal_attribute__ [link spirit.karma.reference.generator_concepts.nonterminal.attributes `Attribute`]]
166
167[def __karma_lazy_argument__        [link spirit.karma.reference.basics.lazy_argument Lazy Argument]]
168[def __karma_lazy_arguments__       [link spirit.karma.reference.basics.lazy_argument Lazy Arguments]]
169[def __karma_basics_examples__      [link spirit.karma.reference.basics.examples Basics Examples]]
170
171[/////////////////////////////////////////////////////////////////////////////]
172[def __karma_auxiliary__            [link spirit.karma.reference.auxiliary Auxiliary Generators]]
173[def __karma_eol__                  [link spirit.karma.reference.auxiliary.eol `eol`]]
174[def __karma_eps__                  [link spirit.karma.reference.auxiliary.eps `eps`]]
175[def __karma_feps__                 [link spirit.karma.reference.auxiliary.eps `eps(b)`]]
176[template karma_lazy[str]           [link spirit.karma.reference.auxiliary.lazy [str]]]
177[template karma_attr_cast[str]      [link spirit.karma.reference.auxiliary.attr_cast [str]]]
178
179[def __karma_operator__             [link spirit.karma.reference.operator Generator Operators]]
180[def __karma_sequence__             [link spirit.karma.reference.operator.sequence Sequence (`<<`)]]
181[def __karma_alternative__          [link spirit.karma.reference.operator.alternative Alternative (`|`)]]
182[template karma_kleene[str]         [link spirit.karma.reference.operator.kleene [str]]]
183[def __karma_kleene__               [link spirit.karma.reference.operator.kleene Kleene (`*`)]]
184[template karma_plus[str]           [link spirit.karma.reference.operator.plus [str]]]
185[def __karma_plus__                 [karma_plus Plus (unary `+`)]]
186[def __karma_list__                 [link spirit.karma.reference.operator.list List (`%`)]]
187[def __karma_optional__             [link spirit.karma.reference.operator.optional Optional (unary `-`)]]
188[def __karma_and_predicate__        [link spirit.karma.reference.operator.and_predicate And predicate (unary `&`)]]
189[def __karma_not_predicate__        [link spirit.karma.reference.operator.not_predicate Not predicate (unary `!`)]]
190
191[def __karma_directive__            [link spirit.karma.reference.directive Generator Directives]]
192[template karma_align[str]          [link spirit.karma.reference.directive.alignment [str]]]
193[def __karma_omit__                 [link spirit.karma.reference.directive.omit `omit`]]
194[def __karma_skip__                 [link spirit.karma.reference.directive.omit `skip`]]
195[def __karma_duplicate__            [link spirit.karma.reference.directive.duplicate `duplicate`]]
196[def __karma_buffer__               [link spirit.karma.reference.directive.buffer `buffer`]]
197[template karma_repeat[str]         [link spirit.karma.reference.directive.repeat [str]]]
198[def __karma_verbatim__             [link spirit.karma.reference.directive.delimit `verbatim`]]
199[template karma_no_delimit[str]     [link spirit.karma.reference.directive.delimit [str]]]
200[template karma_delimit[str]        [link spirit.karma.reference.directive.delimit [str]]]
201[template karma_upperlower[str]     [link spirit.karma.reference.directive.upperlower [str]]]
202[template karma_maxwidth[str]       [link spirit.karma.reference.directive.maxwidth [str]]]
203[template karma_columns[str]        [link spirit.karma.reference.directive.columns [str]]]
204[def __karma_as__                   [link spirit.karma.reference.directive.as `as<T>[]`]]
205[def __karma_as_string__            [link spirit.karma.reference.directive.as `as_string[]`]]
206[def __karma_as_wstring__           [link spirit.karma.reference.directive.as `as_wstring[]`]]
207
208[def __karma_numeric__              [link spirit.karma.reference.numeric Numeric Generators]]
209[template signed_int[str]           [link spirit.karma.reference.numeric.signed_int [str]]]
210[template unsigned_int[str]         [link spirit.karma.reference.numeric.unsigned_int [str]]]
211[template real_number[str]          [link spirit.karma.reference.numeric.real_number [str]]]
212[template boolean[str]              [link spirit.karma.reference.numeric.boolean [str]]]
213
214[def __karma_char__                 [link spirit.karma.reference.char Character Generators]]
215[template karma_char[str]           [link spirit.karma.reference.char.char_generator [str]]]
216[template karma_char_class[str]     [link spirit.karma.reference.char.char_class [str]]]
217
218[template karma_string[str]         [link spirit.karma.reference.string [str]]]
219[template karma_symbols[str]        [link spirit.karma.reference.string.symbols [str]]]
220
221[template karma_stream[str]         [link spirit.karma.reference.stream.stream [str]]]
222
223[template karma_auto[str]           [link spirit.karma.reference.auto [str]]]
224[def __create_generator__           [link spirit.karma.reference.generate_api.create_generator `create_generator`]]
225
226[def __karma_binary__               [link spirit.karma.reference.binary Binary Generators]]
227[template karma_native_binary[str]  [link spirit.karma.reference.binary.binary_native [str]]]
228[template karma_little_binary[str]  [link spirit.karma.reference.binary.binary_little [str]]]
229[template karma_big_binary[str]     [link spirit.karma.reference.binary.binary_big [str]]]
230
231[template karma_nonterminal[str]    [str] [/link spirit.karma.reference.nonterminal [str]]]
232
233[def __actions__                    Semantic Actions] [/$$$ TODO: link me $$$]
234[def __context__                    Context] [/$$$ TODO: link me $$$]
235[def __compatible__                 Compatible] [/$$$ TODO: link me $$$]
236[def __attribute__                  Attribute] [/$$$ TODO: link me $$$]
237[def __compatible_attribute__       Compatible Attribute] [/$$$ TODO: link me $$$]
238[def __rule__                       Rule] [/$$$ TODO: link me $$$]
239[def __grammar__                    Grammar] [/$$$ TODO: link me $$$]
240[def __parser_conversion__          Parser Conversion] [/$$$ TODO: link me $$$]
241[def __delegate_pattern__           Delegate Design Pattern] [/$$$ TODO: link me $$$]
242[def __composite_pattern__          Composite Design Pattern] [/$$$ TODO: link me $$$]
243
244[/////////////////////////////////////////////////////////////////////////////]
245[def __karma_actions__              [link spirit.karma.tutorials.semantic_actions Semantic Actions]]
246[def __karma_context__              Context] [/$$$ TODO: link me $$$]
247[def __karma_attribute__            Generator Attributes] [/$$$ TODO: link me $$$]
248[def __karma_compatible_attribute__ Compatible Attributes] [/$$$ TODO: link me $$$]
249
250[def __karma_nonterminal__          [link spirit.karma.reference.nonterminal `Nonterminals`]]
251[def __karma_rule__                 [link spirit.karma.reference.nonterminal.rule rule]]
252[def __karma_rules__                [link spirit.karma.reference.nonterminal.rule rules]]
253[def __karma_grammar__              [link spirit.karma.reference.nonterminal.grammar grammar]]
254[def __karma_grammars__             [link spirit.karma.reference.nonterminal.grammar grammars]]
255[def __karma_comp_attr_notation__   [link spirit.karma.quick_reference.compound_attribute_rules.notation Compound Attribute Notation]]
256
257[/////////////////////////////////////////////////////////////////////////////]
258[def __lexer_concept__              [link spirit.lex.reference.lexer_concepts.lexer `Lexer`]]
259[def __primitive_lexer_concept__    [link spirit.lex.reference.lexer_concepts.primitivelexer `PrimitiveLexer`]]
260[def __unary_lexer_concept__        [link spirit.lex.reference.lexer_concepts.unarylexer `UnaryLexer`]]
261[def __nary_lexer_concept__         [link spirit.lex.reference.lexer_concepts.narylexer `NaryLexer`]]
262
263[def __lex_actions__                [link spirit.lex.abstracts.lexer_semantic_actions Lexer Semantic Actions]]
264
265[def __customize_is_container__     [link spirit.advanced.customize.is_container `traits::is_container`]]
266[def __customize_is_string__     [link spirit.advanced.customize.is_string `traits::is_string`]]
267[def __customize_transform_attribute__ [link spirit.advanced.customize.transform `traits::transform_attribute`]]
268[def __customize_optional_attribute__ [link spirit.advanced.customize.optional `traits::optional_attribute`]]
269[def __customize_assign_to__        [link spirit.advanced.customize.assign_to `traits::assign_to`]]
270[def __customize_assign_to_attribute_from_value__ [link spirit.advanced.customize.assign_to.assign_to_attribute_from_value `traits::assign_to_attribute_from_value`]]
271[def __customize_assign_to_container_from_value__ [link spirit.advanced.customize.assign_to.assign_to_container_from_value `traits::assign_to_container_from_value`]]
272[def __customize_push_back_container__ [link spirit.advanced.customize.store_value.push_back `traits::push_back_container`]]
273[def __customize_container_value__  [link spirit.advanced.customize.store_value.container_value `traits::container_value`]]
274[def __customize_clear_value__      [link spirit.advanced.customize.clear_value `traits::clear_value`]]
275[def __customize_extract_from__     [link spirit.advanced.customize.extract_from `traits::extract_from`]]
276[def __customize_extract_from_container__  [link spirit.advanced.customize.extract_from_container `traits::extract_from_container`]]
277[def __customize_container_iterator__ [link spirit.advanced.customize.iterate.container_iterator `traits::container_iterator`]]
278[def __customize_begin_container__  [link spirit.advanced.customize.iterate.begin_container `traits::begin_container`]]
279[def __customize_end_container__    [link spirit.advanced.customize.iterate.end_container `traits::end_container`]]
280[def __customize_next_iterator__    [link spirit.advanced.customize.iterate.next_iterator `traits::next_iterator`]]
281[def __customize_deref_iterator__   [link spirit.advanced.customize.iterate.deref_iterator `traits::deref_iterator`]]
282[def __customize_compare_iterators__ [link spirit.advanced.customize.iterate.compare_iterators `traits::compare_iterators`]]
283[def __customize_is_char__     [link spirit.advanced.customize.string_traits.is_char `traits::is_char`]]
284[def __customize_char_type_of__     [link spirit.advanced.customize.string_traits.char_type_of `traits::char_type_of`]]
285[def __customize_extract_c_string__     [link spirit.advanced.customize.string_traits.extract_c_string `traits::extract_c_string`]]
286[def __customize_attribute_as__     [link spirit.advanced.customize.attribute_as `traits::attribute_as`]]
287[def __customize_as__               [link spirit.advanced.customize.attribute_as `traits::as<T>()`]]
288[def __customize_valid_as__         [link spirit.advanced.customize.attribute_as `traits::valid_as<T>()`]]
289[def __customize_create_parser__    [link spirit.advanced.customize.auto.create_parser `traits::create_parser`]]
290[def __customize_create_generator__ [link spirit.advanced.customize.auto.create_generator `traits::create_generator`]]
291
292[/ Some images ]
293
294[def __note__                   [$./images/note.png]]
295[def __tip__                    [$./images/tip.png]]
296[def __important__              [$./images/important.png]]
297[def __caution__                [$./images/caution.png]]
298[def __danger__                 [$./images/alert.png]]
299
300[/////////////////////////////////////////////////////////////////////////////]
301[/ some templates]
302
303[/  fig[ref title label]
304    Image element with a title.
305
306    ref   := Reference to the image file.
307    title := The title to associate with this figure.
308    label := the id to use to be able to reference this picture
309]
310[template fig[ref title label]'''
311    <figure id="'''[label]'''">
312        <title>'''[title]'''</title>
313        <inlinemediaobject>
314            <imageobject>
315                <imagedata fileref="./images/'''[ref]'''"></imagedata>
316            </imageobject>
317            <textobject>
318                <phrase role="alt">'''[title]'''</phrase>
319            </textobject>
320        </inlinemediaobject>
321    </figure>
322''']
323
324[/   index[title type]
325     insert index
326
327     title:  section title for the index
328     type:   type of the index
329]
330[template index[title type]'''
331    <index type="'''[type]'''">
332       <title>'''[title]'''</title>
333    </index>
334''']
335
336[def __sd_start_stop__              [$./images/start_stop.png]]
337[def __sd_terminals__               [$./images/terminal.png]]
338[def __sd_non_terminals__           [$./images/non-terminal.png]]
339[def __sd_sequence__                [$./images/sequence.png]]
340[def __sd_choice__                  [$./images/alternative.png]]
341[def __sd_optional__                [$./images/optional.png]]
342[def __sd_plus__                    [$./images/plus.png]]
343[def __sd_kleene__                  [$./images/kleene.png]]
344[def __sd_predicate__               [$./images/predicate.png]]
345[def __sd_and_predicate__           [$./images/and_predicate.png]]
346[def __sd_not_predicate__           [$./images/not_predicate.png]]
347[def __pascal_string__              [$./images/pascal_string.png]]
348
349
350[/ ----------------------------------------------------------------------------]
351[/ $$$ Now I'm confused with all this ad-hoc links. Let's fix this somehow.
352For now, I'll put my stuff here ad-hoc (JDG). $$$]
353
354[/ external]
355
356[def __fwditer__                    [@http://www.sgi.com/tech/stl/ForwardIterator.html `ForwardIterator`]]
357[def __outputiter__                 [@http://www.sgi.com/tech/stl/OutputIterator.html `OutputIterator`]]
358[def __concepts__                   [@http://www.boost.org/community/generic_programming.html#concept concepts]]
359[def __endianness__                 [@http://en.wikipedia.org/wiki/Endianness endianness]]
360[def __iomanip__                    [@http://www.cppreference.com/wiki/io/io_flags#manipulators Manipulators]]
361
362[/ support]
363[def __info__                       `info`] [/ TODO Link Me]
364[def __qi_error_handler__           Error Handler] [/ TODO Link Me]
365
366[/ quick-ref]
367[def __qi_quickref__                [link spirit.qi.quick_reference Qi Quick Reference]]
368[def __qi_comp_attr_notation__      [link spirit.qi.quick_reference.compound_attribute_rules.notation Compound Attribute Notation]]
369
370[/ concepts]
371[def __parser_concept__             [link spirit.qi.reference.parser_concepts.parser `Parser`]]
372[def __primitive_parser_concept__   [link spirit.qi.reference.parser_concepts.primitiveparser `PrimitiveParser`]]
373[def __unary_parser_concept__       [link spirit.qi.reference.parser_concepts.unaryparser `UnaryParser`]]
374[def __binary_parser_concept__      [link spirit.qi.reference.parser_concepts.binaryparser `BinaryParser`]]
375[def __nary_parser_concept__        [link spirit.qi.reference.parser_concepts.naryparser `NaryParser`]]
376[def __qi_nonterminal__             [link spirit.qi.reference.parser_concepts.nonterminal `Nonterminal`]]
377[def __qi_nonterminal_attribute__   [link spirit.qi.reference.parser_concepts.nonterminal.attributes `Attribute`]]
378
379[/ basics]
380[def __qi_lazy_argument__           [link spirit.qi.reference.basics.lazy_argument Lazy Argument]]
381[def __qi_lazy_arguments__          [link spirit.qi.reference.basics.lazy_argument Lazy Arguments]]
382[def __char_encoding_namespace__    [link spirit.qi.reference.basics.character_encoding_namespace Character Encoding Namespace]]
383[def __string__                     [link spirit.qi.reference.basics.string String]]
384[def __qi_basics_examples__         [link spirit.qi.reference.basics.examples Basics Examples]]
385
386[/ action]
387[def __qi_semantic_actions__        Semantic Actions] [/ TODO Link Me]
388
389[/ char]
390[template qi_char[str]              [link spirit.qi.reference.char.char [str]]]
391[template qi_char_class[str]        [link spirit.qi.reference.char.char_class [str]]]
392
393[/ numerics]
394[template qi_signed_int[str]        [link spirit.qi.reference.numeric.int [str]]]
395[template qi_unsigned_int[str]      [link spirit.qi.reference.numeric.uint [str]]]
396[template qi_real_number[str]       [link spirit.qi.reference.numeric.real [str]]]
397[template qi_boolean[str]           [link spirit.qi.reference.numeric.boolean [str]]]
398
399[/ binary]
400[template qi_native_binary[str]     [link spirit.qi.reference.binary.binary_native [str]]]
401[template qi_little_binary[str]     [link spirit.qi.reference.binary.binary_little [str]]]
402[template qi_big_binary[str]        [link spirit.qi.reference.binary.binary_big [str]]]
403
404[/ auxiliary]
405[def __qi_attr__                    [link spirit.qi.reference.auxiliary.attr `attr`]]
406[def __qi_eol__                     [link spirit.qi.reference.auxiliary.eol `eol`]]
407[def __qi_eoi__                     [link spirit.qi.reference.auxiliary.eoi `eoi`]]
408[def __qi_eps__                     [link spirit.qi.reference.auxiliary.eps `eps`]]
409[def __qi_lazy__                    [link spirit.qi.reference.auxiliary.lazy `lazy`]]
410
411[/ directives]
412[def __qi_lexeme__                  [link spirit.qi.reference.directive.lexeme `lexeme`]]
413[def __qi_no_case__                 [link spirit.qi.reference.directive.no_case `no_case`]]
414[def __qi_omit__                    [link spirit.qi.reference.directive.omit `omit`]]
415[def __qi_matches__                 [link spirit.qi.reference.directive.matches `matches`]]
416[def __qi_raw__                     [link spirit.qi.reference.directive.raw `raw`]]
417[def __qi_repeat__                  [link spirit.qi.reference.directive.repeat `repeat`]]
418[template qi_repeat[str]            [link spirit.qi.reference.directive.repeat [str]]]
419[def __qi_skip__                    [link spirit.qi.reference.directive.skip `skip`]]
420[template qi_no_skip[str]           [link spirit.qi.reference.directive.no_skip [str]]]
421[def __qi_hold__                    [link spirit.qi.reference.directive.hold `hold`]]
422[def __qi_as__                      [link spirit.qi.reference.directive.as `as<T>[]`]]
423[def __qi_as_string__               [link spirit.qi.reference.directive.as `as_string[]`]]
424[def __qi_as_wstring__              [link spirit.qi.reference.directive.as `as_wstring[]`]]
425
426[/ operator]
427[def __qi_alternative__             [link spirit.qi.reference.operator.alternative Alternative]]
428[def __qi_and_predicate__           [link spirit.qi.reference.operator.and_predicate And Predicate]]
429[def __qi_difference__              [link spirit.qi.reference.operator.difference Difference]]
430[def __qi_expect__                  [link spirit.qi.reference.operator.expect Expect]]
431[def __qi_expectation_failure__     [link spirit.qi.reference.operator.expect.expectation_failure `expectation_failure`]]
432[def __qi_kleene__                  [link spirit.qi.reference.operator.kleene Kleene]]
433[def __qi_list__                    [link spirit.qi.reference.operator.list List]]
434[def __qi_not_predicate__           [link spirit.qi.reference.operator.not_predicate Not Predicate]]
435[def __qi_optional__                [link spirit.qi.reference.operator.optional Optional]]
436[def __qi_permutation__             [link spirit.qi.reference.operator.permutation Permutation]]
437[def __qi_plus__                    [link spirit.qi.reference.operator.plus Plus]]
438[def __qi_sequence__                [link spirit.qi.reference.operator.sequence Sequence]]
439[def __qi_sequential_or__           [link spirit.qi.reference.operator.sequential_or Sequential Or]]
440
441[def __qi_stream__                  [link spirit.qi.reference.stream.stream `stream`]]
442
443[/ nonterminal]
444[def __qi_rule__                    [link spirit.qi.reference.nonterminal.rule rule]]
445[def __qi_rules__                   [link spirit.qi.reference.nonterminal.rule rules]]
446[def __qi_grammar__                 [link spirit.qi.reference.nonterminal.grammar grammar]]
447[def __qi_grammars__                [link spirit.qi.reference.nonterminal.grammar grammars]]
448
449[/ stream]
450[template qi_match[str]             [link spirit.qi.reference.parse_api.stream_api [str]]]
451[template qi_auto[str]              [link spirit.qi.reference.auto [str]]]
452[def __create_parser__              [link spirit.qi.reference.parse_api.create_parser `create_parser`]]
453
454[def __parse_api__                  [link spirit.qi.reference.parse_api The Parse API]]
455
456[/ Here we go ]
457
458This is the documentation of the newest version of __spirit__ (currently,
459__version__). If you're looking for the documentation of Spirit's previous version
460(formerly Spirit V1.8), see __classic__.
461
462[include preface.qbk]
463[include what_s_new.qbk]
464[include introduction.qbk]
465[include structure.qbk]
466[include abstracts.qbk]
467[include qi.qbk]
468[include karma.qbk]
469[include lex.qbk]
470[include advanced.qbk]
471[include support.qbk]
472[include faq.qbk]
473[include notes.qbk]
474[include rationale.qbk]
475[include repository.qbk]
476[include acknowledgments.qbk]
477[include references.qbk]
478
479