Releases: Genivia/RE-flex
reflex v4.2.1
What's new?
- minor update to adjust the current input pointer by one when not matching anything
reflex v4.2.0
What's new?
- new pkg-config files
reflex.pc
andreflexmin.pc
and updated configure and makefiles - minor update of
reflex
command option-p
to permit empty lexer specifications #202 (*)
*) performance profiling statistics are collected for lexer rules execution, i.e. when no rules are specified no meaningful performance statistics are collected.
reflex v4.1.2
What's new?
- updated configure scripts with improved cross compilation and improved SIMD CPU extension detection
- cast negative ctype function arguments (problem detected on NetBSD 10 #198)
- verified on ARM6 (Debian), ARM7 (Debian), AArch64 (MacOS M1, Android termux), x86_64 (MacOS Intel, Cygwin, Debian)
reflex v4.1.1
What's new?
A minor update to correct a DFA construction problem for POSIX regex lazy quantifiers matching too much in some cases
reflex v4.1.0
What's new?
- improved lazy quantifiers for POSIX regex lazy matching in linear time (i.e. no backtracking) using an advanced DFA transformation algorithm first introduced in RE/flex in 2016 and extended in this release
- add option
--[no]yypanic
for Flex++ compatibility
reflex v4.0.1
What's new?
- improved option
%o find
- two new examples, including an AWK-like fast search demo in C++, to demonstrate option
%o find
- fix #195
reflex v4.0
What's new?
- faster
Matcher::find()
with a new DFA cut algorithm to optimize match prediction speed and accuracy, see also ugrep 5.0 - apply Unicode pattern canonicalization with
reflex::convert(..., reflex::convert_flag::unicode)
reflex v3.5.1
Minor improvements.
reflex v3.5.0
- updated to Unicode 15.1
- update
\X
to match Unicode characters - clarify
.
(dot) in the documentation when used with%unicode
-enabled lexers, which is a catch-all pattern e.g. to report lexical errors
reflex v3.4.1
Word boundary anchors (\<
, \>
, \b
and \B
) can now be used anywhere in a pattern with the default RE/flex regex engine. Backtracking on word boundary anchors is performed by the regex engine to match input when anchors are embedded in a regex pattern (not at the ends of a pattern) such as bar.*\bfoo
.
However, no backtracking is performed by the fast directly-coded DFA engines generated with --fast
, which means that word boundary anchors that require backtracking, such as bar.*\bfoo
, may not match with --fast
. Please note that tokenizers and scanners typically don't use word boundaries in their patterns, but this new feature was added as part of a general RE/flex regex pattern library update and is also supported by its fuzzy matcher variant.