Search code examples
compiler-constructionllvmclanglibclang

how to refresh AST in libclang


my code visit the AST generated by libclang, and insert some code into it. I want to get the new AST, at the same time I want to avoid writing code to file, Is there any api in libclang to do this?


Solution

  • You can use workaround - CXUnsavedFiles. Just place changed file in memory, add it to CXUnsavedFiles and pass to clang_reparseTranslationUnit.

    You also can look to Rewriter and other non-stable API of clang.