Flexc++ was designed after `flex'. Flexc++ offers a cleaner class design and requires simpler specification files than offered by flex's C++ option.
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 resorting to polymorphic functions.
Consequently, classes generated by flexc++ have no virtual members and actually have very few public members, the main one being 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.
Flexc++ does not use artificial means
to prevent name-collisions, like the yy-conventions used by flex and flex++ and supports very simple input-file switching mechanisms.
Nice, thank you