Chinaunix首页 | 论坛 | 博客
  • 博客访问: 147074
  • 博文数量: 17
  • 博客积分: 2146
  • 博客等级: 大尉
  • 技术积分: 305
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-07 23:26
文章分类

全部博文(17)

文章存档

2011年(1)

2009年(5)

2008年(11)

分类:

2008-11-01 13:03:05

这个想法最早来源于工作流项目中对于脚本的解析形成的脚本翻译,经过若干项目扩展和版本演变,最终形成了用于表格计算的最简化模型。思路:经常处理数学公式计算和图形展示公式曲线,需要一些灵活的处理,流程状态的控制需要根据情况自动处理,因此想写一个解析脚本的东西,最初用与工作流引擎,处理的不是很好,因为是用蛮力去处理状态。不稳定,后来学习编译,觉得能更好的处理,因此重新写了几个版本,用于不同的项目。

1.从表达式中解析变量名,需要蛮力了:) ++这里可以将变量和数值分离,变量进入符号表,我这里没有做,而是采取回调的方式,扩展用户需求的需要。

2.采用逆波兰表达式的形式将表达式处理成后缀表达式,需要判断一些优先级,当然扩展后用户可以自定义优先级,暂时还没扩展呵呵。

3.有了后缀表达式,就可以进行计算了,编译上有详细的描述。

4.这个版本的变量取值采取回调的方式,这样用户可以扩展自己的应用。

5.用户可以导入自己的函数库,这样就可以做更多的应用。

6.用户可以修改呵呵

主要对象: 1.Parser 处理数学公式文件:GridCompute.rar 大小:144KB 下载:下载 2.Interpreter 管理符号 3.BizMgr 业务层面封装和管理Parser和Interpreter 详见代码

文件: GridCompute.rar
大小: 144KB
下载: 下载

 

下面整理了下思路,但是可惜,目前暂时还不支持重载解析,因为需要以更好地方式去识别函数,目前没时间呵呵,不过支持重载肯定是要损失效率的了。

文件: Interpreter.rar
大小: 177KB
下载: 下载

阅读(3190) | 评论(7) | 转发(0) |
0

上一篇:linux 驱动HelloWorld

下一篇:just for fun!

给主人留下些什么吧!~~

nicolas.shen2010-11-16 11:16:05

汗...这样也行啊...

chinaunix网友2010-11-07 20:45:32

应聘做上机题正好用上,太感谢你了!!!!

chinaunix网友2010-02-04 14:19:08

谢谢啦,正好用上:)

nicolas.shen2010-01-25 23:21:46

不客气呵呵,记得改改里面的bug呵呵

chinaunix网友2010-01-20 15:30:55

不错,我在项目中直接用它了,谢谢啊