我需要评估一个布尔表达式。目的是过滤一组标记项目。标签可以是任何名称(比方说,像 Java 标识符)。
例如:
foo OR (bar AND !baz)
这对于标记的项目是正确的:
- 费费
- 富吧嘘
- 酒吧
我事先不知道需要哪些名字。我检查了 JEXL 但它有JexlContext,它基本上是一个需要在评估之前填充的 Map。
我需要一些调用回调函数的库来决定标识符是真还是假。或任何其他允许标识符在评估之前未知的机制。
它必须像啤酒一样免费(它用于 Maven 插件),所以 Jep 是不可能的。
我可以使用什么?