用libclang从字符串构造AST

时间:2013-05-10 16:30:09

标签: compiler-construction llvm clang jit libclang

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

2 个答案:

答案 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);
}