[cfe-dev] how to get AST content from CXCursor?
Jacob Carlborg via cfe-dev
cfe-dev at lists.llvm.org
Thu Oct 25 02:31:05 PDT 2018
On 2018-10-25 10:02, Lou Wynn via cfe-dev wrote:
> Hi,
>
> I'm traversing an AST by using the CXCursorVisitor. How can I get the
> node content from the cursor? For example, for a CXCursor_BinaryOperator
> cursor, I'd like to get the binary operator itself. I guess that the
> information is included in the CXCursor struct, but I haven't found
> examples of how to use it? Any help is appreciated.
I'm not sure if there's a better way but you can get the tokens of the
expression. Example, assuming the current cursor is the binary operator:
1. Get the translation unit using clang_Cursor_getTranslationUnit
2. Get the source extent of the cursor using clang_getCursorExtent
3. Tokenize the source extent using clang_tokenize, this will give you
an array of tokens
4. For each token:
1. Get the token kind using clang_getTokenKind
2. Get the token spelling using clang_getTokenSpelling
5. Find the token with the kind CXToken_Punctuation
6. The spelling for this token will contain the binary operator as a string
--
/Jacob Carlborg
More information about the cfe-dev
mailing list