| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| flexc++_2.00.00.orig.tar.gz | 2014-02-09 | 4.5 MB | |
| flexc++_2.00.00-1_i386.deb | 2014-02-09 | 625.4 kB | |
| README | 2014-02-09 | 3.0 kB | |
| Totals: 3 Items | 5.1 MB | 0 | |
flexc++ (2.00.00)
* Completely re-implemented look-ahead operator (LOP) handling. The LOP is
now handled through mini-scanners, the previously used class TailCount and
the tail count Flag enum are no longer required and were removed from the
implementation. See also parser/README.grammar.
* Null-matching patterns using the look-ahead operator (e.g. a*/b) are
dangerous, and can take the generated scanner into a non-terminating loop.
When flexc++ detects such patterns it generates a warning. These warnings
can be suppressed by writing
//%nowarn
on the line immediately preceding the potentially null-matching pattern
using the look-ahead operator.
* Raw string literals, as defined by C++11, are supported
* NOTE WELL:
- when using flexc++ >= 2.00.00 to re-generate lex.cc and
ScannerBase.h, existing object files defining and using the
Scanner object should be recompiled, as flexc++ 2.00.00 uses a
different data-member organization in its ScannerBase class.
- new Input-class requirements:
size_t Input::nPending() const
must return the current number of pending (i.e., pushed back)
input characters;
void Input::setPending(size_t size)
must remove any initial number of pending characters, reducing
the number of pending characters to size.
The lexical scanner always passes the value received from
nPending() to setPending(), without calling Input::get() in
between.
- Character classes now fully support escape sequences. A \- inside a
character class indicates a litteral - and is not used to define a
character range. Refer to the man-page (flexc++input(7)) and/or to
the manual for further details.
* A second (optional) %% line in flexc++'s input file ends input file
processing. To specify a regex starting with %% surround it with double
quotes or indent it by at least one blank space.
* Warnings added in release 1.06.00 (issued when options or directives are
specified which are inconsistent with existing files, and which are issued
for the `baseclass-header', `class-name', `implementation-header', and
`namespace'options/directives) are now reported as errors, as flexc++
cannot simply ignore them since ignoring them may conflict with the
contents of the generated 'lex.cc' and 'Scannerbase.h' files.
* Repaired a bug introduced in 1.02, causing parser failures for letter and
digits in REs in the context of start conditions. Cause: after '>' in
parser/inc/msspec multiple letters/digits must be returned as individual
characters. Realized by calling d_scanner.multiAsChar() at ms_spec's
action block.
* Added several new regression tests
-- Frank B. Brokken <f.b.brokken@rug.nl> Sun, 09 Feb 2014 13:32:22 +0100