[jflex-announce] JFlex 1.4 released
The fast lexer generator for Java
Brought to you by:
lsf37,
steve_rowe
From: Gerwin K. <ls...@jf...> - 2004-04-13 12:28:21
|
Hi all, the long awaited version 1.4 of JFlex is out. Because of the long running prerelease versions it should be as stable as you are used to. The most notable new features in 1.4 are: * new, very fast minimization algorithm * new --jlex option for strict compatibility to JLex * support for even larger scanners (up to 64K DFA states) * faster character classes * new %apiprivate switch that causes all generated and skeleton methods to be made private * allow user defined javadoc class comments * optional parameter to %eofclose: "%eofclose false" turns off %eofclose if it was turned on previously (e.g. by %cup) * some internal changes: jflex build script switched to ant, better integration with build tools and IDEs, change scheme for generated names to comply with Java naming standard You can download JFlex 1.4 from any of the mirrors at: http://www.jflex.de/mirrors.html Changes from the latest prerelease 1.4_pre5 are minimal: - new internal naming policy to conform with Java standard - removed IOException from yyreset - %eofclose false - no %eofclose for %cup in --jlex mode The complete log of changes from 1.3.5 to 1.4 is attached at the end. Happy scanning, Gerwin * Changes from JFlex 1.3.5 to JFlex 1.4 - new, very fast minimization algorithm (also fixes memory issues) - new --jlex option for strict compatibility to JLex. Currently it changes %ignorecase to JLex semantics, that is, character classes are interpreted in a caseless way, too. (fixes bus #751757, %ignorecase ignored by char classes). Thanks to Edward D. Willink for spotting the incompatibility. - support for even larger scanners (up to 64K DFA states). Thanks to Karin Vespoor. - removed eclipse compiler warnings for generated classes (feature request #778747) - implemented faster character classes (feature request #604589). Expressions like [a-z] | [A-Z] are interpreted as one atomic class [a-zA-Z], reducing NFA states and generation time significantly for some specifications. This affects the generation process only, generated scanners remain the same. - new %apiprivate switch (feature request #513500/1) that causes all generated and skeleton methods to be made private. Exceptions to this are user defined functions and the constructor. Thanks to Stephen Ostermiller for the suggestion. - allow user defined javadoc class comments (feature request #513500/2) If the user code section ends with a javadoc comment, JFlex takes this instead of the generated comment. Thanks to Stephen Ostermiller for the suggestion. - fixed bug #491095 (undefined macros in complement expressions do not throw exception in generator). Thanks to Stephen Ostermiller for the bug report. - fixed bug #495422 (yypushStream/yypopStream in skeleton.nested work as advertised) - fixed bug #611118 (no wrong macro warnings on regexp negation) - fixed bug #655528 (%cupsym now also affects %cupdebug) Thanks to Eric Schweitz for the fix. - fixed bug #510010 (single-line %initthrow works now in case of extra whitespace before newline) - yyreset() does no longer close the associated reader (use yyclose() explicitly for that). Makes some reader objects reusable (feature request #513492). Thanks to Stephen Ostermiller for the suggestion. - fixed modifier order in generated code, removes jikes compiler warnings Thanks to Michael Wildpaner for the fix. - ant task now also works with ant >= 1.4 (fixes bug #526905) - yyreset() does not declare an execption any more (fixes bug #913132) - %cup does not include %eofclose in JLex mode (--jlex). (Fixes bug #910562) - optional parameter to %eofclose: "%eofclose false" turns off %eofclose if it was turned on previously (e.g. by %cup). (Fixes bug #910562) - jflex build script switched to ant - internal: central Options class for better integration with build tools and IDEs - internal: change naming scheme for generated internal variables from yy_ to zz to comply with Java naming standard. Thanks to Max Gilead for the patch. |