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.