A high-performance C++ regex library and lexical analyzer generator with Unicode support. Extends Flex++ with Unicode support, indent/dedent anchors, lazy quantifiers, functions for lex and syntax error reporting and more. Seamlessly integrates with Bison and other parsers.
The %init{ ... } code block cannot be used to initialize injected Lexer class members of type reference, which must be initialized in the constructor member initializer list.
Proposal: add %option ctorinit="initializer, initializer, ..." to add injected member initializers to the constructor's member initializer list, mirroring the existing option %option ctorarg="argument, argument, ..." for adding argument declarations to the constructor.
The
%init{ ... }
code block cannot be used to initialize injected Lexer class members of type reference, which must be initialized in the constructor member initializer list.Proposal: add
%option ctorinit="initializer, initializer, ..."
to add injected member initializers to the constructor's member initializer list, mirroring the existing option%option ctorarg="argument, argument, ..."
for adding argument declarations to the constructor.Example:
%class{ int& refint; bool& refbool; } %option ctorarg="int& ri, bool& rb" %option ctorinit="refint(ri), refbool(rb)"