[/==============================================================================
    Copyright (C) 2001-2008 Joel de Guzman
    Copyright (C) 2001-2008 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
    [quickbook 1.4]
    [version 2.0]
    [authors [de Guzman, Joel], [Kaiser, Hartmut]]
    [copyright 2001 2002 2003 2004 2005 2006 2007 2008 Joel de Guzman, Hartmut Kaiser]
    [purpose Parser and Generator 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])
    ]
]

[/ November 14, 2007 ]

[/ Some links ]

[def __spirit__                 [@http://spirit.sourceforge.net Spirit]]
[def __spirit_list__            [@http://www.nabble.com/The-Spirit-Parser-Library-f3430.html Spirit General List]]
[def __phoenix__                [@../../phoenix/doc/html/index.html Phoenix]]
[def __phoenix2__               [@../../phoenix/doc/html/index.html Phoenix2]]
[def __fusion__                 [@http://spirit.sourceforge.net/dl_more/fusion_v2/libs/fusion/doc/html/index.html Fusion]]
[def __mpl__                    [@http://www.boost.org/libs/mpl/index.html MPL]]
[def __boost_tuples__           [@http://www.boost.org/libs/tuple/index.html Boost.Tuples]]
[def __boost_proto__            -Boost.Proto-]
[def __boost__                  [@http://www.boost.org/ Boost]]
[def __boost_tools__            [@http://www.boost.org/tools/index.html Boost Tools]]
[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 __gmane__                  [@http://www.gmane.org Gmane]]
[def __mlist_archive__          [@http://news.gmane.org/gmane.comp.parsers.spirit.general]]

[def __early_spirit__           [@http://spirit.sourceforge.net/dl_docs/pre-spirit.htm pre-Spirit]]
[def __todd__exprtemplates__    [@http://ubiety.uwaterloo.ca/~tveldhui/papers/Expression-Templates/exprtmpl.html Expression Templates]]
[def __cpp_concepts__           [@http://en.wikipedia.org/wiki/C%2B%2B0x#Concept Concepts]]
[def __attr_grammar__           [@http://en.wikipedia.org/wiki/Attribute_grammar Attribute Grammar]]
[def __string_template__        [@http://www.stringtemplate.org/ StringTemplate]]
[def __lexertl__                [@http://www.benhanson.net/lexertl.html Lexertl]]
[def __wave__                   [@http://www.boost.org/libs/wave/index.html Wave]]
[def __slex__                   [@http://spirit.sourceforge.net/repository/applications/slex.zip SLex]]
[def __flex__                   [@http://flex.sourceforge.net/ Flex]]
[def __re2c__                   [@http://re2c.sourceforge.net/ re2c]]
[def __ragel__                  [@http://www.cs.queensu.ca/~thurston/ragel/ Ragel]]

[def __boost_variant__          [@http://www.boost.org/doc/html/variant.html `boost.variant<>`]]
[def __boost_iterator_range__   [@http://www.boost.org/libs/range/doc/utility_class.html#iter_range `boost::iterator_range<>`]]
[def __boost_bind__             [@http://www.boost.org/libs/bind/index.html Boost.Bind]]
[def __boost_lambda__           [@http://www.boost.org/libs/lambda/index.html Boost.Lambda]]


[def __classic__                /Spirit.Classic/]
[def __qi__                     /Spirit.Qi/]
[def __karma__                  /Spirit.Karma/]
[def __lex__                    /Spirit.Lex/]


[def __fixme__                  *FIXME*]


[/ Sections ]

[def __sec_qi_and_karma__       [link spirit.qi_and_karma Qi and Karma]]
[def __sec_qi_karma_attributes__  [link spirit.qi_and_karma.abstracts.attributes Attributes]]

[def __sec_lex__                [link spirit.lex Lex]]
[def __sec_lex_quickstart_1__   [link spirit.lex.tutorials.lexer_quickstart1 Lex Quickstart 1 - A word counter using __lex__]]
[def __sec_lex_quickstart_2__   [link spirit.lex.tutorials.lexer_quickstart2 Lex Quickstart 2 - A better word counter using __lex__]]
[def __sec_lex_quickstart_3__   [link spirit.lex.tutorials.lexer_quickstart3 Lex Quickstart 3 - Counting Words Using a Parser]]

[def __sec_lex_static_model__   [link spirit.lex.abstracts.lexer_static_model The /Static/ Model]]
[def __sec_lex_primitives__     [link spirit.lex.abstracts.lexer_primitives Lexer Primitives]]
[def __sec_lex_tokenvalues__    [link spirit.lex.abstracts.lexer_primitives.lexer_token_values About Tokens and Token Values]]
[def __sec_lex_attributes__     [link spirit.lex.abstracts.lexer_attributes Lexer Attributes]]

[def __sec_ref_lex_token__      [link spirit.lex.reference.concepts.token Token Reference]]
[def __sec_ref_lex_token_def__  [link spirit.lex.reference.concepts.tokendef TokenDef Reference]]

[/ References to API descriptions ]

[def __api_tokenize_and_parse__ [link spirit.qi_and_karma.abstracts.parsing_and_generating.the_tokenize_and_phrase_parse___function `tokenize_and_parse()`]]
[def __api_generate_static__    [link spirit.lex.abstracts.tokenizing_input_data.the_generate_static___function `generate_static()`]]


[/ References to classes ]

[def __class_token_def__        [link spirit.lex.reference.tokendef_class `token_def<>`]]

[def __class_lexertl_token__    [link spirit.lex.reference.token_class `lexertl_token<>`]]
[def __class_lexertl_lexer__    [link spirit.lex.reference.lexer_class.the_lexertl_lexer_class_implementing_the_dynamic_model `lexertl_lexer<>`]]
[def __class_lexertl_static_lexer__ [link spirit.lex.reference.lexer_class.the_lexertl_static_lexer_class_implementing_the_static_model `lexertl_static_lexer<>`]]


[/ 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]]


[/ some templates]

[/  fig[ref title label]
    Image element with a title.

    ref   := Reference to the image file.
    title := The title to associate with this figure.
    label := the id to use to be able to reference this picture
]
[template fig[ref title label]'''
    <figure id="'''[label]'''">
        <title>'''[title]'''</title>
        <inlinemediaobject>
            <imageobject>
                <imagedata fileref="'''[ref]'''"></imagedata>
            </imageobject>
            <textobject>
                <phrase role="alt">'''[title]'''</phrase>
            </textobject>
        </inlinemediaobject>
    </figure>
''']


[/ Here we go ]

[include preface.qbk]
[include what_s_new.qbk]
[include introduction.qbk]
[include qi_and_karma.qbk]
[include lex.qbk]
[include faq.qbk]
[include notes.qbk]
[include rationale.qbk]
[include acknowledgments.qbk]
[include references.qbk]


