本项目用最简单的代码实现了一个类js解释器,旨在以最轻松的方式,来学习如何实现一门语言,当前项目为js
版本,可以在node
bun
等后端js运行时直接运行无三方库依赖,也可以在浏览器中直接运行(不支持File
),该项目同时还有rust
版本repo和java
版本的repo(java版本代码逻辑有较大不同,采用了antlr
工具辅助实现)。
当前已经实现的特性有:赋值、判断、循环、函数、闭包、面向对象(仅继承与多态)、异常抛出、try-catch等。
赋值、判断、循环:
函数、闭包、异常、try-catch:
面向对象:
表达式优先级:
字符串、数组:
扩展功能Math
Time
Json
File
Http
:
如果有node
环境可以直接用node
启动,如果没有也可以从release
中下载打包好的二进制可执行文件,来执行文件。
$ node main.js test.mocha
其中test.mocha
可以换成其他文件,当前语言的语法和js类似,可以参考test.mocha
中的用法。
该项目只用于教学,并没有做详细的边界情况的测试,同时解释性能和同步http库有严重的性能问题,请勿用于生产环境。
摩卡是我家的大肥猫!!