Skip to content

Releases: jflex-de/jflex

JFlex 1.9.1

11 Mar 02:29
v1.9.1
7b36a83
Compare
Choose a tag to compare

JFlex 1.9.1 is a small bugfix release:

  • fix negated char classes with overlapping content (#1065, #1066):
    Expressions such as [^\s\n] were translated incorrectly, because \s and \n overlap and the negation operator ^ in version 1.9.0 did not handle this case correctly.

JFlex 1.9.0

05 Feb 04:48
v1.9.0
Compare
Choose a tag to compare

JFlex 1.9.0 is a feature release with slight performance improvements in the scanning engine. It also fixes all known bugs of version 1.8.2.

New features

  • add optional token limit size (#1045, #197)
  • warn for unicode escapes that are too long (#1042)
  • directives and command line switches for enabling/disabling JFlex warnings (#1020)
  • allow custom annotations such as @SuppressWarnings (#1027, #762)
  • increase maximum supported DFA size to about 2^32 states (#1003, #952)
  • better error reporting for character classes (#996, #888, #939)
  • allow comments after %yylexthrow (#794)
  • make maven build reproducible (#765)

Fixed bugs

  • make character classes more robust (#985, #974, #986)
  • fix NullPointerException when generating dot files (#769)

Other

  • update dependencies
  • more and better property-based tests (#953)
  • use SPDX license identifiers
  • avoid use of createTempDir() (was used in tests only)
  • migrate CI to GitHub actions
  • migrate most tests to bazel
  • improve test suite to work on non-US locales
  • fix example file name for minijava example
  • improved simple.flex example

More comprehensive list in milestone 1.9.0

JFlex 1.8.2

03 May 05:05
v1.8.2
Compare
Choose a tag to compare

JFlex 1.8.2 is a small bugfix release. There are no new features.

  • fix bug that prevented %7bit scanners from being generated (#756)
  • fix %eof{ and %eofthrow{ code generation (#743)
  • updated bazel build rule

More detailed list of changes in milestone 1.8.2

JFlex 1.8.1

28 Feb 08:14
v1.8.1
Compare
Choose a tag to compare

JFlex 1.8.1 is a small maintenance release. There are no new features or bug fixes. The only change is

  • in dependency management for the CUP parser generator and runtime to re-enable building from source in the release package (#734)

More detailed list of changes in milestone 1.8.1

JFlex 1.8.0

26 Feb 08:57
v1.8.0
Compare
Choose a tag to compare
  • yychar type has been changed from int to long in order to support large files (> 2GB) (#605)
  • Add @SuppressWarnings("FallThrough") on generated lexer #454
  • Defend against spoon-feeding readers not fully populating the scanning buffer #543
  • Add support for Unicode 10.0 #540 11.0 #555 12.0 #556 and 12.1 #563
  • Unicode Emoji properties are supported for Unicode versions 8.0+ (#546)
  • Significantly decreased memory usage for unicode scanners from ~4MB to typical ~20kB. (#697)
  • Macro expressions in character classes are now allowed (#216, #654)
  • Expose yyatEOF() in generated scanner API (#644)
  • Pipe action | now works for <<EOF>> (#201)
  • Explicitly use UTF-8 encoding for skeleton files and dot files (#470)
  • Maven plugin now correctly checks #include file time stamp (#694)
  • Slightly optimised character classes when ^ operator is used (#682)
  • Normalised character class order. This has no influence on how text is matched, but makes --dump output more comparable. (#650)
  • Fixed a bug in the negation ! operator that in rare circumstances would match not everything covered by the negation (#567).
  • The . expression now does not match unpaired surrogates, since these are not characters. (#544)
  • Example specs now with build for ant, make, and maven
  • Introduced a code LexGenerator API. #428 #448
  • Add the jflex source in generated code #371 #399
  • Code cleanup
  • Dep updates
    • Updated maven dependencies #409
    • Updated the Maven wrapper to 0.4.2 #382
  • Build system
    • retired ant build #432
    • now supporting Bazel build

See all changes in milestone 1.8.0

User manual

10 Oct 07:32
69a6c05
Compare
Choose a tag to compare
Add owners file (#423)

This will

- protect the cup directory
- help github in suggesting reviewers

As a project admin, you can still commit. But the merge button is red.
https://help.github.com/articles/about-codeowners/

JFlex 1.7.0

21 Sep 06:42
Compare
Choose a tag to compare
  • Prerequisites
    • Compilation requires jdk7 and Maven 3.5.2
    • Execution requires jdk7 and Maven 3.0
    • Compilation of generated code requires jdk 5
  • CUP upgraded to 0.11b
  • Option --inputstreamctor has been removed (#195)
  • Code health
    • Codebase has valid doclint (#206)
    • Maven plugins update to use Java annotations rather than javadoc at-clauses.
  • jflex --version or --info or --help now exits with error code 0 (#194)
  • Unicode 8.0 and 9.0 are supported (#209)
  • documentation improvements (#152, #187, #215, #290)
  • added an --encoding option to specify input/output encoding (#164)
  • make jflex start script robust for other locales (#251)
  • report character position when %debug and %char are present (#207)

See https://github.com/jflex-de/jflex/milestone/10

JFlex 1.6.1

09 Nov 20:39
Compare
Choose a tag to compare

Released 2015-03-16

1.6.1 is a maintenance release, fixing all known defects.

Changelog:

  • 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

09 Nov 20:39
Compare
Choose a tag to compare

Released 2014-06-21

  • 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 \u{...} 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
    (\uXXXX) when they are outside the range 32..127.
  • detect javadoc class comment when followed by annotation(s) (#128)
  • removed the "switch" and "table" code generation options
  • Option --noinputstreamctor deprecated.
    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.

1.5.1

07 Nov 14:04
Compare
Choose a tag to compare
  • fixed problem calling ./jflex start scripts (#127)
  • corrected documentation flaws (#126)
  • further documentation and website updates
  • JFlex now reports the correct version string
  • added support for CUP2 with %cup2 switch, based on patch by Andreas Wenger