看了Primer的TextQuery的例子,又动手copy了一遍,对于这样华丽的设计激动得久久不能自已。

前几天,按照这个例子,自己封装了一套四则运算表达式类,重现了一下这样的设计模式。



















然后,做了一个parser来解析表达式,不过做得很搓,stringstream对于括号的读取有问题……不过主要功能已经基本实现了。

现上传代码:
http://www.cppblog.com/Files/neverwinter/Expression.zip

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

parser的设计实在太烂,如果有什么高见请指教一下!~

PS:看到别人用boost::spirit来做同样的表达式分析计算,居然80多行代码就完美实现了(还包括提示信息)。可见,boost的潜力是十分大的,以后一定要好好学习、挖掘一下。