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