Implement (and test) support for macro expansion within conditional expressions.
authorCarl Worth <cworth@cworth.org>
Wed, 26 May 2010 18:15:21 +0000 (11:15 -0700)
committerCarl Worth <cworth@cworth.org>
Wed, 26 May 2010 18:15:21 +0000 (11:15 -0700)
commit8e82fcb070d5fae0ec2c763cee4cea225b459664
tree091bdde44189b37af31a65a30987ebc430ea7a39
parent16c1e980e2e3c8852ce9bea85afe094c24e420fa
Implement (and test) support for macro expansion within conditional expressions.

To do this we have split the existing "HASH_IF expression" into two
productions:

First is HASH_IF pp_tokens which simply constructs a list of tokens.

Then, with that resulting token list, we first evaluate all DEFINED
operator tokens, then expand all macros, and finally start lexing from
the resulting token list. This brings us to the second production,
IF_EXPANDED expression

This final production works just like our previous "HASH_IF
expression", evaluating a constant integer expression.

The new test (54) added for this case now passes.
glcpp-parse.y
glcpp.h
tests/054-if-with-macros.c [new file with mode: 0644]