我正在使用clang绑定的Python来遍历C/C++代码并生成AST结构,如何获得基于树形结构的AST结构?
在这方面开始的指针、教程或任何相关信息都将非常有帮助!
我发现了一份非常有用的工作(如果您想查看,请访问以下链接:https://www.chess.com/blog/lockijazz/using-python-to-traverse-and-modify-clang-s-ast-tree),并尝试了他的代码,但不幸的是我没有得到有用的输出。
在这方面开始的指针、教程或任何相关信息都将非常有帮助!
我发现了一份非常有用的工作(如果您想查看,请访问以下链接: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)