• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1[/==============================================================================
2    Copyright (C) 2001-2015 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 X3
10    [quickbook 1.5]
11    [version 3.0.4]
12    [authors [de Guzman, Joel], [Kaiser, Hartmut]]
13    [copyright 2001-2018 Joel de Guzman, Hartmut Kaiser]
14    [/ purpose Parser 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[/ May 12, 2015 ]
23
24[/=============================================================================
25    Some links and defines
26=============================================================================/]
27
28[def __version__                V3.0.4]
29
30[/ external]
31
32[def __gmane__                  [@http://www.gmane.org Gmane]]
33[def __mlist_archive__          [@http://news.gmane.org/gmane.comp.parsers.spirit.general]]
34[def __boost_tools__            [@http://www.boost.org/tools/index.html Boost Tools]]
35[def __fusion__                 [@boost:/libs/fusion/doc/html/index.html Boost.Fusion]]
36[def __boost_variant__          [@http://www.boost.org/doc/html/variant.html Boost.Variant]]
37[def __stl__                    [@https://en.wikipedia.org/wiki/Standard_Template_Library STL]]
38[def __fwditer__                [@http://en.cppreference.com/w/cpp/named_req/ForwardIterator `ForwardIterator`]]
39[def __outputiter__             [@http://en.cppreference.com/w/cpp/named_req/OutputIterator `OutputIterator`]]
40[def __concepts__               [@http://www.boost.org/community/generic_programming.html#concept concepts]]
41[def __endianness__             [@http://en.wikipedia.org/wiki/Endianness endianness]]
42[def __iomanip__                [@http://www.cppreference.com/wiki/io/io_flags#manipulators Manipulators]]
43[def __boost_iterator_range__   [@boost:/libs/range/doc/html/range/reference/utilities/iterator_range.html `boost::iterator_range`]]
44
45[template trac[number]'''<ulink url="https://svn.boost.org/trac/boost/ticket/'''[number]'''">TRAC#'''[number]'''</ulink>''']
46[template gh[number]'''<ulink url="https://github.com/boostorg/spirit/issues/'''[number]'''">GH#'''[number]'''</ulink>''']
47[template gh_pr[number]'''<ulink url="https://github.com/boostorg/spirit/pull/'''[number]'''">GH#'''[number]'''</ulink>''']
48
49[/ Some images ]
50
51[def __note__                   [$./images/note.png]]
52[def __tip__                    [$./images/tip.png]]
53[def __important__              [$./images/important.png]]
54[def __caution__                [$./images/caution.png]]
55[def __danger__                 [$./images/alert.png]]
56
57[def __x3__                     /Spirit.X3/]
58
59[def __sd_start_stop__          [$./images/start_stop.png]]
60[def __sd_terminals__           [$./images/terminal.png]]
61[def __sd_non_terminals__       [$./images/non-terminal.png]]
62[def __sd_sequence__            [$./images/sequence.png]]
63[def __sd_choice__              [$./images/alternative.png]]
64[def __sd_optional__            [$./images/optional.png]]
65[def __sd_plus__                [$./images/plus.png]]
66[def __sd_kleene__              [$./images/kleene.png]]
67[def __sd_predicate__           [$./images/predicate.png]]
68[def __sd_and_predicate__       [$./images/and_predicate.png]]
69[def __sd_not_predicate__       [$./images/not_predicate.png]]
70[def __pascal_string__          [$./images/pascal_string.png]]
71
72[def __syntax_diagrams__        [link spirit.abstracts.syntax_diagrams Syntax Diagram]]
73[def __peg__                    [link spirit.abstracts.parsing_expression_grammar Parsing Expression Grammar]]
74[def __ast__                    Abstract Syntax Tree] [/$$$ TODO: link me $$$]
75
76[def __sec_x3_reference__       [/ link spirit_x3.reference] X3 Reference]
77[def __sec_x3_primitive__       [/ link spirit_x3.quick_reference.x3_parsers] X3 Parsers]
78[def __sec_x3_compound__        [/ link spirit_x3.quick_reference.compound_attribute_rules] Parser Compound Attribute Rules]
79
80[/ support]
81[def __info__                   `info`] [/ TODO Link Me]
82[def __unused_type__            `unused_type`] [/$$$ TODO: link me $$$]
83[def __unused__                 `unused`] [/$$$ TODO: link me $$$]
84[def __char_class_types__       Character Class Types] [/$$$ TODO: link me $$$]
85
86[/ quick-ref]
87[def __x3_quickref__                [link spirit_x3.quick_reference X3 Quick Reference]]
88[def __x3_comp_attr_notation__      [link spirit_x3.quick_reference.compound_attribute_rules.notation Compound Attribute Notation]]
89
90[/ concepts]
91[def __parser_concept__             [/ link spirit_x3.reference.parser_concepts.parser] `Parser`]
92[def __primitive_parser_concept__   [/ link spirit_x3.reference.parser_concepts.primitiveparser] `PrimitiveParser`]
93[def __unary_parser_concept__       [/ link spirit_x3.reference.parser_concepts.unaryparser] `UnaryParser`]
94[def __binary_parser_concept__      [/ link spirit_x3.reference.parser_concepts.binaryparser] `BinaryParser`]
95[def __nary_parser_concept__        [/ link spirit_x3.reference.parser_concepts.naryparser] `NaryParser`]
96[def __x3_nonterminal__             [/ link spirit_x3.reference.parser_concepts.nonterminal] `Nonterminal`]
97[def __x3_nonterminal_attribute__   [/ link spirit_x3.reference.parser_concepts.nonterminal.attributes] `Attribute`]
98
99[/ basics]
100[def __x3_lazy_argument__           [/ link spirit_x3.reference.basics.lazy_argument] Lazy Argument]
101[def __x3_lazy_arguments__          [/ link spirit_x3.reference.basics.lazy_argument] Lazy Arguments]
102[def __char_encoding_namespace__    [/ link spirit_x3.reference.basics.character_encoding_namespace] Character Encoding Namespace]
103[def __x3_basics_examples__         [/ link spirit_x3.reference.basics.examples] Basics Examples]
104
105[/ string]
106[template x3_lit_string[str]        [[/ link spirit_x3.reference.string.string] str]]
107[def __string__                     [/ link spirit_x3.reference.basics.string] String]
108[def __x3_symbols__                 [/ link spirit_x3.reference.string.symbols] `symbols<T>`]
109
110[/ action]
111[def __x3_semantic_actions__        Semantic Actions] [/ TODO Link Me]
112
113[/ char]
114[template x3_char[str]              [/ link spirit_x3.reference.char.char] [str]]
115[template x3_char_class[str]        [/ link spirit_x3.reference.char.char_class] [str]]
116[template x3_lit_char[char]         [/ link spirit_x3.reference.char.char] [char]]
117
118[/ numerics]
119[template x3_signed_int[str]        [/ link spirit_x3.reference.numeric.int] [str]]
120[template x3_unsigned_int[str]      [/ link spirit_x3.reference.numeric.uint] [str]]
121[template x3_real_number[str]       [/ link spirit_x3.reference.numeric.real] [str]]
122[template x3_boolean[str]           [/ link spirit_x3.reference.numeric.boolean] [str]]
123
124[/ binary]
125[template x3_native_binary[str]     [/ link spirit_x3.reference.binary.binary_native] [str]]
126[template x3_little_binary[str]     [/ link spirit_x3.reference.binary.binary_little] [str]]
127[template x3_big_binary[str]        [/ link spirit_x3.reference.binary.binary_big] [str]]
128
129[/ auxiliary]
130[def __x3_attr__                    [/ link spirit_x3.reference.auxiliary.attr] `attr(attrib)`]
131[def __x3_eol__                     [/ link spirit_x3.reference.auxiliary.eol] `eol`]
132[def __x3_eoi__                     [/ link spirit_x3.reference.auxiliary.eoi] `eoi`]
133[def __x3_eps__                     [/ link spirit_x3.reference.auxiliary.eps] `eps`]
134[def __x3_lazy__                    [/ link spirit_x3.reference.auxiliary.lazy] `lazy`]
135
136[/ directives]
137[def __x3_lexeme__                  [/ link spirit_x3.reference.directive.lexeme] `lexeme`]
138[def __x3_no_case__                 [/ link spirit_x3.reference.directive.no_case] `no_case`]
139[def __x3_omit__                    [/ link spirit_x3.reference.directive.omit] `omit`]
140[def __x3_matches__                 [/ link spirit_x3.reference.directive.matches] `matches`]
141[def __x3_raw__                     [/ link spirit_x3.reference.directive.raw] `raw`]
142[def __x3_expectd__                 [/ link spirit_x3.reference.directive.expect] `expect`]
143[def __x3_repeat__                  [/ link spirit_x3.reference.directive.repeat] `repeat`]
144[template x3_repeat[str]            [[/ link spirit_x3.reference.directive.repeat] str]]
145[def __x3_skip__                    [/ link spirit_x3.reference.directive.skip] `skip`]
146[template x3_no_skip[str]           [[/ link spirit_x3.reference.directive.no_skip] str]]
147[def __x3_hold__                    [/ link spirit_x3.reference.directive.hold] `hold`]
148
149[/ operator]
150[def __x3_alternative__             [/ link spirit_x3.reference.operator.alternative] Alternative]
151[def __x3_and_predicate__           [/ link spirit_x3.reference.operator.and_predicate] And Predicate]
152[def __x3_difference__              [/ link spirit_x3.reference.operator.difference] Difference]
153[def __x3_expect__                  [/ link spirit_x3.reference.operator.expect] Expectation operator]
154[def __x3_expectation_failure__     [/ link spirit_x3.reference.operator.expect.expectation_failure] `expectation_failure`]
155[def __x3_kleene__                  [/ link spirit_x3.reference.operator.kleene] Kleene]
156[def __x3_list__                    [/ link spirit_x3.reference.operator.list] List]
157[def __x3_not_predicate__           [/ link spirit_x3.reference.operator.not_predicate] Not Predicate]
158[def __x3_optional__                [/ link spirit_x3.reference.operator.optional] Optional]
159[def __x3_plus__                    [/ link spirit_x3.reference.operator.plus] Plus]
160[def __x3_sequence__                [/ link spirit_x3.reference.operator.sequence] Sequence]
161
162[def __x3_stream__                  [/ link spirit_x3.reference.stream.stream] `stream`]
163
164[/ nonterminal]
165[def __x3_rule__                    [/ link spirit_x3.reference.nonterminal.rule] rule]
166[def __x3_rules__                   [/ link spirit_x3.reference.nonterminal.rule] rules]
167[def __x3_grammar__                 [/ link spirit_x3.reference.nonterminal.grammar] grammar]
168[def __x3_grammars__                [/ link spirit_x3.reference.nonterminal.grammar] grammars]
169
170[/ stream]
171[template x3_match[str]             [/ link spirit_x3.reference.parse_api.stream_api] str]
172[template x3_auto[str]              [/ link spirit_x3.reference.auto] str]
173[def __create_parser__              [/ link spirit_x3.reference.parse_api.create_parser] `create_parser`]
174
175[def __parse_api__                  [/ link spirit_x3.reference.parse_api] The Parse API]
176
177[/=============================================================================
178    Better Links (March 7, 2018)
179=============================================================================/]
180
181[/ external ------------------------------------------------------------------]
182
183[def __boost__                      [@http://www.boost.org/ Boost]]
184[def __spirit__                     [@http://boost-spirit.com Spirit]]
185[def __spirit_list__                [@https://lists.sourceforge.net/lists/listinfo/spirit-general Spirit Mailing List]]
186[def __spirit_general__             [@news://news.gmane.org/gmane.comp.spirit.general Spirit General NNTP news portal]]
187[def __clang__                      [@https://clang.llvm.org/ Clang]]
188[def __rd__                         [@https://en.wikipedia.org/wiki/Recursive_descent_parser Recursive Descent]]
189
190[/ Sections ------------------------------------------------------------------]
191
192[/ Tutorials -----------------------------------------------------------------]
193
194[template tutorial_roman[str]           [link spirit_x3.tutorials.roman [str]]]
195[template tutorial_employee[str]        [link spirit_x3.tutorials.employee [str]]]
196[template tutorial_annotation[str]      [link spirit_x3.tutorials.annotation [str]]]
197[template tutorial_error_handling[str]  [link spirit_x3.tutorials.error_handling [str]]]
198[template tutorial_minimal[str]         [link spirit_x3.tutorials.minimal [str]]]
199
200[/ support -------------------------------------------------------------------]
201
202[def __x3_error_handler__               [/ link fix.me] error_handler]
203
204[/=============================================================================
205    Documentation Start
206=============================================================================/]
207
208This is the documentation of the newest version of __spirit__ (currently,
209__version__).
210
211[include preface.qbk]
212[include introduction.qbk]
213[include include.qbk]s
214[include abstracts.qbk]
215
216[section    Tutorials]
217[include        tutorial/tutorial_intro.qbk]
218[include        tutorial/warming_up.qbk]
219[include        tutorial/actions.qbk]
220[include        tutorial/complex.qbk]
221[include        tutorial/sum_tutorial.qbk]
222[include        tutorial/num_list2.qbk]
223[include        tutorial/num_list3.qbk]
224[include        tutorial/num_list4.qbk]
225[include        tutorial/roman.qbk]
226[include        tutorial/employee.qbk]
227[include        tutorial/minimal.qbk]
228[include        tutorial/annotation.qbk]
229[include        tutorial/rexpr.qbk]
230[include        tutorial/error_handling.qbk]
231[endsect]
232
233[section    Quick Reference]
234[include        quick_reference.qbk]
235[endsect]
236
237[/ section    Reference]
238[/ include        concepts.qbk]
239[/ include        basics.qbk]
240[/ include        parse_api.qbk]
241[/ include        action.qbk]
242[/ include        auto.qbk]
243[/ include        auxiliary.qbk]
244[/ include        binary.qbk]
245[/ include        char.qbk]
246[/ include        directive.qbk]
247[/ include        nonterminal.qbk]
248[/ include        numeric.qbk]
249[/ include        operator.qbk]
250[/ include        stream.qbk]
251[/ include        string.qbk]
252[/ endsect]
253
254[/ include x3.qbk]
255[/ include karma.qbk]
256[/ include lex.qbk]
257[/ include advanced.qbk]
258[/ include support.qbk]
259[/ include faq.qbk]
260[/ include notes.qbk]
261[/ include rationale.qbk]
262[/ include repository.qbk]
263[include changelog.qbk]
264[/ include acknowledgments.qbk]
265[/ include references.qbk]
266