如何使用Clang从C++字符串生成AST?

11

我想使用Clang来操作C++源代码,但是我在寻找API时遇到了困难。

我想从一个C++源代码字符串中生成AST,类似于:

auto myAst = clang::parse("auto x = 1 + 1;"); 

这个有最小工作示例吗?


你可以尝试使用这个教程:https://github.com/loarabia/Clang-tutorial/wiki/TutorialOrig - LookAheadAtYourTypes
一种可以解析任意 C++ 片段的替代方案:https://dev59.com/mmox5IYBdhLWcg3wtmc1#9024163 - Ira Baxter
1个回答

2
您可以尝试以下代码:

std::unique_ptr<ASTUnit> AST(tooling::buildASTFromCode("auto x = 1 + 1;"));
TranslationUnitDecl *DC = AST->getASTContext().getTranslationUnitDecl();
if (DC) {
   llvm::errs() << "---------dump begin----------\n";
   DC->dump();
   llvm::errs() << "---------dump end----------\n";
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接