00:00
OK啊,我们已经写好了一部分代码,那么下面呢,我们啊,先将这个代码呢,进行一些更好的封装啊,进行一些模化抽取,我们来看啊,我呢把这代码呢复制一份啊,那么确保了将来大家呢能跟上进度啊,不至于看不懂,我们后面代码复制一份啊,那么这个代码呢,就是一啊,就是之前的未模块化版本之前的代码,我叫一吧,OK,那么我们在其这个派里面呢,接着去开发啊,我们进萌化,萌化其实很简单,就是我们的派肯定抽取出来,我们comp呢肯定要抽取出来,所以我们来定义一个叫comp。对吧,DGS,那么我们派代码呢,肯定要写在这啊,所以CTRLCTRLC啊全部复制过来了,就是把我们的C派给干掉。对吧,然后呢,最终暴露出去的是对象。好,那这里面呢,就要除了除了外,Pad这些东西呢,全都要干掉了,Comp,要拜拜了,所以这个模块呢,它要做的就是引入这个compd,然后在这里使用,对吧。
01:03
好,这是第一步啊,这第一步OK,那么compa里面呢,也有很多这个ible干的活,所以我们在Bible去干过活的,这个东西呢,也单独提升文件,比如叫passer pass给J。啊了,我们小写啊parl OK,那么PAR呢,我们也是把代码呢,到时候一起弄过来啊,OK,它呢就定义一个parl,要解析一个对象啊,在这里面定义我们的三步啊三步,然后呢把它暴露出去。OK,第哪三步呢?第一个就是获取那个ST抽象语法输入代码,OK,我们可以把这个抽象语法的输入代码呢拿过来。答案啊,那么获取出现语法书代码呢,就是读取文件,然后通过BA pass去解析得到抽现语法书,所以把这一块代码呢拿过来选出C。拿到这个pass中来很容易好,最终呢,把这个抽象语法书呢给ST return出去好,这里呢就将其解析成抽象语法数,好这里是读取文件。
02:11
好,那么这个方法呢,就是获取抽象语法输入个代码,那么在这个方法里面我能看到它需要引入一些依赖,比如说这个fire pass也需要用个传进来,同时呢,它需要引入bab和这个FS相关的一些模块,所以呢,我们干脆啊,把这些代码呢,全都S全部解决过来啊,把一代全都解决过来,OK,那么第一个方法就定义好了,用来获取出现语法书代码啊。就是将文件解析成抽取函数。进行ST啊,OK,那么第二步我们开始我们要获取依赖。对吧?那么我们就get depends。喂。那么在这里面我们来去写方法啊。
03:03
好往下走,我们来获取一代,获取一代呢,其实就是这个代码啊,定义一个容器,然后最终呢,通过travels去去做啊,我们把这个代码复制。拿这来容易啊,那么这打印呢,我就去掉了,打印就去掉了,那么最终呢,我的做式就是把这个弄好的一代呢给出去,Depends给出去,OK,那么这里我们能看到他接收的一个两个参数啊,一个是ST,这个参数我们没有,还有一个呢,就是发pass也需要给我传进来。好了,那么这一块呢,就正好了,获取鸡蛋。那么还有第三个就是解析啊。解析。将ST减七成,代码扣的好,我们再根号的吧。好,那么它接收一个参数呢,必然是HT,因为是叫SD解析啊,所以这里面呢,我们来看代码呢,其实就很简单了,CTRC。啊,然后最终呢,把这扣呢给return出去。
04:05
好,那么我们就将这个代码呢,全都分装到这咱们的这个啊,Pass这个模块了,那么对于compile来讲呢,它就不需要这么麻烦了啊,这些都可以,拜拜。往上走都可以,拜拜。好,首先呢,他要做的是呢,获取这个入口文件路径对吧,已经拿到手了,那么下一步呢,就要引入我们的这个pass模块了。那么上面的一些方法。比如说get ST啊,Get这个dependency get cold,那么首先呢,肯定是调用get get ST啊得当然我们的ST。要传这个fire pass。对吧?那么第二步呢,我们可能通过get depends得到我们的dependcies。那么这里面它需要接收啊,这样几个参数,就是我们的这个啊,Pass,还有这个ST啊。
05:05
嗯。对吧,那么第三个呢,我们需要调这该扣的。找到我们的code。啊给后得到我们后,那么get code呢,也需要接受一个ST作为参数。好,最后呢,我们统一的去打印一下ST,我们抽象语法书,打印一下我们的depend is,打印一下我们的code,啊打下code,我们来看一下,最终呢这样做,哎,行不行对吧,所以这里面呢,就是去定义。将咱们的文件解析成ST。所以第二步。嗯,获取这个ST中所有的依赖。第三步将。ST。解析成代码啊,解成浏览器啊,解析成代码。
06:04
好,那么我们来打一下这三个值啊,我们同样的预习一下n PM run build。好看效果啊,所以第一最后一个打印是代码,这个代码呢没问题,解析后了,第二个呢,打印的是这个依赖,依赖呢也没问题,所以最上面这个呢,打印的是我们的抽象语法数啊,它上面呢会有比如说有这个program program呢里面会有一个body啊,Body里面呢,就有我们所有的每天语法OK打印都没有问题啊,所以呢,这里面呢,我们做了一个简易的封装,把那这些功能呢,抽取成一个相当关的一些拈啊去完成。
我来说两句