JFlex development, wiki, and issue tracker moved to https://github.com/jflex-de/
Fixed issue #130, “in caseless mode, chars in regexps not accepted caselessly”: Caseless option works again as intended.
Fixed issue #131, “re-enable scanning interactively or from a network byte stream”: JFlex now throws an IOException when a Reader returns 0 characters.
New example, shows how to deal with Readers that return 0 characters.
Command line scripts work again in repository version (contributed by Emma Strubell)
New options --warn-unused and --no-warn-unused that control warnings about unused macros.
Fixed issue #125: %apiprivate and %cup2 switches now no longer incompatible
Fix issue #133, “Error in skeleton.nested”: Empty-string matches were taking precedence over EOF and caused non-termination. Now EOF is counted as the highest-priority empty match.
New warning when an expression matches the empty string (can lead to non-termination).
JFlex 1.6.0 (Jun 21, 2014)
Unicode 7.0 is supported.
In %unicode mode, supplementary code points are now handled properly. . Regular expressions are now code-point based, rather than code-unit/ char based. . Input streams are read as code point sequences - properly paired surrogate code units are read as a single character. . All supported Unicode properties now match supplementary characters when Unicode 3.0 or above is specified, or when no version is specified, causing the default Unicode version, Unicode 7.0 in this release, to be used.
New escape sequence allows code points (and whitespace-separated sequences of code points) to be specified as 1-6 hexadecimal digit values.
Characters in matches printed in %debug mode are now Unicode escaped () when they are outside the range 32..127.
fixed bug #128, detect javadoc class comment when followed by annotation(s)
removed the “switch” and “table” code generation options
By default no InputStream constructor is included in the generated scanner. The capability to include one is deprecated and will be removed in JFlex 1.7.
JFlex 1.5.1 (Mar 21, 2014)
fixed bug #127, problem calling ./jflex start scripts
fixed bug #40 (dangerous lookahead check may fail)
JFlex 1.4.1 (November 7, 2004)
merged in patch by Don Brown (fixes #70 Uses Old JUnit method assertFalse)
merged in patch by Don Brown (fixes #62 buffer expansion bug in yy_refill()) Thanks to Binesh Bannerjee for providing a simpler test case for this problem.
fixed bug #69 (ArrayIndexOutOfBounds in IntCharSet)
fixed bug #68 (Cannot use lookahead with ignorecase)
converted dangerous lookahead error to warning
print info for EOF actions as well in %debug mode
fixed line number count for EOF actions
internal: removed unused methods in LexScan.flex and IntCharSet
JFlex 1.4 (April 12, 2004)
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 #59, %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 #144)
implemented faster character classes (feature request #143). 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 #141/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 #141/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 #50 (undefined macros in complement expressions do not throw exception in generator). Thanks to Stephen Ostermiller for the bug report.
fixed bug #51 (yypushStream/yypopStream in skeleton.nested work as advertised)
fixed bug #57 (no wrong macro warnings on regexp negation)
fixed bug #58 (%cupsym now also affects %cupdebug) Thanks to Eric Schweitz for the fix.
fixed bug #52 (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 #140). 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 #54)
yyreset() does not declare an execption any more (fixes bug #65)
%cup does not include %eofclose in JLex mode (–jlex). (Fixes bug #63)
optional parameter to %eofclose: “%eofclose false” turns off %eofclose if it was turned on previously (e.g. by %cup). (Fixes bug #63)
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.
JFlex 1.3.5 (October 8, 2001)
fixed all bugs reported for version 1.3.4. Thanks to Amin Ahmad and Fred Wehrhahn for their excellent bug reports.
implemented feature request #137: vim syntax file. Thanks to Michael Brailsford for his help and suggestions.
JFlex should run with JDK 1.1 out-of-the-box again.
JFlex 1.3.4 (October 1, 2001)
fixed all bugs reported for version 1.3.3. Thanks to Mike Akerman for his excellent bug reports and his help.
implemented feature request #138: exclusive start states. Thanks to Ed Beroset for the suggestion.
introduced %s and %x shorthands for state declarations
JFlex 1.3.3 (September 21, 2001)
fixed all reported bugs except #40 (lookahead check at generation time may fail). Thanks to Axel Schwolow, Karl Meissner, Angelo Borsotti, and Paolo Di Francesco for their excellent bug reports.
enhanced %debug output. JFlex scanners in debug mode now print line, column, matched text, and executed action (with line number in spec) for each processed token. Thanks to Karl Meissner for the suggestion.
introduced %cupdebug directive for readable CUP debugging. Generated scanners print line, column, matched text, and CUP symbol name for each returned token. Again thanks to Karl Meissner for tips and contributed Java reflection code.
new %cupsym to customize CUP generated symbols class name. Thanks to Karl Meissner and Paolo Di Francesco.
new %throws as shorthand for %yylexthrow
code generation now customizable at command line with –table, –pack, and –switch
command line switch –info prints system and JVM information (useful for bug reports)
command line switch –nobak for not generating backup files
an Ant task for the Ant build tool http://jakarta.apache.org/ant/ contributed by Rafal Mantiuk. Many thanks to him.
better error message for missing ] in char class. Thanks to Karl Meissner.
performance enhancements in the runtime system. The engine is now 10%-50% faster. These are only the first implementations of a few of the many suggestions from Angelo Borsotti. Thanks to Angelo for many insights, tips, and fruitful discussions.
a new warning if a rule can never be matched
macros and regular expression can now span multiple lines (note that | at the end of a line in a rule is a special action, not the | operator)
updated the manual to contain more information about the generated class, clarified the description of lexical states. Thanks to Michael Binz, Angelo Borsotti, Vasily Karyaev and for the suggestions.
Simplified java example lexer, and allow // style comments at EOF. Thanks to Thomas Mulcahy.
Byacc/J example updated to version 1.1
New interpreter example using CUP. Thanks to Bernhard Rumpe for the code.
JFlex 1.3.2 (February 24, 2001)
fixed bug #31 (this time for real). Thanks to Thilo Goetz for his quick report.
updated the binary scanning example with the more comprehensive and usable class StraightStreamReader by Stephen Ostermiller. Thanks go to him for his contribution. The original version of this class is at http://www.smo.f2s.com/utils/
added a link to a Japanese translation of the JFlex manual (it’s in Japanese Shift_JIS encoding). The translation is for an older release (1.1.2), but most of the text still applies to the current version. See the change log for the differences between 1.1.2 and the current version. Many thanks to Yuichi Nakajima, Yukio Ikeda, Katsuhiko Yamazaki, and Koji Ooya for their efforts. If you would like to translate the JFlex manual into another language, or if you already have done so, please let me know. I will include a link to it on the documentation page. I can also give you access to the latex sources of the manual, so that printable versions of your translation can be generated, too.
JFlex 1.3.1 (February 20, 2001)
fixed all JFlex bugs reported for 1.3 (bugs #31-#35) Thanks to Hans Kratz, Vasily Karyaev, Alexey Yakovets, and Tom Moog for their excellent reports.
added two new example scanners: . a demonstration how to scan binary files . a small calculator example for Cup, based on the example in the Linux Gazette by Richard A. Sevenich and Christopher Lopes. See also http://www.linuxgazette.com/issue39/sevenich.html http://www.linuxgazette.com/issue41/sevenich.html http://www.linuxgazette.com/issue41/lopes/lopes.html
manual section about encodings, platforms and Unicode. Thanks to Stephen Ostermiller for his valuable input.
switch for skipping the minimization step in DFA generation (–nomin). This feature is still in alpha status and not yet extensively tested. It might be useful when you have very large scanners and not much memory available.
switch for generating graphviz dot files for graphical representation (ps or gif) of generated NFA, DFA and minimized DFA (–dot). Might be useful for teaching. This feature is also still in alpha status and not fully finished yet. It is included as preview, comments are welcome, please try it out and tell me what you think. For information on graphviz see http://www.research.att.com:80/sw/tools/graphviz/
changed to –style long command line switches (single - still recognized).
moved part of the project to http://sourceforge.net/projects/jflex/