2013-05-16 35 views
3

我需要一個示例代碼來學習如何從clang :: ASTContext生成C++代碼。 我從C++代碼創建了ast,並對AST進行了一些更改,現在我想再次生成代碼。任何人都可以幫忙嗎?先謝謝了。如何從clang生成代碼:: ASTContext

回答

0

你不能使用stmt類的打印方法來從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"; 
}