spirit/doc/x3/spirit_x3.qbk
2019-03-29 04:31:18 +03:00

266 lines
14 KiB
Plaintext

[/==============================================================================
Copyright (C) 2001-2015 Joel de Guzman
Copyright (C) 2001-2011 Hartmut Kaiser
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)
===============================================================================/]
[article Spirit X3
[quickbook 1.5]
[version 3.0.4]
[authors [de Guzman, Joel], [Kaiser, Hartmut]]
[copyright 2001-2018 Joel de Guzman, Hartmut Kaiser]
[/ purpose Parser Library]
[license
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])
]
]
[/ May 12, 2015 ]
[/=============================================================================
Some links and defines
=============================================================================/]
[def __version__ V3.0.4]
[/ external]
[def __gmane__ [@http://www.gmane.org Gmane]]
[def __mlist_archive__ [@http://news.gmane.org/gmane.comp.parsers.spirit.general]]
[def __boost_tools__ [@http://www.boost.org/tools/index.html Boost Tools]]
[def __fusion__ [@boost:/libs/fusion/doc/html/index.html Boost.Fusion]]
[def __boost_variant__ [@http://www.boost.org/doc/html/variant.html Boost.Variant]]
[def __stl__ [@https://en.wikipedia.org/wiki/Standard_Template_Library STL]]
[def __fwditer__ [@http://en.cppreference.com/w/cpp/named_req/ForwardIterator `ForwardIterator`]]
[def __outputiter__ [@http://en.cppreference.com/w/cpp/named_req/OutputIterator `OutputIterator`]]
[def __concepts__ [@http://www.boost.org/community/generic_programming.html#concept concepts]]
[def __endianness__ [@http://en.wikipedia.org/wiki/Endianness endianness]]
[def __iomanip__ [@http://www.cppreference.com/wiki/io/io_flags#manipulators Manipulators]]
[def __boost_iterator_range__ [@boost:/libs/range/doc/html/range/reference/utilities/iterator_range.html `boost::iterator_range`]]
[template trac[number]'''<ulink url="https://svn.boost.org/trac/boost/ticket/'''[number]'''">TRAC#'''[number]'''</ulink>''']
[template gh[number]'''<ulink url="https://github.com/boostorg/spirit/issues/'''[number]'''">GH#'''[number]'''</ulink>''']
[template gh_pr[number]'''<ulink url="https://github.com/boostorg/spirit/pull/'''[number]'''">GH#'''[number]'''</ulink>''']
[/ Some images ]
[def __note__ [$./images/note.png]]
[def __tip__ [$./images/tip.png]]
[def __important__ [$./images/important.png]]
[def __caution__ [$./images/caution.png]]
[def __danger__ [$./images/alert.png]]
[def __x3__ /Spirit.X3/]
[def __sd_start_stop__ [$./images/start_stop.png]]
[def __sd_terminals__ [$./images/terminal.png]]
[def __sd_non_terminals__ [$./images/non-terminal.png]]
[def __sd_sequence__ [$./images/sequence.png]]
[def __sd_choice__ [$./images/alternative.png]]
[def __sd_optional__ [$./images/optional.png]]
[def __sd_plus__ [$./images/plus.png]]
[def __sd_kleene__ [$./images/kleene.png]]
[def __sd_predicate__ [$./images/predicate.png]]
[def __sd_and_predicate__ [$./images/and_predicate.png]]
[def __sd_not_predicate__ [$./images/not_predicate.png]]
[def __pascal_string__ [$./images/pascal_string.png]]
[def __syntax_diagrams__ [link spirit.abstracts.syntax_diagrams Syntax Diagram]]
[def __peg__ [link spirit.abstracts.parsing_expression_grammar Parsing Expression Grammar]]
[def __ast__ Abstract Syntax Tree] [/$$$ TODO: link me $$$]
[def __sec_x3_reference__ [/ link spirit_x3.reference] X3 Reference]
[def __sec_x3_primitive__ [/ link spirit_x3.quick_reference.x3_parsers] X3 Parsers]
[def __sec_x3_compound__ [/ link spirit_x3.quick_reference.compound_attribute_rules] Parser Compound Attribute Rules]
[/ support]
[def __info__ `info`] [/ TODO Link Me]
[def __unused_type__ `unused_type`] [/$$$ TODO: link me $$$]
[def __unused__ `unused`] [/$$$ TODO: link me $$$]
[def __char_class_types__ Character Class Types] [/$$$ TODO: link me $$$]
[/ quick-ref]
[def __x3_quickref__ [link spirit_x3.quick_reference X3 Quick Reference]]
[def __x3_comp_attr_notation__ [link spirit_x3.quick_reference.compound_attribute_rules.notation Compound Attribute Notation]]
[/ concepts]
[def __parser_concept__ [/ link spirit_x3.reference.parser_concepts.parser] `Parser`]
[def __primitive_parser_concept__ [/ link spirit_x3.reference.parser_concepts.primitiveparser] `PrimitiveParser`]
[def __unary_parser_concept__ [/ link spirit_x3.reference.parser_concepts.unaryparser] `UnaryParser`]
[def __binary_parser_concept__ [/ link spirit_x3.reference.parser_concepts.binaryparser] `BinaryParser`]
[def __nary_parser_concept__ [/ link spirit_x3.reference.parser_concepts.naryparser] `NaryParser`]
[def __x3_nonterminal__ [/ link spirit_x3.reference.parser_concepts.nonterminal] `Nonterminal`]
[def __x3_nonterminal_attribute__ [/ link spirit_x3.reference.parser_concepts.nonterminal.attributes] `Attribute`]
[/ basics]
[def __x3_lazy_argument__ [/ link spirit_x3.reference.basics.lazy_argument] Lazy Argument]
[def __x3_lazy_arguments__ [/ link spirit_x3.reference.basics.lazy_argument] Lazy Arguments]
[def __char_encoding_namespace__ [/ link spirit_x3.reference.basics.character_encoding_namespace] Character Encoding Namespace]
[def __x3_basics_examples__ [/ link spirit_x3.reference.basics.examples] Basics Examples]
[/ string]
[template x3_lit_string[str] [[/ link spirit_x3.reference.string.string] str]]
[def __string__ [/ link spirit_x3.reference.basics.string] String]
[def __x3_symbols__ [/ link spirit_x3.reference.string.symbols] `symbols<T>`]
[/ action]
[def __x3_semantic_actions__ Semantic Actions] [/ TODO Link Me]
[/ char]
[template x3_char[str] [/ link spirit_x3.reference.char.char] [str]]
[template x3_char_class[str] [/ link spirit_x3.reference.char.char_class] [str]]
[template x3_lit_char[char] [/ link spirit_x3.reference.char.char] [char]]
[/ numerics]
[template x3_signed_int[str] [/ link spirit_x3.reference.numeric.int] [str]]
[template x3_unsigned_int[str] [/ link spirit_x3.reference.numeric.uint] [str]]
[template x3_real_number[str] [/ link spirit_x3.reference.numeric.real] [str]]
[template x3_boolean[str] [/ link spirit_x3.reference.numeric.boolean] [str]]
[/ binary]
[template x3_native_binary[str] [/ link spirit_x3.reference.binary.binary_native] [str]]
[template x3_little_binary[str] [/ link spirit_x3.reference.binary.binary_little] [str]]
[template x3_big_binary[str] [/ link spirit_x3.reference.binary.binary_big] [str]]
[/ auxiliary]
[def __x3_attr__ [/ link spirit_x3.reference.auxiliary.attr] `attr(attrib)`]
[def __x3_eol__ [/ link spirit_x3.reference.auxiliary.eol] `eol`]
[def __x3_eoi__ [/ link spirit_x3.reference.auxiliary.eoi] `eoi`]
[def __x3_eps__ [/ link spirit_x3.reference.auxiliary.eps] `eps`]
[def __x3_lazy__ [/ link spirit_x3.reference.auxiliary.lazy] `lazy`]
[/ directives]
[def __x3_lexeme__ [/ link spirit_x3.reference.directive.lexeme] `lexeme`]
[def __x3_no_case__ [/ link spirit_x3.reference.directive.no_case] `no_case`]
[def __x3_omit__ [/ link spirit_x3.reference.directive.omit] `omit`]
[def __x3_matches__ [/ link spirit_x3.reference.directive.matches] `matches`]
[def __x3_raw__ [/ link spirit_x3.reference.directive.raw] `raw`]
[def __x3_expectd__ [/ link spirit_x3.reference.directive.expect] `expect`]
[def __x3_repeat__ [/ link spirit_x3.reference.directive.repeat] `repeat`]
[template x3_repeat[str] [[/ link spirit_x3.reference.directive.repeat] str]]
[def __x3_skip__ [/ link spirit_x3.reference.directive.skip] `skip`]
[template x3_no_skip[str] [[/ link spirit_x3.reference.directive.no_skip] str]]
[def __x3_hold__ [/ link spirit_x3.reference.directive.hold] `hold`]
[/ operator]
[def __x3_alternative__ [/ link spirit_x3.reference.operator.alternative] Alternative]
[def __x3_and_predicate__ [/ link spirit_x3.reference.operator.and_predicate] And Predicate]
[def __x3_difference__ [/ link spirit_x3.reference.operator.difference] Difference]
[def __x3_expect__ [/ link spirit_x3.reference.operator.expect] Expectation operator]
[def __x3_expectation_failure__ [/ link spirit_x3.reference.operator.expect.expectation_failure] `expectation_failure`]
[def __x3_kleene__ [/ link spirit_x3.reference.operator.kleene] Kleene]
[def __x3_list__ [/ link spirit_x3.reference.operator.list] List]
[def __x3_not_predicate__ [/ link spirit_x3.reference.operator.not_predicate] Not Predicate]
[def __x3_optional__ [/ link spirit_x3.reference.operator.optional] Optional]
[def __x3_plus__ [/ link spirit_x3.reference.operator.plus] Plus]
[def __x3_sequence__ [/ link spirit_x3.reference.operator.sequence] Sequence]
[def __x3_stream__ [/ link spirit_x3.reference.stream.stream] `stream`]
[/ nonterminal]
[def __x3_rule__ [/ link spirit_x3.reference.nonterminal.rule] rule]
[def __x3_rules__ [/ link spirit_x3.reference.nonterminal.rule] rules]
[def __x3_grammar__ [/ link spirit_x3.reference.nonterminal.grammar] grammar]
[def __x3_grammars__ [/ link spirit_x3.reference.nonterminal.grammar] grammars]
[/ stream]
[template x3_match[str] [/ link spirit_x3.reference.parse_api.stream_api] str]
[template x3_auto[str] [/ link spirit_x3.reference.auto] str]
[def __create_parser__ [/ link spirit_x3.reference.parse_api.create_parser] `create_parser`]
[def __parse_api__ [/ link spirit_x3.reference.parse_api] The Parse API]
[/=============================================================================
Better Links (March 7, 2018)
=============================================================================/]
[/ external ------------------------------------------------------------------]
[def __boost__ [@http://www.boost.org/ Boost]]
[def __spirit__ [@http://boost-spirit.com Spirit]]
[def __spirit_list__ [@https://lists.sourceforge.net/lists/listinfo/spirit-general Spirit Mailing List]]
[def __spirit_general__ [@news://news.gmane.org/gmane.comp.spirit.general Spirit General NNTP news portal]]
[def __clang__ [@https://clang.llvm.org/ Clang]]
[def __rd__ [@https://en.wikipedia.org/wiki/Recursive_descent_parser Recursive Descent]]
[/ Sections ------------------------------------------------------------------]
[/ Tutorials -----------------------------------------------------------------]
[template tutorial_roman[str] [link spirit_x3.tutorials.roman [str]]]
[template tutorial_employee[str] [link spirit_x3.tutorials.employee [str]]]
[template tutorial_annotation[str] [link spirit_x3.tutorials.annotation [str]]]
[template tutorial_error_handling[str] [link spirit_x3.tutorials.error_handling [str]]]
[template tutorial_minimal[str] [link spirit_x3.tutorials.minimal [str]]]
[/ support -------------------------------------------------------------------]
[def __x3_error_handler__ [/ link fix.me] error_handler]
[/=============================================================================
Documentation Start
=============================================================================/]
This is the documentation of the newest version of __spirit__ (currently,
__version__).
[include preface.qbk]
[include introduction.qbk]
[include include.qbk]s
[include abstracts.qbk]
[section Tutorials]
[include tutorial/tutorial_intro.qbk]
[include tutorial/warming_up.qbk]
[include tutorial/actions.qbk]
[include tutorial/complex.qbk]
[include tutorial/sum_tutorial.qbk]
[include tutorial/num_list2.qbk]
[include tutorial/num_list3.qbk]
[include tutorial/num_list4.qbk]
[include tutorial/roman.qbk]
[include tutorial/employee.qbk]
[include tutorial/minimal.qbk]
[include tutorial/annotation.qbk]
[include tutorial/rexpr.qbk]
[include tutorial/error_handling.qbk]
[endsect]
[section Quick Reference]
[include quick_reference.qbk]
[endsect]
[/ section Reference]
[/ include concepts.qbk]
[/ include basics.qbk]
[/ include parse_api.qbk]
[/ include action.qbk]
[/ include auto.qbk]
[/ include auxiliary.qbk]
[/ include binary.qbk]
[/ include char.qbk]
[/ include directive.qbk]
[/ include nonterminal.qbk]
[/ include numeric.qbk]
[/ include operator.qbk]
[/ include stream.qbk]
[/ include string.qbk]
[/ endsect]
[/ include x3.qbk]
[/ include karma.qbk]
[/ include lex.qbk]
[/ include advanced.qbk]
[/ include support.qbk]
[/ include faq.qbk]
[/ include notes.qbk]
[/ include rationale.qbk]
[/ include repository.qbk]
[include changelog.qbk]
[/ include acknowledgments.qbk]
[/ include references.qbk]