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

續前文重拾《 兩週自制腳本語言 》- 支持中文標識符, 將當前的關鍵字改爲中文. 基本是將語法分析器中的原本英文關鍵字改爲中文. 如改while->每當 · program-in-chinese/stone@32c79b4:

    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);

下面是關鍵字對應表:

while,每當
if,如果
else,否則
class,類別
extends,擴展
def,定義
fun,函數
new,新建
this,本體

原生函數就是Java本身核心庫函數. 比如System.out.println, 原本被封裝爲了print方法, System.currentTimeMillis被封裝爲了currentTime方法等. 將原環境類中的鍵值, 就是原英文方法名, 改爲中文. 如print->打印 · program-in-chinese/stone@165d99e:

append(env, 方法名_打印, 原生類.class, "print", Object.class);

爲驗證可行性, 僅漢化了兩個API. 最好今後能夠做到無需封裝直接調用Java的靜態方法.

達成例程效果如下:

類別 斐波那契類 {
    值0 = 0
    值1 = 1
    定義 斐波那契 (n) {
        如果 n == 0 {
            值0
        } 否則 {
            如果 n == 1 {
                本體.值1
            } 否則 {
                本體.斐波那契(n-1) + 本體.斐波那契(n-2)
            }
        }
    }
}
時刻 = 當前時刻()
斐 = 斐波那契類.新建
斐.斐波那契 20
耗時 = 當前時刻() - 時刻

下面打算先參考爲新語言編寫Visual Studio Code語法高亮插件, 爲它編寫類似插件.

2019-03-17

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章