看了Primer的TextQuery的例子,又動(dòng)手copy了一遍,對(duì)于這樣華麗的設(shè)計(jì)激動(dòng)得久久不能自已。

前幾天,按照這個(gè)例子,自己封裝了一套四則運(yùn)算表達(dá)式類,重現(xiàn)了一下這樣的設(shè)計(jì)模式。



















然后,做了一個(gè)parser來解析表達(dá)式,不過做得很搓,stringstream對(duì)于括號(hào)的讀取有問題……不過主要功能已經(jīng)基本實(shí)現(xiàn)了。

現(xiàn)上傳代碼:
http://www.shnenglu.com/Files/neverwinter/Expression.zip

環(huán)境是vs2008 SP1,里面用到了boost的shared_ptr。

parser的設(shè)計(jì)實(shí)在太爛,如果有什么高見請(qǐng)指教一下!~

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