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

太仓网站建设有限公司购物网站的功能板块

太仓网站建设有限公司,购物网站的功能板块,深圳app网站建设陈俊兵,做flash网站背景 之前在做游戏的过程中#xff0c;我们经常需要解析一些公式#xff0c;比如(对方攻击值-对方防御值)*2这种表达式#xff0c;我们习惯于用代码写死公式#xff0c;但是这种方式不够灵活#xff0c;我们想要的是一种灵活的解析方式#xff0c; 只需要策划输入一个任…背景 之前在做游戏的过程中我们经常需要解析一些公式比如(对方攻击值-对方防御值)*2这种表达式我们习惯于用代码写死公式但是这种方式不够灵活我们想要的是一种灵活的解析方式 只需要策划输入一个任意的一个表达式我们就可以自动计算出来对应的数值我们不需要理解策划的公式那么问题就转化成了如何解析表达式公式呢答案是使用antlr. 技术实现 antlr是一个解析器包括两个部分词法解析器和语法解析器如下图所示 antlr最大的优点是可以按照树的深度优先遍历访问所有的节点比如下面的表达式 (1) 10 * 20 - 40/2 - (attack defence) 如果我们使用简单的如下.g4文件来解析的话 grammar Calc;prog: stat;stat: expr # printExpr| ID expr # assign;expr: expr (MUL|DIV) expr # MulDiv| expr (ADD|SUB) expr # AddSub| INT # int| ID # id| ( expr ) # parens;MUL : * ;DIV : / ;ADD : ;SUB : - ;ID : [a-zA-Z] ;INT : [0-9] ;WS : [ \t\r\n] - skip ; // toss out whitespace antlr可以解析成如下的解析树: 我们可以看出来如果我们编写一个Listener访问这棵树的话我们可以得到完整的表达式包括各个优先级都是正确的当获取到这个按正确优先级排好序的指令后我们可以通过简单的堆栈操作获取结果 push(1) push(10) push(20) pop(*) pop() push(40) push(2) pop(/) pop(-) push(attack) push(defence) pop(-) pop(-) 注意这是一个深度优先遍历树的顺序通过这个指令顺序可以获取正确的表达式的值 总结 antlr提供了一种解析表达式的方便的方式让我们可以解析任何用户或者策划提供的公式它会按照深度优先树遍历的顺序返回数据和指令的顺序方便我们计算最终的结果
http://www.hkea.cn/news/14413846/

相关文章:

  • 河间市网站建设价格学校网站建设命名
  • 有哪些做共享充电宝的网站学做转手绘的网站
  • 建筑工程网站搭建服装网站建设项目实施报告范文
  • dedecms 金融类网站模板受欢迎的邢台做网站
  • 福州最好的网站建设网络公司企业网站服务器选择
  • 网站的首屏 一屏 二屏是什么意思360搜索网址是多少
  • 免费做简易网站wordpress添加心情
  • 自主建站护肤品主题网站怎么做
  • 国外做建材的网站有哪些北京网站开发制作公司
  • 厦门网站seo优化wordpress 新浪云
  • 农特产品电商网站建设目标建立网站的服务器
  • 保山网站建设优化珠海建站联系方式
  • 网站建设与管理专业就业方向wordpress回复显示插件
  • 网站怎么做关键词流量seo入门教学
  • 淡水网站建设网络广告的缺点
  • 大庆 网站制作建一个wordpress网站成本
  • 购物网站技术实施方案推广网站排名
  • 网站设计需要什么证wordpress 打包 转移
  • 中山门户网站建设优化方案怎么写
  • 汕尾建设网站制作网页免费
  • 国内网站备案修改wordpress文章发布时间
  • 网站建设前台功能设计与实现腾讯公司网页设计
  • 江宁交通建设集团网站河南省和城乡建设厅网站
  • 网站内页产品 首页推荐银川网站网站建设
  • 余姚网站推广公司整人做我女朋友网站
  • 哪个网站做自考题目免费wordpress标题不居中
  • 国内老牌的室内设计网站可视化小程序开发工具
  • 宜兴做阿里巴巴网站莱芜都市网下载
  • 建材网站方案用wordpress做网站教程
  • 东台建网站贵州成品网站