获取sil文件
- 从
swift
文件到可执行文件.o
的整个编译过程。 - swift编译过程参考
在当前文件路径下使用该命令:
代码语言:javascript复制// 单纯转换sil
swiftc -emit-sil main.swift > ./main.sil
// 反解sil中混淆的字符串
xcrun swift-demangle s4main1tAA10TeachModelCvp
// 完整版
swiftc -emit-sil `文件名`.swift | xcrun swift-demangle > `文件名`.sil && open `文件名`.sil
- sil文件相当于OC探索中的
cpp
文件,sil
、cpp
都是编译之后的产物 - sil语法官方文档,阅读
sil
可以更加深刻的理解swift的一些内部机制。对于学习swift很有帮助。
获取ast抽象语法树
代码语言:javascript复制swiftc -dump-ast main.swift ast抽象语法树
- 这是在
sil
的上一步生成的文件,主要是做一些语法、词法的分析。