4

いくつかの C++ コードを生成し、それを文字列に格納します。libclang を使用して文字列から AST ツリーを構築したいと考えています。どうやってするの?余分なファイルに文字列を入れたくありません。

4

2 に答える 2

4

CXUnsavedFile を使用して、メモリ内バッファを libclang に渡すことができます。

于 2013-05-10T19:03:41.510 に答える
1

次のコードなどを試すことができます。

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);
}
于 2016-11-17T03:40:59.557 に答える