首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >解析数学规则(有一些额外的功能),就像Soulver ( Mac应用程序)一样

解析数学规则(有一些额外的功能),就像Soulver ( Mac应用程序)一样
EN

Stack Overflow用户
提问于 2011-09-16 15:48:03
回答 1查看 241关注 0票数 2

Soulver是一个很棒的数学便签簿,它允许您以一种非常自然的形式编写表达式,这使得它在许多场合下使用起来既灵活又有趣。网站上有一段简短的视频,展示了它的许多功能。

例如,如果你去购物,你可以写一个很大的列表,如下所示

代码语言:javascript
运行
复制
2 * 1.99 soap + 2.99 cereal + 39.59 organic magic beans 

然后,当您键入时,可以看到行中内容的和(46.56)。

您还可以创建变量,例如

代码语言:javascript
运行
复制
March = 2 * 1.99 soap + 2.99 cereal + 39.59 organic magic beans 

并在以后的操作中引用它们。其他运营商,如' off‘(200美元四折),也同样存在。

考虑到它有一定程度的复杂性,它应该在忽略一些输入的同时区分有意义的术语,我应该使用哪种语法来表示这种小语言?我也许可以拼凑一些意大利面正则表达式,但老实说,我想做一些更好的事情,即使这需要我做很多研究。你有什么推荐的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-16 16:55:02

如果你想要对真实的数学建模,例如,任何带有嵌套括号的东西,那么regexp本身可能不足以表达作业。

上下文无关文法具有很强的表现力。您应该了解Backus Normal Form (BNF),这是一种将语言描述写成上下文无关文法的方法。

您可以从许多解析器生成器工具中进行选择,以将语法转换为真正的解析器。

您编写的特定语法取决于您希望表达式的含义,以及表达式中的哪些原子真正被忽略。实际上,编写BNF的方式因工具而异,因此首先选择解析器生成器工具可以省去稍后重写BNF的麻烦。

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

https://stackoverflow.com/questions/7441637

复制
相关文章

相似问题

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