问题标签 [expression]
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.
expression - 将表达式转换为带有扭曲的合取范式
我有一个库,我必须与之交互,它基本上充当数据源。检索数据时,我可以将特殊的“过滤器表达式”传递给该库,然后将其转换为 SQL WHERE 部分。这些表达非常有限。它们必须是合取范式。喜欢:
这对于编程来说当然不是很舒服。所以我想制作一个小包装器,它可以解析任意表达式并将它们转换为这种正常形式。喜欢:
会被翻译成类似的东西:
我可以使用Irony库将表达式解析为树。现在我需要对其进行规范化,但我不知道如何......哦,还有,这是扭曲:
- 最终表达式可能不包含NOT运算符。但是,我可以通过将运算符替换为逆运算符来反转各个项。所以,这没关系:
(not A or not B) AND (not C or not D)
但这不是:
not (A or B) and not (C or D)
- 我想让表达式尽可能简单,因为它将被翻译成几乎相同的 SQL WHERE 语句,因此复杂的语句很可能会降低执行速度。
linq - 如何实现外连接表达式树?
我需要使用表达式语法来实现查询(因为我不知道编译时的类型)。例如这样的查询:
我找到了实现组加入部分的方法,如下所示:
但我不知道如何使用这种语法编写查询的其余部分。有人可以帮助我吗?
javascript - 表达式解析:如何分词
我希望在 Javascript 代码中标记类 Java/Javascript 的表达式。我的输入将是一个包含表达式的字符串,输出需要是一个标记数组。
做这样的事情的最佳做法是什么?我需要迭代字符串还是有一个正则表达式可以为我做这个?
我需要这个能够支持:
- 数字和字符串文字(单引号和双引号,引号转义)
- 基本的数学和布尔运算符和比较器(+、-、*、/、!、and、not、<、> 等)
- 递归对象访问的点和括号表示法 (foo.bar, foo['bar'], foo[2][prop])
- 带嵌套的括号
- 三元运算符 (foo ? bar : 'baz')
- 函数调用 (foo(bar))
出于安全原因,我特别想避免使用eval()
或任何类似的东西。此外,eval()
无论如何都不会为我标记表达式。
parsing - 重构布尔方程
假设您有一个像这样的布尔规则/表达式
您想将其转换为尽可能多的 AND 表达式,就像这样
你只是在减少 OR,所以它变成了
布尔代数中是否有可以做到这一点的属性?
dynamic - 亚音速动态查询表达式
当谈到亚音速表达时,我在尝试生活在亚音速世界并成为亚音速女孩时遇到了一些问题......
在阅读了Subsonic Query (ConditionA OR ConditionB) AND ConditionC之后,看来我不是唯一遇到此类问题的人,但希望有人(全能的抢劫??)可以回答这个问题。
我正在尝试根据循环条件在我的查询中创建一个表达式。我想要实现的(在伪代码中)是这样的:
我的主要问题是表达式中的每个条件都是不同的列 - 否则我可以只使用 .In() 。我在外面也有额外的搜索条件(读一点),所以它不能在表达式之外。
我真的不想离开强类型亚音速子宫的温暖舒适,但我认为在这种情况下我可能也有……如果我必须这样做,有没有办法用手添加到亚音速查询中输入条件,所以我不必更改查询中的所有其他代码(现在很多业务逻辑都生活在亚音速领域)
一如既往,感谢您的帮助
c# - 如何为 Like 创建 System.Linq.Expressions.Expression?
我从这个源创建了一个可过滤的 BindingList 。它工作得很好:
做它应该做的。内部像解析器一样工作,将表达式==
或!=
转换为System.Linq.Expressions.Expression
. 在这种情况下,==
变为System.Linq.Expressions.Expression.Equal
。
不幸System.Linq.Expressions.Expression
的是不包含类似的运算符,我不知道如何解决这个问题。
初始代码如下所示:
然后我创建了一个表达式来做我想做的事:
例如
但binaryOpFactory
需要这个:
预定义的表达式似乎正是:
谁能告诉我如何转换我的表达方式?
java - 将插入的字符串转换为可编译的表达式
我对Java有点陌生,所以我的问题似乎微不足道,但是我在书中的任何地方都找不到答案。
我想与用户启动一个对话,他将在其中输入算术表达式(例如(2 * x + y))然后打印出该表达式的结果(对于给定的x和y值)
我无法转换用户插入的字符串,因此它将用作 x 和 y 的算术表达式,从而定义输出的值
TIA JMT
php - PHP 中的通用声明式表达式生成器
伙计们,
我正在寻找构建一个PHP5 UI,我很确定它对一堆应用程序很常见。基本上,它是一个表达式构建器,允许用户指定通过逻辑运算符 (AND/OR) 组合的表达式,如下所示:
- 场 X > 3 和场 Y = 5
- FieldY = "bob" 并且 FieldZ 不为空
- FieldX > '5/23/2007' OR (FieldY = 5 AND FieldY 不为空)
理想情况下,像这样的系统将允许我作为程序员指定用户可以选择的参数列表(列)以及每个参数的数据类型。它还将提供一个很好的、用户友好的界面来定义这样的表达式 - 我在想象一个类似于表格的东西,其中每一行都有几个选择器:
[列] [条件] [值] [AND/OR] [列] [条件] [值] [AND/OR] ...
你知道做类似事情的开源组件吗?或者也许是这种功能的一部分?
visual-studio - 在 Visual Studio 2008 中执行表达式求值/归约
是否可以让 Visual Studio 进行数学表达式评估/简化?
例如,如果我输入“-0.005 + -0.345”,我如何让 Visual Studio 减少它(即用减少量替换它)?我必须写一个宏吗?如果是这样,是否有任何预先存在的宏来执行这种类型的表达式减少?
为了清楚起见,我希望能够突出显示一个表达式并将其替换为缩减的结果。许多人建议立即窗口,但我看不出这如何足够?
编辑我应该指出,这是在编辑未运行或调试时。即时窗口几乎没有用处。我也认为这是一个语言中立的问题。我当然有兴趣看到我发布的宏的替代宏。
编辑一次......去两次......(即在我考虑接受我自己的答案之前有任何其他建议吗?)
c++ - 是否有任何类型的“表达式类”(C++)
我正在创建一个游戏,让玩家输入输入,改变一些状态,然后检查“目标值”是否为真(显然这个描述被大大简化了),我希望能够让这个目标值来自 if如果剩余的敌人数量等于零,则玩家的生命低于某个值。是否有任何“表达式类”可以保存一个简单的“value1 比较运算符 value2”并检查它?IE:
如果没有,是否有人对我如何开发表达式课程有任何建议?
编辑:另一个(更接近我想要实现的目标)示例: