今天下午用 C# 寫了一個簡單的四則算術解釋器 (Interpreter)。該解釋器主要有兩個功能:一是能夠進行基本的四則運算,也即加減乘除;二是能夠檢測輸入的語法錯誤,對於不合法的運算指令會提示錯誤以及給出錯誤的地方。晚上於是寫這篇博文把思考的過程記錄下來。
按:這是以前遇到的一個微軟技術面試題,當時覺得比較麻煩,要涉及到使用 樹 tree 等數據結構,所以一直保留在腦海中。今天下午碰巧拿到了傳說中的 Dragon Book,於是嘗試自己動手寫寫看。
花了2個小時寫的這個解釋器還是比較簡單的,僅僅能夠做四則運算。現在還不支持括號,以及一元運算符,比如負號運算符。源代碼可以在這裡下載:http://files.cnblogs.com/yinyueyouge/Arithemic.7z
運行的主界面如下:
解釋器也能夠判斷非法的輸入:
現在這個解釋器還非常原始。若是有 bug 發現,請提示出來,我會更正。:)