
Well, thinking about it... The trace already (implicitly) has the information about a macro name being blue painted. The rescanning [...] output gives you the scope for which the macro under expansion is not available for further expansion (e.g. it is marked blue).
Hartmut, does Wave still use a recursive expansion model?
Yes. I have not re-implemented the macro-expansion since.
If so, while Wave emulates the correct results well, it gets there in a fashion that isn't technically correct. Debugging preprocessor metaprogramming naturally exposes that internal process.
The theoretical process is essentially a stream-editing process with some (implementation-specific) method of dealing with the hidesets (i.e. virtual tokens or whatever). What would be ideal for debugging is a preprocessor that implemented this directly (such as the algorithm I posted a while back--which is nowhere near efficient enough for a real preprocessor). Otherwise, you are 1) really only debugging against Wave instead of against a standard and 2) learning the wrong things.
Sure, I agree. However as we know, the differences are limited to a tiny set of corner cases. Regards Hartmut --------------- http://boost-spirit.com http://stellar.cct.lsu.edu