在支援 Python 的 range 之外,木蘭還支援如下的等價語法。個人感覺這樣的語法更直觀易讀一些:
for 數 in 0..2 {
println(數)
}
輸出:
0
1
2
for 數 in 0..<2 {
println(數)
}
輸出:
0
1
這是本週重現的語法。
for 數 in 4..-1 by -2 {
println(數)
}
輸出:
4
2
0
左閉右開區間:
for 數 in 0..<4 by 2 {
println(數)
}
輸出:
0
2
下面是幾個主要部分的程式碼行數統計,格式為:上週->本週。
執行測試.py
,檢驗所有木蘭測試程式碼片段:143 -> 144test語法樹.py
,確保生成的語法樹與原始版本一致:63分析器/語法分析器.py
:676 -> 792分析器/詞法分析器.py
:123 -> 184分析器/語法樹.py
,功用/除錯輔助.py
,包括對 ast 庫的中文封裝:251演示高亮.py
:98環境.py
,載入木蘭模組:87中.py
,主程式:35
僅新增 by 語法並沒有那麼大程式碼量,主要是語法分析器中原本的字串格式的語法規則比如下面:
@分析器母機.production('範圍表示式 : 表示式 點點小於 表示式')
將各個語法因素提取成了列舉型別:
@unique
class 語法(Enum):
表示式 = 'expr'
範圍表示式 = 'range_expr'
...
對應的語法規則改為了:
@分析器母機.production(語法.範圍表示式.成分(語法.表示式, 點點小於, 語法.表示式))
可讀性的削弱還可接受,至少能減少筆誤的機會。
開發時用了 VS Code 下的中文程式碼快速補全外掛,支援各種程式語言,加強了針對中文的 IDE 補全功能,編寫中文程式碼時可以省去不少功夫。
[admin
]