Youtube 頻道:https://www.youtube.com/c/kaochenlong
如果畫面太小或看不清楚
可移駕至 https://www.youtube.com/watch?v=uxU-r88VAVw 觀看 4K 高畫質版本
GitHub 專案:https://github.com/kaochenlong/cann-lang
如果喜歡這個系列的影片,歡迎訂閱我的頻道
或是想聽我介紹一些別的內容,也可直接在這裡或 YouTube 頁面下方留言 :)
這麼改之後,我看了後面的影片,判斷 token 的規則越來越多時,呈現了瀑布式的流程,如果你的語言開始出現區塊或呈現巢狀,就會更麻煩。
OO 有 OO 好處,例如直譯器模式,每個物件各自處理自己的規則,之後交給下一個,可以避免規則越來越多後,瀑布式的流程等問題:
https://openhome.cc/zh-tw/pattern/behavioral/interpreter/
上面也實現了個簡單的小型語言。
我想你應該知道,OO 與 FP 並不扺觸,也可以適當結合,例如,我土炮這個玩具語言時,大多數是 OO 結合 FP,極為少數情況(為了避免遞迴上限之類),才用了迴圈之類命令式的語法:
https://openhome.cc/zh-tw/toy-lang/
是的,其實用 OO 應該是比較好寫沒錯,我用 FP 的方式只是想給自己多一點壓力 :)