首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >解析数学表达式,这种方法的分类是什么?

解析数学表达式,这种方法的分类是什么?
EN

Stack Overflow用户
提问于 2012-12-06 16:25:21
回答 1查看 114关注 0票数 1

我为像3-5*6*8这样的表达式编写了一个词汇和解析器,它被编译成以下标记:

  • 编号(3)
  • 运算符(-)
  • 编号(5)
  • 操作员(*)
  • 编号(6)
  • 操作员(*)
  • 编号(8)

然后,解析器采用一种方法,我认为这是递归下降和优先级反向爬升的结合。它的工作原理大致如下:

代码语言:javascript
运行
复制
parse(3-5*6*8)
add(parse(3), -parse(5*6*8))
add(3, -product(parse(5), parse(6), parse(8))
add(3, -product(5, 6, 8))

像这样,令牌序列被递归地从最低优先级解析到最高优先级。它还通过括号处理系统来处理函数,但这超出了这个问题的范围。

这种方法可以被归类为任何已知的操作符优先解析器方法吗?还是这是一种新的(奇怪)?

我可以想象,阻止我的方法容易被分类的一件事是sumproduct等操作符的多操作数系统,但这是我的特定应用程序所需要的,以简化实现。

EN

回答 1

Stack Overflow用户

发布于 2012-12-06 16:37:24

这听起来有点像Dijkstra的调车算法这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13748005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档