1
A
回答
1
有几个项目已经包含了解析字符串到BDD的功能。
例如,在https://github.com/LTLMoP/slugs/blob/master/src/synthesisContextBasics.cpp的第22-64行,您可以找到一个简单的解析器,用于在C++中使用波兰范式布尔公式。在假定变量已经被分配,并且表示变量的节点的BDD引用被存储在数组“变量[..]”中,并且它们各自的名称被存储在“变量名[...]”中。将总体思想调整为C相对简单。该代码中的类“BF”是“DdNode *”引用的包装。
如果你想要中缀表示法,你总是可以使用yacc/lex来构建一个简单的解析器,它可以为你做到这一点。
1
另一种可能性是在Python配合使用,用Cython绑定CUDD:
from dd import cudd
bdd = cudd.BDD()
bdd.declare('a', 'b')
u = bdd.add_expr('a /\ ~ b')
s = bdd.to_expr(u)
print(s)
截至dd == 0.5.3
,wheel files可以从PyPI将包括CUDD的编译版本。因此,pip install dd
也将在任何Linux版本环境中安装CUDD,并且Python版本与车轮匹配(3.5或3.6)。
声明:我是包dd
的作者。
相关问题
- 1. 解析布尔表达式蟒蛇
- 2. 用布尔表达式解析表达式树
- 3. 用于布尔表达式的Spirit解析器
- 4. 布尔和数学表达式解析器
- 5. 存储和解析数据库中的布尔表达式
- 6. 布尔表达式
- 7. 布尔表达式
- 8. 布尔表达式
- 9. 解析单语句布尔表达式树
- 10. 解析布尔表达式没有左手递归
- 11. 解析布尔条件为表达式树
- 12. 解析算术/布尔表达式,但跳过捕获
- 13. 快速布尔表达式求值器
- 14. 简化布尔表达式
- 15. 布尔表达式Where Where
- 16. 简化布尔表达式
- 17. simplifing布尔表达式
- 18. 布尔表达式评估
- 19. 简化布尔表达式
- 20. Null值 - 布尔表达式
- 21. 从布尔表达式
- 22. Python的正则表达式解析器
- 23. 列表的布尔表达式
- 24. 解析厄尔布文件方法的参数与正则表达式
- 25. 在Javascript中将复杂的字符串表达式解析为布尔值
- 26. 2的倍数的布尔表达式
- 27. Spring:解析安全表达式的解析器
- 28. XTraGrid过滤器表达式解析
- 29. 开源数学表达式解析器?
- 30. 包括解析器正则表达式
我没有直接的答案,但是你可能想看看Sean Weaver的[BDD Visualizer](http://www.cs.uc.edu/~weaversa/BDD_Visualizer.html)。 –