Andreas Sæbjørnsen wrote:
Using the 'samples/cpp_tokens' example preprocessor with the following code: #define true 1 #define false 0 gives the following error:
test.C(1): error: ill formed preprocessor directive: #define
Preprocessing the same file with 'cpp' give no error. If any of the two lines in the file is removed the other line will cause an error. I guess the error occurs because 'true' is not an T_IDENTIFIER, but a T_TRUE. Could you imagine a clean fix to this issue?
You're right it's because T_TRUE and T_FALSE are not plain identifiers but C++ keywords and the token category used by Wave does reflect that. This problem additionally occurred at other places (such as #undef true) but all of them are fixed in CVS now (CVS::HEAD and CVS::RELEASE_1_34). A corresponding test case has been added. Thanks for reporting! Regards Hartmut