Я занимался анализом проектов Swift с использованием своих АСТ, и я хотел бы знать, можно ли его каким-то образом создать при создании проекта Swift с помощью Xcode.Возможно ли сбросить AST при построении проекта Xcode?
Прямо сейчас, я могу распечатать AST на терминале при запуске команды swiftc -dump-ast
для отдельных файлов и простых проектов. Однако становится сложнее использовать его для более сложных проектов.
По этой причине я хотел бы использовать xcode. Я уже пытался передать флаг -dump-ast
компилятору в настройках сборки> Swift Compiler - пользовательские флаги> другие быстрые флаги. Флаг действительно был передан компилятору (на выходе выводится сообщение о вызове swiftc с флагом -dump-ast при создании). Я попытался построить проект как с xcode, так и с помощью команды xcodebuild
ниже, но не сбрасывал ast.
xcodebuild -target 'CompilingTest.xcodeproj' -scheme 'CompilingTest' -
configuration "Debug" -sdk iphoneos -arch "armv7"
CONFIGURATION_BUILD_DIR="TestBuild" ONLY_ACTIVE_ARCH=NO
Теперь, я рассуждал, что процесс сборки либо Xcode в перенаправляет вывод swiftc на некоторый файл, или заглушает его каким-то образом. Есть предположения?
Любая помощь была бы принята с благодарностью.
Здравствуйте, Кит, спасибо за ваш ответ. Я смог (назад, когда я задал вопрос) сбросить AST, скомпилировав собственную инструментальную цепочку, которая всегда печатала дамп в выходной файл. Это служило мне хорошо. Однако ваше решение намного проще, работает для простого проекта (я только что сделал один тест, чтобы увидеть результат) и более стабилен (мне пришлось постоянно обновлять инструментальную цепочку с помощью быстрых изменений версии). Спасибо за помощь! –