]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/spirit/doc/spirit2.qbk
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / spirit / doc / spirit2.qbk
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.
352 For 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
458 This 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