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. C++中的布爾表達式解析器
- 4. 用於布爾表達式的Spirit解析器
- 5. 布爾和數學表達式解析器
- 6. 存儲和解析數據庫中的布爾表達式
- 7. C++中的布爾表達式解析和評估
- 8. 布爾表達式
- 9. 布爾表達式
- 10. 布爾表達式
- 11. 解析布爾表達式沒有左手遞歸
- 12. 解析單語句布爾表達式樹
- 13. 解析布爾條件爲表達式樹
- 14. 解析算術/布爾表達式,但跳過捕獲
- 15. java中的布爾表達式分析器
- 16. 評估腳本解釋器中的布爾表達式
- 17. 快速布爾表達式求值器
- 18. 布爾表達式計算器錯誤
- 19. ANTLR 4是否允許我爲布爾表達式創建解析器?
- 20. 布爾表達式示例
- 21. 布爾表達式Where Where
- 22. 簡化布爾表達式
- 23. 簡化布爾表達式
- 24. 簡化布爾表達式
- 25. 混淆布爾表達式
- 26. simplifing布爾表達式
- 27. 在布爾表達式
- 28. 評估布爾表達式
- 29. 簡化布爾表達式
- 30. Null值 - 布爾表達式
我沒有直接的答案,但是你可能想看看Sean Weaver的[BDD Visualizer](http://www.cs.uc.edu/~weaversa/BDD_Visualizer.html)。 –