RE/flex lexical analyzer generator 4.2.0

RE/flex is the fast lexical analyzer generator with full Unicode support, indent/nodent/dedent anchors, lazy quantifiers, word boundaries, and many other modern features. Supports Flex lexer specification syntax and is compatible with Bison/Yacc parsers. Generates reusable source code that is easy to understand. Supports fast scanning of UTF-8/16/32 files, strings, and streams. The reflex scanner generator tool generates clean lexer class code that is thread-safe. Generates Graphviz files to visualize state machine DFAs. RE/flex also offers a collection of class templates to wrap C++ regex engines in a unified API for scanning and searching large data sources.

Tags code-generator c++ cross-plattform developers
License BSDL
State stable

Recent Releases

4.2.028 Mar 2024 16:05 minor feature: Released 4.2.0 Add pkg-config files reflex.pc and relfexmin.pc with updated configure and makefiles. Minor update of option -p to permit empty lexer specifications #202.
4.1.218 Mar 2024 17:45 minor feature: Released 4.1.2 Updated configure scripts. Cast negative ctype function arguments (problem detected on NetBSD 10) #198.
4.0.125 Feb 2024 15:25 minor feature: Released 4.0.1 Add new example/rawk. Add new example/moo.
4.0.019 Feb 2024 11:25 minor feature: Released 4.0.0 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).
3.3.612 Jul 2023 14:05 minor feature: Released 3.3.6 Faster find(); improved --stdout to include tables.
3.3.218 Mar 2023 07:25 minor feature: Released 3.3.2 .
3.3.107 Mar 2023 03:16 minor feature: Released 3.3.1 .
3.3.025 Jan 2023 03:16 minor feature: Erroneous pre-increment to post-increment.
3.2.1207 Jan 2023 03:16 minor feature: Released 3.2.12 Regression in trailing context pattern matching, e.g. `xy` and `x/x` patterns collided when they should not; updated yaml parser example #158.
3.2.1130 Aug 2022 14:45 minor feature: Released 3.2.11 Add new Lua-to-lisp transpiler example.
3.2.807 Jul 2022 10:45 minor feature: Released v3.2.8 Suggested improvement, #140 code block and reflex error messages.
3.2.214 Mar 2022 06:45 minor feature: Released 3.2.2 Minor usability improvements #127 and #128.
3.2.125 Feb 2022 11:05 minor feature: Released 3.2.1 .
3.0.1212 Oct 2021 03:25 minor feature: Released 3.0.12 Updated to Unicode 14; a compilation with `--params` when used with `--flex`.
3.0.1115 Sep 2021 07:05 minor feature: Released 3.0.11 Minor change to apply `--pre` to the generated `REFLEX_code_ PRE STATE` code.
3.0.924 Jul 2021 03:15 minor feature: Released 3.0.9 SIMD code split into simd_avx2.cpp and simd_avx512bw.cpp to support runtime CPU ID checking when the library is built with./configure; make, disable AVX with./configure --disable-avx, disable SSE2 with./configure --disable-sse2; UTF-16LE BOM detection correction.
3.013 Oct 2020 11:25 minor feature: Released 3.0 . Released 3.0. . Released 3.0.
2.1.521 Sep 2020 06:05 minor feature: Advise to use bash instead of sh while building . Updated README. . . . Updated Mini C compiler example. . Released 2.1.5. . Yyset_lineno() Flex compatibility wrappers. . . . Released 2.1.5.
2.1.420 Aug 2020 09:05 minor feature: Released 2.1.4 Changed `IN_HEADER` to `yyIN_HEADER` when `--flex` is used with `--header-file`; added `reflex::Input::Handler` event handler for custom handling of `FILE*` errors and non-blocking `FILE*` streams.
2.1.304 Aug 2020 10:05 minor feature: Released 2.1.3 Improved `--bison-bridge` option; updated examples.
2.1.213 Jul 2020 22:45 minor feature: Released 2.1.2 Minor change to MSVC++ compiler error.
2.1.109 Jul 2020 07:05 minor feature: Updated README . Updated README. . Mini C compiler update. . Mini C comiler update. . Build error with MSVC++2013 and earlier. . Build error with MSVC++2010. . . . Mini C compiler update. . Released 2.1.1.
2.1.030 Jun 2020 07:05 minor feature: Released 2.1.0 Added Bison complete locations filename member access; added example Mini C compiler `minic` using RE/flex scanner with Bison 3.2 C++ complete locations, compiles C-like source code to Java bytecode (class files); added fast fuzzy (approximate) regex matcher `reflex::FuzzyMatcher` derived from `reflex::Matcher`.
2.0.126 May 2020 19:45 minor feature: Released 2.0.1 Resolved 64-bit build warnings; reflex CRLF output in C++ source code on Windows.
2.0.015 May 2020 06:05 minor feature: Released 2.0.0 . Updated README.
1.6.701 May 2020 09:45 minor feature: Updated lex.vim . Released 1.6.7.
1.6.601 Apr 2020 07:45 minor feature: Released 1.6.6 an where a trailing backslash in a pattern in a lexer specification causes a reflex-generated C++ comment to extend to the next line, which results in a compilation warning and possibly a line of code being skipped.
1.6.525 Mar 2020 09:25 minor feature: Released 1.6.5.
1.6.320 Mar 2020 09:45 minor feature: Released 1.6.3.
1.6.211 Mar 2020 23:25 minor feature: Released 1.6.2 Improved reflex::PCRE2Matcher; MSVC++ x86 32-bit build error when HAVE_AVX512BW is enabled (requires AVX512BW).
1.6.107 Mar 2020 12:45 minor feature: Released 1.6.1.
1.6.003 Mar 2020 07:05 minor feature: Released 1.6.0 Added PCRE2 regex matcher classes and updated reflex option --matcher=pcre2-perl; optimized RE/flex matcher find() with AVX/SSE2/NEON/AArch64; updated and improved regex converters.
1.5.804 Feb 2020 19:45 minor feature: Released 1.5.8 Added wunput() method; added lex.vim improved Flex and RE/flex Vim syntax highlighting; added yaml.l example; --freespace with --unicode when bracket lists contain a #; character class operators + , - , amp; now accept defined names as first operands and inverted character classes; indent anchor k now matches only when indent level is changed as documented.
1.5.720 Jan 2020 14:45 minor feature: Released 1.5.7 Expanded file encoding formats to include ISO-8859-2 to 16, MacRoman, KOI8; a in line() and span().
1.5.629 Dec 2019 03:16 minor feature: Released 1.5.6 Added new option --noindent to speed up pattern matching and lexical analysis by disabling indentation tracking in the input (also disables anchors i, j, and k); speed improvements.
1.5.524 Dec 2019 09:25 minor feature: is not a real regex, do not adjust it. . . Released 1.5.5.
1.5.426 Nov 2019 03:25 minor feature: Released 1.5.4.
1.5.322 Nov 2019 03:15 minor feature: Released 1.5.3.
1.5.215 Nov 2019 16:05 minor feature: Released 1.5.2.
1.5.111 Nov 2019 06:05 minor feature: Released 1.5.1.
1.5.006 Nov 2019 18:45 minor feature: Released 1.5.0 . Released 1.5.0. . Released 1.5.0. . Released 1.5.0. . Released 1.5.0.
1.4.424 Oct 2019 15:45 minor feature: Released 1.4.4 Improved option --flex for Flex compatibility; option --token-type with option --flex, now properly defines YY_NULL and yyterminate; AbstractMatcher::buffer(n) for large n; faster find().
1.4.330 Sep 2019 12:25 minor feature: Released 1.4.3.
1.4.216 Sep 2019 03:15 minor feature: Released 1.4.2.
1.4.111 Sep 2019 10:25 minor feature: Released 1.4.1.
1.4.005 Sep 2019 06:05 minor feature: Released 1.4.0 Added reflex option -S (--find) for efficient searching instead of scanning input (i.e. efficiently ignoring unmatched input) demonstrated with new findfast and findsearch examples, changed --nodefault to throw an exception when option --flex is not used and when the default rule is triggered.
1.3.818 Aug 2019 11:25 minor feature: Released 1.3.7 . Released 1.3.8.
1.3.614 Aug 2019 15:05 minor feature: Released 1.3.6 Added lexer and matcher buffer(base, size) methods and improved Flex-compatible yy_scan_buffer(base, size), these functions scan memory fast with zero copy overhead, added mmap.l example to scan an mmap-ed file fast with mmap(2) and buffer(base, size), other improvements.
1.3.510 Aug 2019 16:05 minor feature: Updated README . Updated README. . Released 1.3.5.
1.3.306 Aug 2019 06:05 minor feature: Released 1.3.3.
1.3.229 Jul 2019 03:15 minor feature: Released 1.3.2 Added defined name expansion in bracket lists for the union , intersection amp; amp;, and subtraction -- operations.
1.3.125 Jul 2019 21:24 major feature: Added subtractive start condition scoping with ``, added undent ` k` anchor to undo indenting changes ("undenting") with an example in `examples/indent2.l`, improved indent ` i` and dedent ` j` anchors and other improvements. Added `matcher().tabs(n)` to set tab size, used by `columno()` and indent ` i` and dedent ` j` anchors, new `reflex::Pattern` methods, other improvements.