2016-05-17 18 views
10

Tôi đang cố gắng sử dụng Clang để thao tác mã nguồn C++, nhưng tôi đang gặp khó khăn khi khám phá API.Làm cách nào để tạo AST từ chuỗi C++ bằng Clang?

Tôi muốn lấy một chuỗi mã nguồn C++ và tạo AST từ nó; một cái gì đó như:

auto myAst = clang::parse("auto x = 1 + 1;"); 

Có ví dụ làm việc tối thiểu về điều này không?

+0

Bạn có thể thử với hướng dẫn này: https://github.com/loarabia/Clang-tutorial/wiki/TutorialOrig – tomekpe

+0

Một alternativethat có thể phân tích các mảnh tùy ý của C++ : http://stackoverflow.com/a/9024163/120163 –

Trả lời

2

Bạn có thể thử các mã tiếp theo:

std::unique_ptr<ASTUnit> AST(tooling::buildASTFromCode("auto x = 1 + 1;")); 
TranslationUnitDecl *DC = AST->getASTContext().getTranslationUnitDecl(); 
if (DC) { 
    llvm::errs() << "---------dump begin----------\n"; 
    DC->dump(); 
    llvm::errs() << "---------dump end----------\n"; 
} 
Các vấn đề liên quan