问题标签 [expression-evaluation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
315 浏览

antlr - 使用antlr 3时如何从解析器表达式中获取评估结果?

我正在使用 ANTLR 3.5。我想构建一个评估布尔表达式的语法,例如

并通过 Java 调用取回评估结果(如ExprParser.eval()上述条目将返回 true。)

我会期待一个例子。

0 投票
1 回答
1079 浏览

python - 在python中解析表达式的算法?

我有下一个用于在 Python 中解析表达式的算法:

(可以在这里找到: http://news.ycombinator.com/item?id= 284842

我很难理解它,因为我发现 Python 文档对这种情况没有多大帮助。谁能告诉我 line:是什么for operator in ["+-", "*/"]:意思?我知道它的结构就像每个字符串变量一样,它是这两个元素的数组中的运算符,但为什么它写成这样 ["+-, */"]?Python是如何分离的?在第一次迭代中,运算符是“+-”?

任何帮助都意义重大。谢谢

0 投票
2 回答
3958 浏览

c++ - Boost::spirit how to parse and call c++ function-like expressions

I want to use boost spirit to parse an expression like

function1(arg1, arg2, function2(arg1, arg2, arg3), function3(arg1,arg2))

and call corresponding c++ functions. What should be the grammar to parse above expression and call the corresponding c++ function by phoneix::bind()?

I have 2 types of functions to call

1) string functions;

wstring GetSubString(wstring stringToCut, int position, int length); wstring GetStringToken(wstring stringToTokenize, wstring seperators, int tokenNumber );

2) Functions that return integer;

int GetCount();

int GetId(wstring srcId, wstring srcType);

0 投票
0 回答
73 浏览

java - 在java中计算一个大型混合方程

假设我得到了这样的表达

(1/2) + (3/4) + (5/8) + (2/10) + (3/2) + (10/1)

我怎样才能将这个表达式计算为一个浮点值,这样如果表达式在哪里改变我仍然可以计算它?

我最初以为我可以从字符串中解析它,但遇到了大问题。然后我转向手动将值切割成两个数组 - 分母和分子,但我觉得这有点欺骗了练习的精神。它也不允许在所呈现的值方面具有灵活性。

这可以在没有 3rd 方库之类的情况下完成吗?

0 投票
1 回答
401 浏览

jsp - JSP:在 SimpleTagSupport 中评估 EL 表达式 - 不推荐使用 getExpressionEvaluator?(弹簧MVC)

我有一个扩展 javax.servlet.jsp.tagext 的标记类。简单标签支持。我想在评估表达式语言之前处理它的主体,所以我有:

在我的 .tld 文件中。

在用身体做完我的事情之后,我想处理 EL。目前我使用这样的东西:

但是文档说getVariableResolvergetExpressionEvaluator弃用

我想正确的方法是使用ELContext。我怎么做?

0 投票
2 回答
4703 浏览

vba - VBA中的评估()

嗨,欢迎来到Evaluate()之谜


MSDN Office 开发人员参考 (2013) 文档说:

使用方括号(例如,“[A1:C5]”)与使用字符串参数调用 Evaluate 方法相同。


因此,我运行了一个非常简单的代码来查看Microsoft 的 Evaluate()方法文档的准确性。
毫不奇怪,我得到了一个奇怪但一致的结果。
注意: 执行Immediate Window CTRL+中的 4 个命令中的每一个G。查看每个调用的不同之处注意显示每个 MsgBox 两次的内置错误。请记住这一点,不要感到困惑...... 将此代码粘贴到模块中

然后在即时窗口中执行这 4 个命令(一次 1 个)

? Evaluate ("SleepESub()")
? [SleepESub()]
? [SleepESub]
? SleepESub

前 2 个立即执行代码;对我来说意味着他们已经评估了代码。第三个(根据文档)应该是Evaluating,但它的行为方式与在模块的 body 中的行为方式不同。立即窗口正在给出一个Error 2023但是来自模块主体内的相同调用执行它,就好像您正在调用一个子程序一样。20 seconds如果它是正常Call SleepESub()的,即第 4 次调用,它会等待类似的情况。

谁能解释我在这里缺少什么?第 3 行不是正确的Evaluation调用吗?还是它评估对 sub 本身的调用(如果有意义的话)


更新:
我认为有些人误解了我在这里评估的内容——别担心这是一个高级主题,我不是作家,你也不是读心者。(原谅我......
为了更好地了解,您可以比较即时窗口与模块主体的结果。试试这个代码:

0 投票
1 回答
81 浏览

lisp - 使用重复参数有效评估拼接列表

我想通过类的插槽名称列表重复出现,两个类的插槽名称相同((current-trial *exp*)(previous *exp*)指的是同一类的实例)。在每次递归时,我想评估插槽名称,以便可以获取和设置该实例的该插槽的值。下面的代码满足了这个期望,但我担心依赖 eval 因为它很慢并且不允许词法上下文(Graham,1996)。什么是有效的并允许词汇上下文的替代表述?

0 投票
2 回答
677 浏览

java - 是否可以动态解析数学函数

是否有可能动态地解析数学函数,例如通过使用给定的 API?

鉴于有一个功能

有没有办法写出类似的东西:


理想情况下,resolve(Object... args)应该接受更多的 type 类Function

编辑 1: API 应该包含在 Java EE 环境中,例如 jBossAS。

编辑 2:实际上我想用一个未知变量求解方程,但我想避免硬编码函数。因此,对于函数

我不想编写硬编码的函数

相反,正如@Berylium 所说,我想动态评估表达式。


编辑 3:我现在正在尝试 symja,我想我越来越近了,但我在语法上遇到了麻烦。

你能帮我输入语法吗?


编辑 4:知道了 :-) 用于输入

输出是

0 投票
1 回答
570 浏览

r - R - 从未计算的表达式中提取变量名

假设以下模型

目标1

目标2

目标3

由不熟悉 R 的人写在一个文本文件中,如下所示:

我需要能够使用模型解析文本文件并评估任何一行,而不必从模型的其余行中为 dec 变量赋值。虽然该函数创建了一个可以部分查询和评估的未评估parse表达式,但我还没有找到一种方法来执行类似的操作。expeval(exp[1]), eval(exp[2])eval(exp['goal1'])

问题:有没有一种方法可以在不评估模型的情况下解析模型并创建一个列表,其中包含由模型表达式左侧命名的元素,例如

动机:我希望能够从 R 代码中加载模型,解析它并通过表达式为dec变量分配正确的值来评估它的表达式,这取决于正在评估的目标。

0 投票
1 回答
6685 浏览

c# - 如何向 Ncalc 添加新函数

我在我的新项目中使用 Ncalc,它已经拥有了我需要的几乎所有东西。

我说了几乎所有内容,因为现在我需要扩展一些功能并添加新功能,例如:nth root、random 等

你知道是否有人已经实现了这些功能?或者你能给我任何提示或指南来扩展 Ncalc 的功能列表吗???

提前致谢。