歡迎您光臨本站 註冊首頁

在支援 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 

程式碼統計

下面是幾個主要部分的程式碼行數統計,格式為:上週->本週。

  • 測試
    • 木蘭測試用例:900 -> 1068
    • 執行測試.py,檢驗所有木蘭測試程式碼片段:143 -> 144
    • 未變
      • test語法樹.py,確保生成的語法樹與原始版本一致:63
  • 實現:1720 -> 1898
    • 分析器/語法分析器.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 ]

來源:OsChina
連結:https://www.oschina.net/news/116967/grasspy-updated
木蘭程式語言重現——範圍語法“下限..上限 by 間隔”,重構已經有58次圍觀

http://coctec.com/news/soft/show-post-241336.html