看了Primer的TextQuery的例子,又動手copy了一遍,對于這樣華麗的設計激動得久久不能自已。

前幾天,按照這個例子,自己封裝了一套四則運算表達式類,重現了一下這樣的設計模式。



















然后,做了一個parser來解析表達式,不過做得很搓,stringstream對于括號的讀取有問題……不過主要功能已經基本實現了。

現上傳代碼:
http://www.shnenglu.com/Files/neverwinter/Expression.zip

環境是vs2008 SP1,里面用到了boost的shared_ptr。

parser的設計實在太爛,如果有什么高見請指教一下!~

PS:看到別人用boost::spirit來做同樣的表達式分析計算,居然80多行代碼就完美實現了(還包括提示信息)。可見,boost的潛力是十分大的,以后一定要好好學習、挖掘一下。