Flexc++ is a lexical scanner generator for C++ and is very similar to flex and flex++, written by Vern Paxson. The goal was to create a similar program, but to completely implement it in C++. Most flex / flex++ grammars should be usable with flexc++, with minor adjustments.
Differences with flex/flex++
Although flexc++ tries to be as much compatible with flex as possible, there are some differences.
-Obsolete symbols
All DECLARATIONS and DEFINE symbols not listed above but defined in flex++ are obsolete with flexc++. In particular, there is no %header{ ... %} section anymore. Also, all DEFINE symbols related to member functions are now obsolete. There is no need for these symbols anymore as they can simply be declared in the class header file and defined elsewhere.
-Code blocks
Flexc++ does not support code blocks, except for multi-line actions. Code previously placed in code blocks can now be placed in methods.
-User code
Related to the previous section 2.2, flexc++ does not support a last section of the input file for user code.
-Comments
Flexc++ is a bit more flexible in taking comments, for more information see section 4.3
What is new in this release:
- Cleanup of debug messages in lex.cc
- Check if accepting state corresponds to lookahead. Fixes bug reported by Selwin van Dijk.
- Use icmake to build flexc++ and run test suite. Ccbuild is now only used to update the CLASSES file.
- support added for operators {+} and {-} in patterns.
- Major overhaul of stream switching: it now uses a StreamInfo class with (extra) stream information, configurable by %option streaminfoclassname="...". See documentation for more information.
Requirements:
- icmake
Comments not found