[cfe-dev] Get macro name or its length
Andrey Tarasevich
tarasevich.andrey at googlemail.com
Mon Jul 4 10:41:58 PDT 2011
Thank you very much! It works perfect.
2011/6/30 Douglas Gregor <dgregor at apple.com>:
>
> On Jun 30, 2011, at 11:17 AM, Andrey Tarasevich wrote:
>
>> Hello
>>
>> assume following code;
>>
>> #define MACRO ((void*)0)
>>
>> int main()
>> {
>> int n;
>> int* p;
>> if(p == MACRO)
>> n = 1;
>> }
>>
>> During the AST generation I can get the expression p == MACRO and its
>> SourceLocation. The Begin and End of the SourceLocation will be
>> following 80 and 2147487899. Then I can get InstantiationInfo about
>> macro and begging and end of this info will be the same 85 and 85
>> according to the SourceManager class.
>> So my question is the following - is there any way to retrieve the
>> name of the MACRO?
>
> Lexer::getSpelling()
>
>> Or its length?
>
> Lexer::MeasureTokenLength()
>
>> How can I get position of the last
>> symbol of "MACRO" word in source file?
>
> Preprocessor::getLocForEndOfToken()
>
> - Doug
>
>
More information about the cfe-dev
mailing list