#compiler-construction #clang #libclang
Вопрос:
Мне нужно пересечь AST с помощью libclang. Все решения, которые я нашел, говорят мне сбросить AST в файл .ast, а затем создать translationUnit с этим файлом для преобразования.
Было бы здорово иметь возможность сделать следующее: Сгенерировать AST для некоторого кода программно, а затем использовать CXUnsavedFile для создания с его помощью translationUnit
Ответ №1:
Чтобы избежать зависимости от AST, загруженного в файл, clang_parseTranslationUnit можно использовать следующим образом
CXTranslationUnit unit = clang_parseTranslationUnit( CXIndex index, "path to file with code", nullptr, 0, nullptr, 0, CXTranslationUnit_None);