重拾《 兩週自制腳本語言 》- 中文關鍵字與原生函數

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

相關文章
相關標籤/搜索