时隔一年,又用C#写起代码来,再次感叹爽到飞起!配合VS,不管是调试还是单元测试都爽到飞起!
这次是给14年11月份写的js解释器加feature。想想都是1年多以前的东西了,时不我待 ,岁月催人老啊。那时我的算法还十分的菜,对于很多东西的认识都是十分浅薄的,导致了很多逻辑混乱的错误,不过整体可以用。
从昨天到今天基本算是没怎么休息,之所以这么拼因为这半年来我状态都很差,指不定什么时候就没有这么头脑清晰了。一边写代码一边思考如何解释一行代码,思维量还是不小的,语法分析大部分重写,修正了不少bug,又添加了以前不支持的很多特性。
添加了6种内置对象,给内置对象添加Scope(因为我一开始就要支持Lexical Scope,不能像js一样,只有函数级作用域。我这个解释器基本上都是块级作用域,不能姑息设计失误),bool表达式,点语法动态给对象添加方法和属性,更改了字符串字面量bug,重构了解释器core代码,重构了语法分析部分的重复代码和低效代码,重构了Repl代码使其方便测试,并修正Repl部分的多行代码输入bug,添加了解释代码片段的方法,为代码编写了单元测试,避免了盲目重复的手动测试。
接下来主要工作是添加对象字面量支持,两种Array的字面量,支持解释多个代码片段,增加prototype支持,添加Array,String,Function类库,添加基础库。有时间还可以支持一下ES6新标。
实在觉得不爽还可以找个开源的html5和css引擎来,添加DOM API支持,做出来就是简陋的控制台版浏览器了哈哈哈哈哈。不过但是前面的工作量都不小了,至于DOM支持还是等以后有时间再做吧。
虽然写的不怎么样,还是附上链接吧,万一有人想看呢!虽然我现在很普通,谁能料到以后博客访问数会不会增加呢哈哈哈哈。
https://github.com/cocoyimasa/JSInterpret
哦,突然想起来毕设也是C#写的,虽然和和这个小东西不同,但还是有一些共享代码,将来可以重用一下,爽歪歪。
网友评论