4

我生成了一些 c++ 代码,并将其存储在字符串中,我想使用 libclang 从字符串构造一个 AST 树。怎么做?我不想串成额外的文件。

4

2 回答 2

4

您可以使用CXUnsavedFile将内存缓冲区传递给 libclang。

于 2013-05-10T19:03:41.510 回答
1

您可以尝试下一个代码:

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);
}
于 2016-11-17T03:40:59.557 回答