美文网首页专注iOS开发的小渣渣
swift-获取sil、ast编译中间产物文件

swift-获取sil、ast编译中间产物文件

作者: Henry________ | 来源:发表于2021-01-14 15:09 被阅读0次

获取sil文件

在当前文件路径下使用该命令:

// 单纯转换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文件,silcpp都是编译之后的产物
  • sil语法官方文档,阅读sil可以更加深刻的理解swift的一些内部机制。对于学习swift很有帮助。

获取ast抽象语法树

swiftc  -dump-ast main.swift ast抽象语法树
  • 这是在sil的上一步生成的文件,主要是做一些语法、词法的分析。

相关文章

  • swift-获取sil、ast编译中间产物文件

    获取sil文件 从swift文件到可执行文件.o的整个编译过程。 swift编译过程参考[https://trin...

  • 类的加载

    可执行程序生成过程 预编译:展开宏,头文件,生成.i文件 编译:生成抽象语法树AST,AST 是抽象语法树,结构上...

  • 逃逸闭包、非逃逸闭包

    在开始逃逸闭包与非逃逸闭包之前,先普及一个知识点,即如果编译成SIL文件: 编译成SIL文件: swift使用的编...

  • swiftc编译

    1.swift编译过程 swift代码通过解析编译成中间语法树(AST)再生成中间语言 再通过IR工具生成IR中间...

  • Swift类、对象、属性

    Swift编译简介 SIL介绍 SIL是Swift Intermediate Language的简写,SIL会对S...

  • C#【唐老狮】反射

    反射 反射概念和关键类TYpe 程序集经由编译器编译得到,进一步编译执行的中间产物dll文件扩展:C语言编译过程预...

  • swiftc:强大的命令行工具

    C和OC通过Clang编译器前端编译成LLVM IR中间层表示 Swift会先编译成Swift AST,通过swi...

  • Swift day-1

    生成语法树:swiftc-dump-ast main.swift 生成最简洁的SIL代码:swiftc -emit...

  • 生成Swift中间代码的方法

    1、生成语法分析树: 2、生成SIL中间代码文件. 3、生成强制PASS之后的SIL代码,这经常是你想要看到的部分...

  • Internal关键字

    同一程序集的文件中可访问,程序集是经由编译器编译得到的,供CLR进一步编译执行的那个中间产物,在WINDOWS系统...

网友评论

    本文标题:swift-获取sil、ast编译中间产物文件

    本文链接:https://www.haomeiwen.com/subject/iisvaktx.html