3

我需要一个示例代码来学习如何从 clang::ASTContext 生成 C++ 代码。

我从 c++ 代码创建了 ast,并在 AST 中进行了一些更改,现在我想再次生成代码。

4

1 回答 1

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";
}
于 2016-10-27T07:21:08.487 回答