Request for libClang: CXCursor_UnaryOperator CXCursor_BinaryOperator spelling.

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Request for libClang: CXCursor_UnaryOperator CXCursor_BinaryOperator spelling.

Kristof Beyls via cfe-dev
This message is a request to libClang developers. I'm not sure this is the right mailing list to ask for.

I'm using libClang API (simple C), not libTooling (C++).
I'd like to get the cursor spelling of unary (CXCursor_UnaryOperator) and binary (CXCursor_BinaryOperator) operators correctly.
Because clang_getCursorSpelling returns an empty string for these cursor types, I have implemented functions that get the source range of the operator (only the operator, not the operands), and get the token in the source range.
The problem comes when the expresion involving the operators is inside a macro: the functions return the macro name.

Example:
#define MACRO1(a,b,v,c) case a: v = b*c; break;
static void function(int a)
{
    int b;
    switch(a)
    {
        MACRO1(1, 7, b, 6);
        case 2: b = 3*4; break;
    }
}

In the first 'case', my function returns 'MACRO1' for both operators (= and *). In the second 'case' my function returns '=' and '*'.

Dear libClang developer, can you make that function clang_getCursorSpelling returns the spelling of unary and binary operators (+ - * & = += -= ...)?

Thanks.


_______________________________________________
cfe-dev mailing list
[hidden email]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev