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

网站建设考试试题地推的方法和技巧

网站建设考试试题,地推的方法和技巧,网站小视频怎么做的,网站样例背景 之前在做游戏的过程中,我们经常需要解析一些公式,比如(对方攻击值-对方防御值)*2这种表达式,我们习惯于用代码写死公式,但是这种方式不够灵活,我们想要的是一种灵活的解析方式, 只需要策划输入一个任…

背景

之前在做游戏的过程中,我们经常需要解析一些公式,比如(对方攻击值-对方防御值)*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.khdw.cn/news/2878.html

相关文章:

  • 长治网站建设收费多少营销 推广
  • 金融投资公司网站模板深圳关键词快速排名
  • 前端开发培训费用是多少百度关键词seo年度费用
  • 如何查找网站竞争对手的宣传方式微信crm管理系统
  • 平邑县住房和城乡建设局网站百度关键词优化和百度推广
  • 智能建站代理百度竞价排名算法
  • 西安汽车网站制作云南网站推广公司
  • 做电影下载网站还赚钱吗无锡网站优化
  • 做编辑器的网站全网营销老婆第一人
  • 3d做ppt模板下载网站免费建站免费推广的网站
  • 专门 做鞋子团购的网站有哪些域名检测工具
  • 怎样自己做qq网站网站运营推广方式
  • wordpress gofair淘宝关键词优化软件
  • 手机网站建设优势乌鲁木齐seo
  • 做网站网页百度站长工具是什么意思
  • 在服务器上部署网站怎么自己刷推广链接
  • 做调研有哪些网站提高搜索引擎检索效果的方法
  • 做最好的网站需要什么网络推广推广外包服务
  • 网站建设行业 前景百度网络优化
  • 17网站一起做网店睡衣批发代运营是什么意思
  • 网站建设干货图书做网络推广费用
  • wordpress不能上传图片win7系统优化
  • 导航栏网站建站网站建站设计
  • 做淘宝客优惠券网站必须是企业吗网络营销具有什么特点
  • c#web网站开发源码百度快速排名平台
  • 泰州做网站软件产品市场推广计划书
  • wordpress媒体插件长沙网站seo推广
  • 阿里巴巴网站怎么做全屏分类最近发生的热点新闻
  • 笔记本电脑做网站比较畅快常德政府网站市民留言
  • 建设网站开题报告网络营销平台有哪些