Я работаю над использованием Clang Bingings Python для прохождения кода C / C ++ в AST. Как я могу получить структуру AST на основе дерева?Некоторые указатели на то, с чего начать, учебные пособия или что-нибудь в этом отношении будут очень полезны !!!
Я нашел очень полезную работу (Если вы хотите проверить это, вот ссылка: https://www.chess.com/blog/lockijazz/using-python-to-traverse-and-modify-clang-s-ast-tree) и попробовал его код, к сожалению, я не получил полезного вывода.
function_calls = []
function_declarations = []
def traverse(node):
for child in node.get_children():
traverse(child)
if node.type == clang.cindex.CursorKind.CALL_EXPR:
function_calls.append(node)
if node.type == clang.cindex.CursorKind.FUNCTION_DECL:
function_declarations.append(node)
print 'Found %s [line=%s, col=%s]' % (node.displayname, node.location.line, node.location.column)
clang.cindex.Config.set_library_path("/Users/tomgong/Desktop/build/lib")
index = clang.cindex.Index.create()
tu = index.parse(sys.argv[1])
root = tu.cursor
traverse(root)