續前文重拾《 兩週自制腳本語言 》- 支持中文標識符, 將當前的關鍵字改成中文. 基本是將語法分析器中的本來英文關鍵字改成中文. 如改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