如何从clang :: ASTContext生成代码

时间:2013-05-16 15:40:53

标签: c++ llvm clang libclang

我需要一个示例代码来学习如何从clang :: ASTContext生成C ++代码。 我从c ++代码创建了ast,我在AST中做了一些更改,现在我想再次生成代码。有人可以帮忙吗?谢谢你提前。

1 个答案:

答案 0 :(得分:0)

您无法使用 Stmt 类的print方法从ast生成代码。

virtual bool VisitStmt(Stmt *st){
    std::string SStr;
    llvm::raw_string_ostream S(SStr);
    st->printPretty(S, nullptr, PrintingPolicy(LangOptions()));
    const std::string &Str = S.str();
    llvm::errs() << "---------begin----------\n";
    llvm::errs() << Str << "\n";
    llvm::errs() << "---------end----------\n";
}