当前位置: 首页 > news >正文

国内网站制作特点佛山刚刚发生的事

国内网站制作特点,佛山刚刚发生的事,大气腐蚀网站建设,wordpress 幻灯片设置解释器模式 1#xff09;概述 1.定义 定义一个语言的文法#xff0c;并且建立一个解释器来解释该语言中的句子#xff0c;这里的“语言”是指使用规定格式和语法的代码。 2.结构图 3.角色 AbstractExpression#xff08;抽象表达式#xff09;#xff1a;在抽象表达…解释器模式 1概述 1.定义 定义一个语言的文法并且建立一个解释器来解释该语言中的句子这里的“语言”是指使用规定格式和语法的代码。 2.结构图 3.角色 AbstractExpression抽象表达式在抽象表达式中声明了抽象的解释操作它是所有终结符表达式和非终结符表达式的公共父类。 TerminalExpression终结符表达式它实现了与文法中的终结符相关联的解释操作在句子中的每一个终结符都是该类的一个实例通常在一个解释器模式中只有少数几个终结符表达式类它们的实例可以通过非终结符表达式组成较为复杂的句子。 NonterminalExpression非终结符表达式它实现了文法中非终结符的解释操作由于在非终结符表达式中可以包含终结符表达式也可以继续包含非终结符表达式因此其解释操作一般通过递归的方式来完成。 Context环境类环境类又称为上下文类它用于存储解释器之外的一些全局信息通常它临时存储了需要解释的语句。 注意 在解释器模式中每一种终结符和非终结符都有一个具体类与之对应正因为使用类来表示每一条文法规则所以系统将具有较好的灵活性和可扩展性。 4.代码实现 抽象表达式类 abstract class AbstractExpression {public abstract void interpret(Context ctx); }终结符表达式 public class TerminalExpression extends AbstractExpression {public void interpret(Context ctx) {//终结符表达式的解释操作} }非终结符表达式 public class NonterminalExpression extends AbstractExpression {private AbstractExpression left;private AbstractExpression right;public NonterminalExpression(AbstractExpression left,AbstractExpression right) {this.leftleft;this.rightright;}public void interpret(Context ctx) {//递归调用每一个组成部分的interpret()方法//在递归调用时指定组成部分的连接方式即非终结符的功能} }环境类 public class Context {private HashMap map new HashMap();public void assign(String key, String value) {//往环境类中设值}public String lookup(String key) {//获取存储在环境类中的值} }2完整解决方案 1.解释过程-抽象语法树 2.结构图 AbstractNode充当抽象表达式角色DirectionNode、ActionNode和DistanceNode充当终结符表达式角色AndNode和SentenceNode充当非终结符表达式角色。 3.代码实现 抽象表达式 //抽象表达式 abstract class AbstractNode {public abstract String interpret(); }非终结符表达式 //And解释非终结符表达式 public class AndNode extends AbstractNode {private AbstractNode left; //And的左表达式private AbstractNode right; //And的右表达式public AndNode(AbstractNode left, AbstractNode right) {this.left left;this.right right;}//And表达式解释操作public String interpret() {return left.interpret() 再 right.interpret();} }//简单句子解释非终结符表达式 public class SentenceNode extends AbstractNode {private AbstractNode direction;private AbstractNode action;private AbstractNode distance;public SentenceNode(AbstractNode direction, AbstractNode action, AbstractNode distance) {this.direction direction;this.action action;this.distance distance;}//简单句子的解释操作public String interpret() {return direction.interpret() action.interpret() distance.interpret();} }终结符表达式 //方向解释终结符表达式 public class DirectionNode extends AbstractNode {private String direction;public DirectionNode(String direction) {this.direction direction;}//方向表达式的解释操作public String interpret() {if (direction.equalsIgnoreCase(up)) {return 向上;} else if (direction.equalsIgnoreCase(down)) {return 向下;} else if (direction.equalsIgnoreCase(left)) {return 向左;} else if (direction.equalsIgnoreCase(right)) {return 向右;} else {return 无效指令;}} }//动作解释终结符表达式 public class ActionNode extends AbstractNode {private String action;public ActionNode(String action) {this.action action;}//动作移动方式表达式的解释操作public String interpret() {if (action.equalsIgnoreCase(move)) {return 移动;} else if (action.equalsIgnoreCase(run)) {return 快速移动;} else {return 无效指令;}} }//距离解释终结符表达式 public class DistanceNode extends AbstractNode {private String distance;public DistanceNode(String distance) {this.distance distance;}//距离表达式的解释操作public String interpret() {return this.distance;} }工具类InstructionHandler用于对输入指令进行处理将输入指令分割为字符串数组将第1个、第2个和第3个单词组合成一个句子并存入栈中如果发现有单词“and”则将“and”后的第1个、第2个和第3个单词组合成一个新的句子作为“and”的右表达式并从栈中取出原先所存句子作为左表达式然后组合成一个And节点存入栈中依此类推直到整个指令解析结束。 import java.util.Stack;//指令处理类工具类 public class InstructionHandler {private AbstractNode node;public void handle(String instruction) {AbstractNode left null, right null;AbstractNode direction null, action null, distance null;//声明一个栈对象用于存储抽象语法树Stack stack new Stack();//以空格分隔指令字符串String[] words instruction.split( );for (int i 0; i words.length; i) {if (words[i].equalsIgnoreCase(and)) {//弹出栈顶表达式作为左表达式left (AbstractNode) stack.pop();String word1 words[i];direction new DirectionNode(word1);String word2 words[i];action new ActionNode(word2);String word3 words[i];distance new DistanceNode(word3);right new SentenceNode(direction, action, distance); //右表达式stack.push(new AndNode(left, right)); //将新表达式压入栈中} else {//如果是从头开始进行解释则将前三个单词组成一个简单句子SentenceNode并将该句子压入栈中String word1 words[i];direction new DirectionNode(word1);String word2 words[i];action new ActionNode(word2);String word3 words[i];distance new DistanceNode(word3);left new SentenceNode(direction, action, distance);//将新表达式压入栈中stack.push(left);}}this.node (AbstractNode) stack.pop(); //将全部表达式从栈中弹出}public String output() {return node.interpret();} }客户端类 public class Client {public static void main(String[] args) {String instruction up move 5 and down run 10 and left move 5;InstructionHandler handler new InstructionHandler();handler.handle(instruction);String outString;outString handler.output();System.out.println(outString);} }
文章转载自:
http://www.morning.sjsfw.cn.gov.cn.sjsfw.cn
http://www.morning.dmwjl.cn.gov.cn.dmwjl.cn
http://www.morning.lfttb.cn.gov.cn.lfttb.cn
http://www.morning.sbrrf.cn.gov.cn.sbrrf.cn
http://www.morning.cbczs.cn.gov.cn.cbczs.cn
http://www.morning.mfmx.cn.gov.cn.mfmx.cn
http://www.morning.srkwf.cn.gov.cn.srkwf.cn
http://www.morning.msbmp.cn.gov.cn.msbmp.cn
http://www.morning.xfmwk.cn.gov.cn.xfmwk.cn
http://www.morning.qwmpn.cn.gov.cn.qwmpn.cn
http://www.morning.qnftc.cn.gov.cn.qnftc.cn
http://www.morning.jtkfm.cn.gov.cn.jtkfm.cn
http://www.morning.rfwrn.cn.gov.cn.rfwrn.cn
http://www.morning.xphls.cn.gov.cn.xphls.cn
http://www.morning.yggdq.cn.gov.cn.yggdq.cn
http://www.morning.gthwz.cn.gov.cn.gthwz.cn
http://www.morning.ccdyc.cn.gov.cn.ccdyc.cn
http://www.morning.rwmp.cn.gov.cn.rwmp.cn
http://www.morning.ylph.cn.gov.cn.ylph.cn
http://www.morning.sgbsr.cn.gov.cn.sgbsr.cn
http://www.morning.rxwnc.cn.gov.cn.rxwnc.cn
http://www.morning.pmbcr.cn.gov.cn.pmbcr.cn
http://www.morning.bplqh.cn.gov.cn.bplqh.cn
http://www.morning.supera.com.cn.gov.cn.supera.com.cn
http://www.morning.dmlsk.cn.gov.cn.dmlsk.cn
http://www.morning.tymnr.cn.gov.cn.tymnr.cn
http://www.morning.rfkyb.cn.gov.cn.rfkyb.cn
http://www.morning.qlpyn.cn.gov.cn.qlpyn.cn
http://www.morning.cpnsh.cn.gov.cn.cpnsh.cn
http://www.morning.pypbz.cn.gov.cn.pypbz.cn
http://www.morning.nsjpz.cn.gov.cn.nsjpz.cn
http://www.morning.yxmcx.cn.gov.cn.yxmcx.cn
http://www.morning.dyrzm.cn.gov.cn.dyrzm.cn
http://www.morning.hbqhz.cn.gov.cn.hbqhz.cn
http://www.morning.yzsdp.cn.gov.cn.yzsdp.cn
http://www.morning.ggnfy.cn.gov.cn.ggnfy.cn
http://www.morning.kwjyt.cn.gov.cn.kwjyt.cn
http://www.morning.mysmz.cn.gov.cn.mysmz.cn
http://www.morning.nxstj.cn.gov.cn.nxstj.cn
http://www.morning.hjwxm.cn.gov.cn.hjwxm.cn
http://www.morning.zlnkq.cn.gov.cn.zlnkq.cn
http://www.morning.ysjjr.cn.gov.cn.ysjjr.cn
http://www.morning.ldcrh.cn.gov.cn.ldcrh.cn
http://www.morning.zmwzg.cn.gov.cn.zmwzg.cn
http://www.morning.ylph.cn.gov.cn.ylph.cn
http://www.morning.skscy.cn.gov.cn.skscy.cn
http://www.morning.tongweishi.cn.gov.cn.tongweishi.cn
http://www.morning.plcyq.cn.gov.cn.plcyq.cn
http://www.morning.pinngee.com.gov.cn.pinngee.com
http://www.morning.myhpj.cn.gov.cn.myhpj.cn
http://www.morning.qwmsq.cn.gov.cn.qwmsq.cn
http://www.morning.flhnd.cn.gov.cn.flhnd.cn
http://www.morning.phzrq.cn.gov.cn.phzrq.cn
http://www.morning.djmdk.cn.gov.cn.djmdk.cn
http://www.morning.ybqlb.cn.gov.cn.ybqlb.cn
http://www.morning.xfhms.cn.gov.cn.xfhms.cn
http://www.morning.mrcpy.cn.gov.cn.mrcpy.cn
http://www.morning.srbl.cn.gov.cn.srbl.cn
http://www.morning.qclmz.cn.gov.cn.qclmz.cn
http://www.morning.cpfx.cn.gov.cn.cpfx.cn
http://www.morning.bzwxr.cn.gov.cn.bzwxr.cn
http://www.morning.cldgh.cn.gov.cn.cldgh.cn
http://www.morning.hmxrs.cn.gov.cn.hmxrs.cn
http://www.morning.rsqpc.cn.gov.cn.rsqpc.cn
http://www.morning.lveyue.com.gov.cn.lveyue.com
http://www.morning.cpmwg.cn.gov.cn.cpmwg.cn
http://www.morning.zqbrw.cn.gov.cn.zqbrw.cn
http://www.morning.ghccq.cn.gov.cn.ghccq.cn
http://www.morning.nmrtb.cn.gov.cn.nmrtb.cn
http://www.morning.rpjr.cn.gov.cn.rpjr.cn
http://www.morning.mpxbl.cn.gov.cn.mpxbl.cn
http://www.morning.pwfwk.cn.gov.cn.pwfwk.cn
http://www.morning.nydgg.cn.gov.cn.nydgg.cn
http://www.morning.gxeqedd.cn.gov.cn.gxeqedd.cn
http://www.morning.gjcdr.cn.gov.cn.gjcdr.cn
http://www.morning.shuanga.com.cn.gov.cn.shuanga.com.cn
http://www.morning.hytr.cn.gov.cn.hytr.cn
http://www.morning.jykzy.cn.gov.cn.jykzy.cn
http://www.morning.wbrf.cn.gov.cn.wbrf.cn
http://www.morning.jcxyq.cn.gov.cn.jcxyq.cn
http://www.tj-hxxt.cn/news/267593.html

相关文章:

  • 网站后台添加不了图片wordpress设置标题字体
  • 网站功能描述与分析网络广告的形式
  • 政务网站建设标准做网站以前出名的公司
  • 成都市建设局官方网站长治企业网站建设
  • 简述网站的设计流程app制作软件破解版
  • 网站分屏布局设计微网站搭建
  • 网站开发先写后端先写前端上海十大公关公司排名
  • 做网站排在前十名要多少钱济南华企立方 网站
  • 建设金融网站哪家好wordpress重复文章
  • 全国送花网站产品线上推广方式都有哪些
  • asp网站建设 文献网页设计软件dream
  • 东莞设计公司网站导航网站 cms
  • p2p网站建设要多少钱青县网站建设公司
  • 网站目录权限外贸订单
  • 哈尔滨企业自助建站系统网站改版301是什么意思
  • 营销型网站建设宣传语seo顾问招聘
  • 网站备案怎么找人备扁平化网页设计图片
  • 网站右下角代码wordpress主题 开发
  • 刚做优化的网站什么能更新个人网站模板html
  • 搜索引擎网站模板1122t
  • yy怎么一直在模板相关信息圆柱钢模板优势是什么?企业网站建设模板和定制化有什么区别呢?拼命加载中wordpress 多语言 方案
  • dede修改网站密码连接友谊
  • 悟空建站seo服务网络哪个公司便宜又好
  • 网站开发公司市场网站一键提交
  • 安卓上怎么做单机网站广东网站建设哪里有
  • 餐饮网站设计河池企业网站开发公司
  • 高端网站建设公司名字网站开发 项目章程
  • 烟台工程建设信息网站网站建设宀金手指花总十五
  • 一家做公司点评的网站如何给网站做地图
  • 沈阳网站制作公司和服务器岳阳市交通建设投资公司门户网站