续前文重拾《 两周自制脚本语言 》- 支持中文标识符, 将当前的关键字改成中文. 基本是将语法分析器中的本来英文关键字改成中文. 如改while->每当 · program-in-chinese/stone@32c79b4:java
Parser statement = statement0.or( rule(IfStmnt.class).sep(IfStmnt.关键字_若是).ast(expr).ast(block) .option(rule().sep(IfStmnt.关键字_否则).ast(block)), rule(While声明类.class).sep(While声明类.关键字).ast(expr).ast(block), simple);
下面是关键字对应表:git
while,每当 if,若是 else,不然 class,类别 extends,扩展 def,定义 fun,函数 new,新建 this,本体
原生函数就是Java自己核心库函数. 好比System.out.println
, 本来被封装为了print
方法, System.currentTimeMillis
被封装为了currentTime
方法等. 将原环境类中的键值, 就是原英文方法名, 改成中文. 如print->打印 · program-in-chinese/stone@165d99e:github
append(env, 方法名_打印, 原生类.class, "print", Object.class);
为验证可行性, 仅汉化了两个API. 最好从此可以作到无需封装直接调用Java的静态方法.app
达成例程效果以下:函数
类别 斐波那契类 { 值0 = 0 值1 = 1 定义 斐波那契 (n) { 若是 n == 0 { 值0 } 不然 { 若是 n == 1 { 本体.值1 } 不然 { 本体.斐波那契(n-1) + 本体.斐波那契(n-2) } } } } 时刻 = 当前时刻() 斐 = 斐波那契类.新建 斐.斐波那契 20 耗时 = 当前时刻() - 时刻
下面打算先参考为新语言编写Visual Studio Code语法高亮插件, 为它编写相似插件.this