如何使用 libclang 将 AST 作为字符串获取?

How do I get AST as string using libclang?

我需要使用 libclang 横向 AST。 我找到的所有解决方案都告诉我将 AST 转储到 .ast 文件中,然后使用该文件创建 translationUnit 以进行遍历。

如果能做到以下几点就好了: 以编程方式为一些代码生成 AST,然后使用 CXUnsavedFile 创建 translationUnit

为了避免依赖转储到文件中的 AST, clang_parseTranslationUnit可以这样使用

CXTranslationUnit unit = clang_parseTranslationUnit(
CXIndex index,
"path to file with code", nullptr, 0,
nullptr, 0,
CXTranslationUnit_None);