【问题标题】:How do I generate an AST from a string of C++ using Clang?如何使用 Clang 从 C++ 字符串生成 AST?
【发布时间】:2016-09-13 13:08:04
【问题描述】:
我正在尝试使用 Clang 来操作 C++ 源代码,但我在发现 API 时遇到了麻烦。
我想获取一串 C++ 源代码并从中生成一个 AST;类似:
auto myAst = clang::parse("auto x = 1 + 1;");
是否有一个最小的工作示例?
【问题讨论】:
标签:
c++
parsing
clang
abstract-syntax-tree
【解决方案1】:
你可以试试下面的代码:
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";
}