Mail Archives: djgpp/1997/03/31/22:48:30
This is to announce that the DJGPP port of the latest GNU Flex version
2.5.4 has been uploaded to SimTel.NET mirrors:
ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/flx254b.zip
ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/flx254s.zip
What is Flex? Flex is the GNU version of a fast lexical analyzer
generator. A lexical analyzer, or a scanner, is a program which
recognizes lexical patterns in text. The simplest case of a scanner
is a function that tries to match words against a set of known
keywords using the standard C function `strcmp'. A more flexible
scanner would use regular expressions to look for matches. But as the
number of different regular expressions grows, these home-grown
scanners quickly become grossly inefficient, because they need to test
for a match against every regexp in turn. Flex-generated scanners are
table-driven C functions (state machines) which, when run, test for a
match against all regular expressions in parallel, so they are very
fast.
Generating such fast scanners is very tedious and error-prone
procedure if you do it manually, and the resulting C code is utterly
unreadable by humans. Flex is a tool that accepts a human-readable
description of the regular expressions and C code rules that should be
run for every such expression, and produces the code of a C function
called `yylex'. When compiled and linked with the -lfl library (which
is also part of the package), this function will look for occurrences
of the specified regexps, and if found, execute the corresponding C
rules.
Please read the DOS-specific README file in the distribution, for
instructions and last-minute notes specific to MSDOS. The NEWS file
is also included in the binary zip file, for those who want to know
what are the improvements since the previous version.
- Raw text -