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

[heading Description]

This module includes the description of the `auto_` parser. This parser
can be used to automatically create a parser based on the supplied attribute 
type.

[heading Header]

    // forwards to <boost/spirit/home/qi/auto.hpp>
    #include <boost/spirit/include/qi_auto.hpp>

Also, see __include_structure__.

[heading Namespace]

[table
    [[Name]]
    [[`boost::spirit::auto_  // alias: boost::spirit::qi::auto_`]]
]

[heading Model of]

[:__primitive_parser_concept__]

[heading Expression Semantics]

Semantics of an expression is defined only where it differs from, or is
not defined in __primitive_generator_concept__.

[table
    [[Expression]           [Description]]
    [[`auto_`]              [Create a parser instance compatible with the 
                             supplied attribute type and use it for input
                             matching.]]
]

[heading Additional Requirements]

The `auto_` parsers can be used to match input for any data type for which 
a mapping to a parser type is defined (the meta function 
`traits::create_parser_exists` returns `mpl::true_`). 
The following table outlines the predefined mapping rules from the attribute 
type to the parser type. These rules are applied recursively to create the parser
type which can be used to match input for the given attribute type.

[table 
    [[Attribute type]   [Parser type]]
    [[`char`, `wchar_t`]      [`standard::char_`, `standard_wide::char_`]]
    [[`short`, `int`, `long`] [`short_`, `int_`, `long_`]]
    [[`unsigned short`, `unsigned int`, `unsigned long`] 
                              [`ushort_`, `uint_`, `ulong_`]]
    [[`float`, `double`, `long double`] [`float_`, `double_`, `long_double`]]
    [[`short`, `int`, `long`] [`short_`, `int_`, `long_`]]
    [[`long long`, `unsigned long long`]
                              [`long_long`, `ulong_long`]]
    [[`bool`]                 [`bool_`]]
    [[Any (STL) container]    [Kleene Star (unary `'*'`)]]
    [[Any Fusion sequence]    [Sequence operator (`'>>'`)]]
    [[`boost::optional<>`]    [Optional operator (unary `'-'`)]]
    [[`boost::variant<>`]     [Alternative operator (`'|'`)]]
]

It is possible to add support for any custom data type by implementing a 
specialization of the customization point __customize_create_parser__. This
customization can be used also to redefined any of the predefined mappings.

[heading Attributes]

[table
    [[Expression]           [Attribute]]
    [[`auto_`]              [`hold_any`]]
]

[important The attribute type `hold_any` exposed by the `auto_`
           parser is semantically and syntactically equivalent to 
           the type implemented by __boost_any__. It has been added to /Spirit/ 
           as it has better a performance and a smaller footprint if compared to 
           __boost_any__.
]

[heading Complexity]

[:The complexity of the `auto_` parser depends on the supplied attribute type. Each 
 attribute type results in a different parser type to be instantiated which 
 defines the overall complexity.]

[heading Example]

[note The test harness for the example(s) below is presented in the
      __qi_basics_examples__ section.]

Some includes:

[reference_includes]

Some using declarations:

[reference_qi_using_declarations_auto]

And a class definition used in the examples:

[reference_qi_complex]
[reference_qi_auto_complex]

Some usage examples of `auto_` parsers:

[reference_qi_auto]

[endsect]
