在Java中,我有一组表达式,如cond1 AND(cond2 OR cond3)AND(cond 4 OR cond5)。我想将其转换为树,然后评估最终的布尔答案。我试过很多搜索java BDD但是没能得到任何东西。有关示例代码的任何建议吗?
答案 0 :(得分:3)
5秒Google search返回了一些看似合理的结果:
这不是你想要的吗?
答案 1 :(得分:2)
他的意思是二元决策图。
我一直在修补JavaBDD和JBDD/JDD。两者都基于BuDDY(一个C库) - JBDD实际上使用C DLL来提高边际性能。
在我看来,JavaBDD功能更全面(例如,它支持编写BDD,这是我需要的)。但是也没有教程,虽然类文档并不可怕,坦率地说我无法弄清楚如何将它用于最基本的布尔操作(比如你提出的问题)。
JBDD / JDD要求你使用手动垃圾收集,并且做奇怪的事情,比如在Java整数中存储BDD对象 - 显然是C的结转。但它有一套教程。
答案 2 :(得分:0)
如果您想运行自己的解析器,请查看JavaCC。 这是一个很好的教程,可以帮助您入门。有点旧,但仍然有效: