我嘗試將java布爾表達式轉換爲Z3能夠理解的格式時遇到一些問題。由於項目的一些要求,我無法使用任何其他工具評估表達式。只有標識符可用於表達式中,而不是函數或更復雜的類型。將java布爾表達式轉換爲SMTlib
我也考慮過這種可能性是:
使用半熟或類似的工具建立一個解析器。這樣做的缺點是,我只想在將操作員轉換到SMT等效位置並可能添加括號後將其放置在放置操作員的位置,因此,此解決方案和涉及AST處理的工作似乎對我而言過度勞累。而且,我發現定義一個可以適合所有嵌套層次的語法有點複雜。
使用詞法分析器或其他類型的工具獲取令牌,然後使用類似於Shunting-yard algorithm的算法對其進行重新排序。在這種情況下,可能需要輸入所有的括號以避免某些問題。
使用可以解析表達式並讓其進行編輯的庫。到目前爲止,我還沒有發現任何東西,只能讓你評估表達的工具。
使用可以在符號之間直接轉換的東西。我一直在尋找,但我無法找到。儘管如此,這將使我的一天。
我查找過類似的問題,但我還沒有找到任何東西。我會欣賞你可能有的任何想法。提前致謝!
謝謝!我不知道那個項目,但我認爲它確實是我需要的。 – sui