基於「木蘭」編譯器,八行代碼實現 "對於...中的"中文編程語法

早先討論過如何漢化編程語言中的“for...in”關鍵字, 雖然有了方案,但終歸受限於原英文語法的語序。之前用很少代碼實現了一個新關鍵字,這裡試試實現“對於...中的”語法,僅作演示之用。 與原語法比較效果如下(由於逆向工程的問題,只能用這個用例測試。

歡迎參與解決該問題!詳見《【懸賞】建立構建工具鏈):

<code>> print(n) 對於 0..2 中的 n
012
> print(n) for n in 0..2
012
/<code>

修改簡介如下。

parser/lexer.py

先在 RULES 中加了對於和中的,接著在分詞器母機中加了對應詞。

parser/core.py

對分析器母機的for_stmt的語法規則作了擴展,加了兩條規則:

<code>    @pg_.production('for_stmt : 對於 loop_range 中的 iterator block')

@pg_.production('for_stmt : stmt 對於 loop_range 中的 iterator')
/<code>

並在生成語法樹時對參數位置作了相應對調。

如果不是一個低級錯誤,應該是幾分鐘就可以完成了,只要知道在哪裡改。


分享到:


相關文章: