Rewrite macro handling to support function-like macro invocation in macro values
authorCarl Worth <cworth@cworth.org>
Wed, 19 May 2010 05:10:04 +0000 (22:10 -0700)
committerCarl Worth <cworth@cworth.org>
Wed, 19 May 2010 05:10:04 +0000 (22:10 -0700)
commita807fb72c45888b5ff915aa08d8bd10069be4a2e
treeb324a1585d64d7e61979ce38c9f20d803446c3f5
parentd476db38fe21f5e6061a7d93dbd5a9991b91bf59
Rewrite macro handling to support function-like macro invocation in macro values

The rewrite her discards the functions that did direct, recursive
expansion of macro values. Instead, the parser now pushes the macro
definition string over to a stack of buffers for the lexer. This way,
macro expansion gets access to all parsing machinery.

This isn't a small change, but the result is simpler than before (I
think). It passes the entire test suite, including the four tests
added with the previous commit that were failing before.
glcpp-lex.l
glcpp-parse.y
glcpp.h
xtalloc.c