【问题标题】:how to Generate code from clang::ASTContext如何从 clang::ASTContext 生成代码
【发布时间】:2013-05-16 15:40:53
【问题描述】:

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

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

【问题讨论】:

    标签: c++ llvm clang libclang


    【解决方案1】:

    您不能使用 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";
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多