[cfe-dev] Preprocessed loc/token retrieval dream (almost) come true

Abramo Bagnara abramo.bagnara at gmail.com
Tue Oct 4 09:27:56 PDT 2011


Il 03/10/2011 21:10, Argyrios Kyrtzidis ha scritto:
> On Oct 3, 2011, at 11:57 AM, Abramo Bagnara wrote:
> 
>> Il 03/10/2011 20:25, Argyrios Kyrtzidis ha scritto:
>>> Hi Abramo,
>>>
>>> Sorry to disappoint you but I think the dream remains unfulfilled ;-)
>>
>> You make me sad for a few minutes... but let try to find a solution: I
>> think that to get preprocessed tokens has too many benefits to stop only
>> a few steps before to accomplish that.
>>
>> Let me know if you don't see strong benefits in the possibility to get
>> the preprocessed tokens in a range.
>>
>> First the easy part:
>>
>>> Apart from that, this is trying to deal with macro expansions; how are
>> you handling preprocessor directives ? e..g:
>>>
>>> X
>>> #if  ...
>>> Y
>>> #else
>>> X
>>> #endif
>>>
>>> How do you find out what comes after 'X' if you don't preprocess ?
>>
>> Preprocessor callbacks give us complete info about skipped area so the
>> helper just have to take in account that.
>>
>> The same is true for file changes:
>>
>> X
>> #include "..."
>> Y
> 
> How about investigating whether it is possible/viable to extend the preprocessor callbacks in a way that you can get at the macro expanded locations/tokens in a reliable way ?

One way might be to call a post expansion callback passing the expanded
tokens, but I'm not sure this might be accepted in trunk...

Do you have better ideas?




More information about the cfe-dev mailing list