This is fsmbuild, a tool to simplify the process of writing C code forming
a finite state machine.  It is used extensively within E-scape for parsing
input files.

For exmaple, around the time fsmbuild started being used for E-scape, these
are the file sizes for the hand-code C version and the fsmbuild input
for the GIF89a parser:

    604    2098   15249 legal.c
    321    1162    8063 legal.fsm
    128     472    3554 gzip.fsm
    198     665    5091 gzipfilter.c


Note that the file sizes include decompression code, which fsmbuild
doesn't have any knowlege of.

fsmbuild has a slighty different purpose than flex and bison.  In particular,
fsmbuild works very well for parsing binary files with multibyte
integers where you need a source-driven function.  fsmbuild can work
for text files, although a modified version of bison.simple might be
able to provide source-driven semantics.

The output of fsmbuild is not restriced in any way.  However, the
file fsm.h is referenced by every output file generated by fsmbuild,
and it is protected by the GNU General Public License.
