[/==============================================================================
    Copyright (C) 2001-2010 Joel de Guzman
    Copyright (C) 2001-2010 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)
===============================================================================/]

[section Structure]

[section Include]

Spirit is a header file only library. There are no libraries to link to.
This section documents the structure of the Spirit headers.

Spirit contains five sub-libraries plus a 'support' module where common
support classes are placed:

* Classic
* Qi
* Karma
* Lex
* Phoenix
* Support

The top Spirit directory is:

    BOOST_ROOT/boost/spirit

Currently, the directory contains:

    [actor]     [attribute]     [core]      [debug]
    [dynamic]   [error_handling][home]      [include]
    [iterator]  [meta]          [phoenix]   [repository]
    [symbols]   [tree]          [utility]

These include some old v1.8 directories that are now deprecated. These
are: actor, attribute, core, debug, dynamic, error_handling, iterator,
meta, phoenix, symbols, tree and utility. There is no guarantee that these
directories will still be present in future versions of Spirit. We only
keep them for backward compatibility. Please be warned.

Each directory (except include, home, and repository) has a corresponding
header file that contains forwarding includes of each relevant include file
that the directory contains. For example, there exists a
<boost/spirit/actor.hpp> header file which includes all the relevant files
from the boost/spirit/actor directory.

To distinguish between Spirit versions, you can inspect the version file:

    <boost/spirit/version.hpp>

using the preprocessor define

    SPIRIT_VERSION

It is a hex number where the first two digits determine the major version while
the last two digits determine the minor version. For example:

    #define SPIRIT_VERSION 0x2010 // version 2.1

The include directory at:

    BOOST_ROOT/boost/spirit/include

is a special flat directory that contains all the Spirit headers. To
accommodate the flat structure, the headers are prefixed with the
sub-library name:

* classic_
* karma_
* lex_
* phoenix1_
* phoenix_
* qi_
* support_

For example, if you used to include <boost/spirit/actor.hpp>,
which is now a deprecated header, you should instead include
<boost/spirit/include/classic_actor.hpp>

If you want to simply include the main sub-library name, then you can
include:

* <boost/spirit/include/classic.hpp>
* <boost/spirit/include/karma.hpp>
* <boost/spirit/include/lex.hpp>
* <boost/spirit/include/phoenix1.hpp>
* <boost/spirit/include/phoenix.hpp>
* <boost/spirit/include/qi.hpp>
* <boost/spirit/include/support.hpp>

The home directory:

    BOOST_ROOT/boost/spirit/home

is the /real/ home of Spirit. It is the place where the various sub-libraries
actually exist. The home directory contains:

    [classic]   [karma]     [lex]
    [phoenix]   [qi]        [support]

As usual, these directories have their corresponding include files:

* <boost/spirit/home/classic.hpp>
* <boost/spirit/home/karma.hpp>
* <boost/spirit/home/lex.hpp>
* <boost/spirit/home/phoenix.hpp>
* <boost/spirit/home/qi.hpp>
* <boost/spirit/home/support.hpp>

The various sub-libraries include files can be found in each
sub-directory containing the particular sub-library. The include
structure of a sub-library is covered in its documentation. For
consistency, each library follows the same scheme as above.

To keep it simple, you should use the flat include directory at
boost/spirit/include.

For some additional information about the rationale you might want to have a 
look at the FAQ entry __include_structure_faq__.

The subdirectory `boost/spirit/repository` does not belong to the main Spirit
distribution. For more information please refer to: 
[link spirit.repository Spirit Repository].

[endsect] [/Include]

[endsect]
