之前实现了Raven语言的0.1版,仅仅支持表达式处理与控制语句,由于不支持数组、函数、类,甚至都不是图灵完全的语言。
现在参考vczh的博客打算重新写一遍Raven语言。陈祖不愧是神啊,高中就写出支持脚本的游戏地图编辑器了。
据说脚本引擎有四个重要属性:
- 命令式、描述式
- 按值计算、惰性计算
- 强类型、弱类型、无类型
- 函数与闭包
跟之前说好的一样,Raven语言是命令式按值计算支持函数闭包的弱类型语言,内置有正则表达式引擎一枚。
再次动手之前先记录一些会用到的知识点与灵感。
语法树采用visiter模式。
构造出语法树以后,指定一个visiter给语法树,这样不管想要解释型还是编译型都可以用不同的visiter来实现。