时间:2016年05月30日 | 作者 : aaronyang | 分类 : C#开发 | 浏览: 2374次 | 评论 0 人
官方:给定一种语言,定义他的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子
代码:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace StrategyMo.JieShiQi { public abstract class AbstractExpression { public abstract void Interpret(JieShiContext context); } public class TerminalExpression : AbstractExpression { public override void Interpret(JieShiContext context) { Console.WriteLine("终端解释器"); } } public class NonTerminalExpression : AbstractExpression { public override void Interpret(JieShiContext context) { Console.WriteLine("非终端解释器"); } } public class JieShiContext { private string input; public string Input { get { return input; } set { input = value; } } private string output; public string Output { get { return output; } set { output = value; } } } }
客户端使用
JieShiContext js = new JieShiContext(); IList<AbstractExpression> lists = new List<AbstractExpression>(); lists.Add(new TerminalExpression()); lists.Add(new NonTerminalExpression()); lists.Add(new TerminalExpression()); lists.Add(new TerminalExpression()); foreach (var item in lists) { item.Interpret(js); }
总结:装载多个解释器。 解释器1个入口,就是Context对象,拿到后,解析处理。
这个是模型,真正运用起来,这个模式还是有点难度的。
====================www.ayjs.net 杨洋 wpfui.com ayui ay aaronyang=======请不要转载谢谢了。=========
抖音:wpfui 工作wpf,兴趣学习flutter
目前在合肥市某公司上班,已经厌弃,如果你的公司看的上我,加我QQ私聊
AYUI8全源码 Github地址:前往获取
杨洋(AaronYang简称AY,安徽六安人)和AY交流
高中学历,2010年开始web开发,2015年1月17日开始学习WPF
声明:AYUI7个人与商用免费,源码可购买。部分DEMO不免费
不是从我处购买的ayui7源码,我不提供任何技术服务,如果你举报从哪里买的,我可以帮你转正为我的客户,并送demo
查看捐赠AYUI7.X MVC教程 更新如下:
第一课 第二课 程序加密教程
额 本文暂时没人评论 来添加一个吧
发表评论