是否有开源Java库或Java源代码来简化布尔表达式

是否有开源Java库或Java源代码来简化布尔表达式,java,boolean-expression,Java,Boolean Expression,是否有开源Java库或Java源代码来简化布尔表达式,如 !((A.B+C).(!A+BC)) 在哪里, ! - represents NOT + - represents OR . - represents AND 非常感谢您在这方面的帮助不,我不这么认为,但是使用(声明式)或(编程式)为这种语言编写解析器应该非常简单 对于ANTLR,使用作为起点 对于JParsec来说,它接近您所需要的。我不知道java中有任何API。 但是,可以拆分表达式并为每个部分构建谓词。 您可能有兴趣看一看首先

是否有开源Java库或Java源代码来简化布尔表达式,如

!((A.B+C).(!A+BC))
在哪里,

! - represents NOT
+ - represents OR
. - represents AND

非常感谢您在这方面的帮助

不,我不这么认为,但是使用(声明式)或(编程式)为这种语言编写解析器应该非常简单

对于ANTLR,使用作为起点


对于JParsec来说,它接近您所需要的。

我不知道java中有任何API。 但是,可以拆分表达式并为每个部分构建谓词。
您可能有兴趣看一看

首先,让我确认我是否正确地理解了您的问题-您是否正在研究以简化方式编写给定表达式的能力

如果是,那么您可以尝试Xtend:和Xtext

Xtend是一种静态类型的编程语言,可编译为可理解的Java源代码。Xtend是使用Xtext开发的

Xtext是一个用于开发编程语言和领域特定语言的框架

以上信息不适用,如果你正在寻找的算法只是给定的表达式


希望这些信息对您有用。

闻起来像SQL?您可以简单地翻译!,,+进入NOT、AND、OR,过滤掉某些神奇的关键字,然后将它们传递到传统的JDBC后端。 “选择1,其中”+表达式


否则,听起来您需要一个完整的逻辑AST+解析器(antlr),因为简单地构造一个表示表达式的DOM不会非常有用(因此,没有那么多工具通常采用表达式对象图并应用通用公理)。。这种查找规则引擎有一些高度专业化的变体,比如drools。但我猜这并不完全符合您的要求。

See的可能重复,我不会说这是重复,因为在这种情况下,输入材料不是有效的布尔表达式虽然Xtend很好,但我不认为这是对OP问题的回答