I am writing a simple tool to help with refactoring the source code of our application. I would like to parse C++ code based on wxWidgets library, which defines GUI and produce XML .ui
file to use with Qt. I need to get all function calls and value of arguments.
Currently I am toying with Python bindings to Clang, using the example code below I get the tokens and their kind and location, but the cursor kind is always CursorKind.INVALID_FILE
.
import sys
import clang.cindexdef find_typerefs(node):""" Find all references to the type named 'typename'"""for t in node.get_tokens():if not node.location.file != sys.argv[1]:continueif t.kind.value != 0 and t.kind.value != 1 and t.kind.value != 4:print t.spellingprint t.locationprint t.cursor.kindprint t.kindprint "\n"index = clang.cindex.Index.create()
tu = index.parse(sys.argv[1])
print 'Translation unit:', tu.spelling
find_typerefs(tu.cursor)
What is the correct way to determine the cursor kind?
I couldn't find any documentation except few blog posts, but they were outdated or not covering this topic. I was neither unable to work it out from examples that came with Clang .