Message-Id: <199704010232.VAA29138@delorie.com> Date: Mon, 31 Mar 1997 17:40:34 +0300 (IDT) From: Eli Zaretskii To: djgpp-announce AT delorie DOT com Subject: ANNOUNCE: GNU Flex 2.5.4 uploaded to SimTel.NET MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII 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.