码迷,mamicode.com
首页 > 其他好文 > 详细

学习笔记——解释器模式Interpreter

时间:2014-12-24 09:47:42      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

解释器模式,其实就是编译原理中的语法解释器,如果用在项目中,可以用于实现动态脚本的解析,也就是说项目可以支持用户脚本扩展。

但实际上,这种运行时解释,效率很慢,如果不是很需要的话,不建议使用。

一种简单实现:

Context是上下文场景,比如做一个计算器,那这个Context可以作为一个Calculator类,可以在构造函数中用于接受待解析的表达式(如 a+b-c),以及执行相应的解释。

Expression代表不同的symbol的操作,比如:

1.+对应的Expression,操作是:将+的左结点出栈后,和右结点生成+表达式对象压栈(也可以是其他存储结构)

2.具体数字的Expression就只是把数字作为结点存储后压栈

等。

最后在表达式解释完成后,将根结点表达式出栈待用。

Context执行Run,将表达式(a+b-c)中abc的真实值传入,计算得到最后结果。示例代码:http://files.cnblogs.com/dev2007/InterpreterTest.rar

实现一个较好的解释器需要编译原理知识,可以学习vczh的博客http://www.cppblog.com/vczh/

学习笔记——解释器模式Interpreter

标签:

原文地址:http://www.cnblogs.com/dev2007/p/4181684.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!