www.pudn.com > cppcc.rar > NEWS


This file documents the user-visible changes for each release of CppCC. For
other minor changes, see the ChangeLog.

Changes from 0.0.5 to 0.0.6
---------------------------

Fixed a bug causing a core dump when a token contains the '\0' character.

Removed the "using namespace std" at the beginning of the generated sources
(some complained about namespace polution). Note that for this reason you must
either use std::string in token actions/parser or add a "using std::string"
clause in the preeamble of the scanner/parser/token. The generated code only
uses fully qualified names of the form "std::string".

Added an option to allow hexadecimal escape sequences instead of octal.

Fixed a leak in the scanner (the token ring and buffer used to not get
deallocated upon scanner object destruction).

Changes from 0.0.4 to 0.0.5
---------------------------

Added a few new options:

STRING_CLASS which allows you to specify something different that std::string
for representing token images. See the manual for the minimum requirements
such a class must meet in order to be usable in cppcc.

NAMESPACE_NAME which allows you to change the name of the enclosing namespace,
in case you want to call it something else than cppcc (e.g. if you want to
build together several parsers in your project). If you don't specify a value
for this option, "cppcc" will be sued as in the previous version.

SRC_EXTENSION, HDR_EXTENSION this one is mainly for win32 users, where cpp and
are easier recognizable by some widely spread compiler on those platforms. The
extension string should not include the dot.

Changes from 0.0.3 to 0.0.4 (i guess :)
---------------------------

Added a way for forcing the usercode associated to an exapnsion to be also
included into the lookahead code. This comes in handy when that user code
influences the scanner (and thus while in lookahead the scanner wouldn't do
the right thing). Say for instance you have this expansion:

 { scanner.pushState(...); }  ....

The lookahead code would not normally include the code that makes the scanner
go to the other lexical state, which is most certainly not what you want. To
convince it do the right thing, add a '!' after the code, like this:

 { scanner.pushState(...); }!  ....


Changes from 0.0.2 to 0.0.3
---------------------------

The OWN_STRINGS option is now obsolete. Token objects will retain a pointer
into the internal buffer until the image is requested (this will hopefully
reduce the speed loss for non-LL(1) parsers). To obtain the image of a token,
the image() method must be called (this method replaces the image field, and
its result is _always_ a string& which can be modified in any way by the user
code).

The tokenImage and tokenLen variables available in the token actions have been
removed. Their replacemenets are token->image() and token.length,
respectively.

The access modifiers are reset to "private" (the class' default) at the
beginning of each usercode block found in the grammar file.