早先討論過如何漢化編程語言中的“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>
並在生成語法樹時對參數位置作了相應對調。
如果不是一個低級錯誤,應該是幾分鐘就可以完成了,只要知道在哪裡改。
閱讀更多 用中文編程 的文章