
On Mon, 30 Jul 2012 08:19:44 -0500, Hartmut Kaiser wrote:
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? 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. Regards, Paul Mensonides