[ANN] major release of RE/flex 1.2.8

Robert van Engelen <ravengelen@gmail.com>
Tue, 16 Jul 2019 10:25:12 -0400 (EDT)

          From comp.compilers

Related articles
[ANN] major release of RE/flex 1.2.8 ravengelen@gmail.com (Robert van Engelen) (2019-07-16)
| List of all articles for this month |

From: Robert van Engelen <ravengelen@gmail.com>
Newsgroups: comp.compilers
Date: Tue, 16 Jul 2019 10:25:12 -0400 (EDT)
Organization: Compilers Central
Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="86781"; mail-complaints-to="abuse@iecc.com"
Keywords: lex, available
Posted-Date: 16 Jul 2019 10:25:12 EDT

Hi all,


I'm pleased to announce a major release of RE/flex 1.2.8. Thanks to many
users of RE/flex and their feedback, we improved RE/flex, added new features,
and included new examples.


RE/flex is the regex-centric, fast lexical analyzer generator for C++.
RE/flex can be used as a faster and reliable drop-in replacement of Flex++.




RE/flex offers the following features, to name a few:


- Compatible with Flex to eliminate a learning curve, making a transition to
RE/flex frustration-free.


- Generates reusable source code that is easy to understand.


- Works with Bison and supports reentrant, bison-bridge, bison-locations,
Bison 3.0 C++ interface `%skeleton "lalr1.cc"` and Bison complete symbols.


- Includes many examples, such as a tokenizer for C/C++ source code, a
tokenizer for Python source code, a tokenizer for Java source code, and more.


- Extensive documentation included.


- Full Unicode support with Unicode property matching \p{C} and C++11, Java,
C#, and Python Unicode properties for identifier name matching.


- Indent/nodent/dedent anchors to match text with indentation, including \t
(tab) adjustments.


- Lazy quantifiers, so hacks are no longer needed to work around greedy
repetitions in Flex.


- Word boundary anchors.


- Freespace mode option to improve readability of lexer specifications.


- %class and %init directives to customize the generated Lexer classes.


- %include to modularize lexer specifications.


- Includes an extensible hierarchy of pattern matcher engines, with a choice
of regex engines, including the RE/flex regex engine and Boost.Regex.


- Generates clean source code that defines an thread-safe (reentrant) C++
Lexer class derived from an abstract lexer class template, parameterized by
matcher class type.


- Multiple lexer classes can be combined and used in one application, e.g. by
multiple threads.


- Configurable Lexer class generation to customize the interface for various
parsers, including Yacc and Bison.


- Generates scanners for lexical analysis on files, C++ streams, and (wide)
strings, with automatic fast conversion of UTF-16/32 to UTF-8 for matching
Unicode on UTF-encoded input files.


- Generates lex.yy.cpp files while Flex++ generates lex.yy.cc files, to
distinguish the generated files.


- Generates Graphviz files to visualize FSMs with the Graphviz dot tool.




RE/flex is available on GitHub and SourceForge:


https://github.com/Genivia/RE-flex
https://sourceforge.net/projects/re-flex


Documentation:


https://re-flex.sourceforge.net
Https://www.genivia.com/doc/reflex/index.html


Give us your feedback, comments, suggestions.


Thanks for using RE/flex!!


- Robert


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.