Robiłem trochę pracy przy analizie projektów Swift przy użyciu ich AST i chciałbym wiedzieć, czy jest możliwe wygenerowanie go w jakiś sposób podczas budowania projektu Swift z Xcode.Czy można zrzucić AST podczas budowania projektu Xcode?
W tej chwili jestem w stanie wydrukować AST na terminalu podczas uruchamiania polecenia swiftc -dump-ast
dla pojedynczych plików i prostych projektów. Jednak korzystanie z niego w bardziej złożonych projektach staje się trudniejsze.
Z tego powodu chciałbym użyć xcode. Próbowałem już przekazać flagę -dump-ast
do kompilatora w Ustawieniach kompilacji> Kompilator Swift - Flagi niestandardowe> Inne flagi Swift. Flaga rzeczywiście została przekazana do kompilatora (wyjście informuje o wywołaniu swiftc z flagą -dump-ast podczas budowania). Próbowałem zbudować projekt zarówno za pomocą kodu xcode, jak i za pomocą poniższej komendy xcodebuild
, ale ani nie odrzucono ast.
xcodebuild -target 'CompilingTest.xcodeproj' -scheme 'CompilingTest' -
configuration "Debug" -sdk iphoneos -arch "armv7"
CONFIGURATION_BUILD_DIR="TestBuild" ONLY_ACTIVE_ARCH=NO
Teraz jestem rozumując, że proces budowania obu stanowisk Xcode za przekierowania wyjścia swiftc do jakiegoś pliku, lub wycisza go jakoś. jakieś pomysły?
Każda pomoc zostanie bardzo doceniona.
Witaj Keith, dzięki za odpowiedź. Byłem w stanie (z powrotem, kiedy zadałem to pytanie) zrzucić AST, kompilując własny toolchain, który zawsze drukował zrzut do pliku wyjściowego. To mi dobrze służyło. Twoje rozwiązanie jest jednak znacznie prostsze, działało dla prostego projektu (właśnie wykonałem jeden test, aby zobaczyć wynik) i jest bardziej stabilne (musiałem stale aktualizować toolchain poprzez szybkie zmiany wersji). Dzięki za pomoc! –