Keith™ 发表于 2018-9-22 14:50:30

字符串公式计算器

我正在寻找一个字符串公式求值器的建议,理想情况下,公式将被发送到求值器,它将返回一个可以转换为数字类型的对象。
我目前使用的是逃离,但它只做基本的东西。我需要ROUND,ABS,MIN,MAX等。而且和新项目不太配合。
**** Hidden Message *****

MickD 发表于 2018-9-22 20:19:34

除非您构建一个简单的解释器,否则没有简单的方法可以做到这一点。最难的部分是解析和词法分析,但由于您可能只需要真正语言的一小部分,因此会容易得多。
http://www.craftinginterpreters.com/
上面的链接非常好,即使只是阅读第1部分(Java解释器)也会为您提供足够的信息来获得一些东西,或者至少是一些方向或更好地理解Flee。
我已经构建了Java版本,并且即将开始C版本,我的兴趣是构建一个小型脚本语言来自动化我的插件。你所做的没有什么不同,只是你在解析短句,这将容易得多(理论上)

Keith™ 发表于 2018-9-22 23:54:48

这正是我寻找现有库的原因,理想情况下,该库将允许我导入可以解释为如下的函数:Evaluator.functions.Add(foo);。

函数双 foo(双值)。
{。
//dostuff here。
}我现在有点困难......刚回到家,我很确定我已经喝了几乎整整1.5升的瓶子,所以如果我的信息有点不连贯,请原谅我。

JohnK 发表于 2018-9-24 15:49:11

至于原始问题,请阅读前两部分。
https://llvm.org/docs/tutorial/
对于像这样的简单解析器来说,转到IR / L有点过分(一团糟的代码)。
Mick,
如果你把那段代码放在github(或类似的东西)上,请告诉我。那会很酷。

Keith™ 发表于 2018-9-24 16:38:39

天哪...周六晚上是另一回事...结果我喝了一整瓶1.5升的摩根船长。
无论如何,阅读作业看起来很酷。我肯定这是我能做的事情。一两个星期应该给我足够的时间去做我需要的事情,甚至更多

MickD 发表于 2018-9-24 17:58:12


这是一个很好的阅读/学习,我认为非常值得。你一定能够敲出一些简单的东西 n C#
会做的,作者的C部分仍在进行中,但开始变得有趣 - 动态字符串是下一个

Keith™ 发表于 2018-9-24 22:01:31

对我来说幸运的是,我只需要实现一小部分数学函数,我只需要评估两个函数,尽管这两个函数平均需要评估大约300次。
页: [1]
查看完整版本: 字符串公式计算器