我生成一些c ++代码,并将其存储在字符串中,我想使用libclang从字符串构造一个AST树。怎么做?我不想把它串成额外的文件。
答案 0 :(得分:2)
您可以使用CXUnsavedFile将内存缓冲区传递给libclang。
答案 1 :(得分:0)
您可以尝试下一个代码:
std::unique_ptr<ASTUnit> AST(tooling::buildASTFromCode("int x=10;x++;"));
TranslationUnitDecl *DC = AST->getASTContext().getTranslationUnitDecl();
if (DC) {
llvm::errs() << "---------dump begin----------\n";
DC->dump();
llvm::errs() << "---------dump end----------\n";
visitor.TraverseDecl(DC);
}