在开发过程中很多时候都需要一个字符串表达式的计算器,比如计算"10/2-8+5*(8-3)"的结果,你会怎么计算呢,对我来说,我目前工作中的系统前后端都是有类似计算任务,也各有实现,但是都不完善,所以如果是我,我会如何开发,起码的要求有两点,一个是可扩展,能简单的添加新的函数进去,一个是能方便的定位错误,特别是对复杂的表达式求值很重要,不能找半天也不知道表达式哪里书写不对。
目前我的思路有三个方面:
1, c++调用脚本语言python实现
2, c++单独解析字符串实现
3, lex+yacc实现
我想之后对每一种思路做简单的实现看看,如果有好的建议请留言告诉我。
本文出自 “veio的博客” 博客,请务必保留此出处http://weiwang079x.blog.51cto.com/4312903/1357517
原文:http://weiwang079x.blog.51cto.com/4312903/1357517