This manual describes flc(), a tool which can generate lexical scanners:
programs recognizing patterns in text. Usually, scanners are used in
combination with parsers, which in turn can be generated, by
url(bisonc++)(http://bisoncpp.sourceforge.net) for example.

Flc() reads a lexer file, containing rules: pairs of regular expressions and
Cpp() code. Flc() then generates several files, defining a class (tt(Scanner)
by default). The member function tt(lex) is used to analyze input for
occurrences of the regular expressions. Whenever it finds a match, it executes
the corresponding Cpp() code.

Flc() is highly comparable to the programs flex and flex++, written by Vern
Paxson. The goal was to create a similar program, but to completely implement
it in Cpp(). Most flex / flex++ grammars should be usable with flc(), with
minor adjustments (see also lref(the differences with flex /
flex++)(differences)).

This edition of the manual documents version _CurVers_ and provides detailed
information on how to use flc() and how flc() works. Some texts are adapted
from the url(flex manual)(http://flex.sourceforge.net/manual/index.html).
The manual page bf(flexc++)(1) offers a quick overview of the command line
options and option directives.

The most recent version of both this manual and flc() itself can be found at
our website url(http://flexcpp.org/)(http://flexcpp.org). If you find a bug
in flc() or mistakes in the documentation, please report it.
    COMMENT(
using our url(bug
tracker)(http://code.flexcpp.org/projects/flexcpp/).
    )

Flc() was designed and written by Frank B. Brokken, Jean-Paul van Oosten, and
(until version 0.5.3) Richard Berendsen.





