[cfe-dev] Get macro name or its length
Douglas Gregor
dgregor at apple.com
Thu Jun 30 11:42:30 PDT 2011
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