flexc++

Flex-style scanner generator for C++

Install

All systems
curl cmd.cat/flexc++.sh
Debian Debian
apt-get install flexc++
Ubuntu
apt-get install flexc++
image/svg+xml Kali Linux
apt-get install flexc++
Windows (WSL2)
sudo apt-get update sudo apt-get install flexc++
Raspbian
apt-get install flexc++

flexc++

Flex-style scanner generator for C++

Flexc++ was designed after `flex'. Flexc++ offers as compared to flex's C++ option a cleaner class-design. Flexc++ generates a scanner class that is ready for use, as well as a member function producing the lexical scanner tokens (lex()). The class can easily be provided with additional members without the need for polymorphic functions. Consequently, classes generated by flexc++ have no virtual members and actually have but one public member: lex(), replacing the old-style flex and flex++ yylex() function. Flexc++ offers many options, among which an option to define classes generated by flexc++ in a separate namespace. This allows developers to define additional symbols, even outside of the class generated by flexc++, without encountering name-collision problems. With flexc++, artificial means to prevent name-collisions, like the yy-conventions used by flex and flex++ are no longer required. Flexc++ generates C++ code. If C code is required, flex should be used. Flexc++'s grammar requirements are highly compatible with flex's requirements, so converting a flex grammar into a flexc++ grammar should be fairly simple. In addition to the flexc++ scanner generator itself and several skeleton files, the package contains an extensive man-page, as well as a full manual rewritten after the original flex manual, and several examples.