[/==============================================================================
    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:lexer_tutorials __lex__ Tutorials Overview]

The __lex__ library implements several components on top of possibly different 
lexer generator libraries. It exposes a pair of iterators, which, when 
dereferenced, return a stream of tokens generated from the underlying character 
stream. The generated tokens are based on the token definitions supplied by the 
user.

Currently, __lex__ is built on top of Ben Hanson's excellent __lexertl__ 
library (which is a proposed Boost library). __lexertl__ provides the necessary 
functionality to build state machines based on a set of supplied regular 
expressions. But __lex__ is not restricted to be used with __lexertl__. We 
expect it to be usable in conjunction with any other lexical scanner generator 
library, all what needs to be implemented is a set of wrapper objects exposing a 
well defined interface as described in this documentation.

[note   For the sake of clarity all examples in this documentation assume 
        __lex__ to be used on top of __lexertl__.]

Building a lexer using __lex__ is highly configurable, where most of this 
configuration is done at compile time. Almost all of the configurable 
parameters have generally useful default values, allowing project startup to be
a easy and straightforward task. Here is a (non-complete) list of features you 
can tweak to adjust the generated lexer instance to the actual needs:

* Select and customize the token type to be generated by the lexer instance.
* Select and customize the token value types the generated token instances will 
  be able to hold.
* Select the iterator type of the underlying input stream, which will be used 
  as the source for the character stream to tokenize.
* Customize the iterator type returned by the lexer to enable debug support,
  special handling of certain input sequences, etc.
* Select the /dynamic/ or the /static/ runtime model for the lexical
  analyzer.

Special care has been taken during the development of the library that 
optimal code will be generated regardless of the configuration options 
selected.

The series of tutorial examples of this section will guide you through some
common use cases helping to understand the big picture. The first two quick 
start examples (__sec_lex_quickstart_1__ and __sec_lex_quickstart_2__) 
introduce the __lex__ library while building two stand alone applications, not
being connected to or depending on any other part of __spirit__. The section
__sec_lex_quickstart_3__ demonstrates how to use a lexer in conjunction with a 
parser (where obviously the parser is built using __qi__). 

[endsect]

