Add several tests where the defined value of a macro is (or looks like) a macro
authorCarl Worth <cworth@cworth.org>
Mon, 17 May 2010 20:33:10 +0000 (13:33 -0700)
committerCarl Worth <cworth@cworth.org>
Wed, 19 May 2010 05:09:57 +0000 (22:09 -0700)
commitd476db38fe21f5e6061a7d93dbd5a9991b91bf59
treebb77eac27e979f53781ffe8318bc38192f7af608
parent1a29500e72ac338c1fb243742aff1c167e1059db
Add several tests where the defined value of a macro is (or looks like) a macro

Many of these look quite similar to existing tests that are handled
correctly, yet none of these work. For example, in test 30 we have a
simple non-function macro "foo" that is defined as "bar(baz(success))"
and obviously non-function macro expansion has been working for a long
time.  Similarly, if we had text of "bar(baz(success))" it would be
expanded correctly as well.

But when this otherwise functioning text appears as the body of a
macro, things don't work at all.

This is pointing out a fundamental problem with the current
approach. The current code does a recursive expansion of a macro
definition, but this doesn't involve the parsing machinery, so it
can't actually handle things like an arbitrary nesting of parentheses.

The fix will require the parser to stuff macro values back into the
lexer to get at all of the existing machinery when expanding macros.
tests/027-define-chain-obj-to-func.c [new file with mode: 0644]
tests/028-define-chain-obj-to-non-func.c [new file with mode: 0644]
tests/029-define-chain-obj-to-func-with-args.c [new file with mode: 0644]
tests/030-define-chain-obj-to-func-compose.c [new file with mode: 0644]
tests/031-define-chain-func-to-func-compose.c [new file with mode: 0644]