When a new flc() release is prepared (resulting from 
a minor or major upgrade or even rewrite) several steps should be
performed before the new version is released. Flc() should at least be able to
regenerate its own lexical scanner function tt(lex()). 

In flc()'s distribution the shell script tt(reflex) is found. In an
interactive process it performs the required steps by which flc() recreates
its own scanner. The script assumes that a new binary program, representing
the latest changes, is available as tt(./tmp/bin/flexc++), relative to the
directory in which the tt(reflex) script is found. When creating tt(flexc++)
with the provided tt(build) script, these assumptions are automatically met.

The tt(reflex) script then performs the following steps:
    itemization(
    it() It optionally creates and always cleans a working directory
tt(./self). 

    it() It copies tt(scanner/lexer) to tt(./self), allowing flc() to create a
separate tt(lex.cc) and tt(Scannerbase.h).

    it() In tt(./self) it executes 
        verb(
    ../tmp/bin/flexc++ -S ../skeletons lexer
        )
        by which the new flc() program creates a scanner from its own scanner
specification file.nl()
        At this point realize that the new flc() program still uses a
tt(lex()) function that was created by an older scanner generator.
        
    it() Before taking this step em(make sure that the original tt(lex.cc) and
tt(scannerbase.h) files were properly backed up).nl()
    The files tt(lex.cc) and tt(Scannerbase.h), created in the previous step
are now copied to the tt(./scanner) directory.
    
    it() All of the sources of the tt(Scanner) and tt(Parser) classes as well
as tt(flexc++.cc) itself must now be recompiled, unless absolutely no changes
were made to the tt(Scanner)'s internal data organization were made, in which
case tt(build program) will only recompile the modified source file
tt(./scanner/lex.cc).nl()
    At this point a new flc() program has been created, using a tt(lex.cc)
implementation generated by the latest release of flc().

    it() Once again execute in tt(./self)
        verb(
    ../tmp/bin/flexc++ -S ../skeletons lexer
        )
        by which flc() creates a scanner from its own scanner
specification file, now using its own generated implementation of the
tt(lex()) function in tt(lex.cc).

    it() If tt(diff ./scanner/lex.cc self/) only shows different time
stamps and if tt(diff ./scanner/Scannerbase.h self/) also 
only shows different time stamps, then flc() could recreate its own matching
function and a stable new release has been created.
    )

