[英]How to read smtlib2 strings using Z3 C++ api?
我想從給定的SMTLIB2文件創建一個expr
對象。 我可以在C示例中看到Z3_parse_smtlib_string
函數。 在expr
類中是否有一個包裝器?
Z3 C ++ API沒有明確地將此功能作為expr類的一部分提供。 但是,C ++ API可以與C API一起使用,即,可以使用函數Z3_parse_smtlib_string
(或... _file
)來實現此目的。 請注意,此函數返回Z3_ast
,必須將其轉換為expr
對象才能返回到C ++“world”。
一個簡單的例子:
#include <z3++.h>
...
context ctx;
Z3_ast a = Z3_parse_smtlib2_file(ctx, "test.smt2", 0, 0, 0, 0, 0, 0);
expr e(ctx, a);
std::cout << "Result = " << e << std::endl;
由於Z3_parse_smtlib2_*
函數不執行錯誤檢查,因此在發生錯誤時不會引發異常。 這可以通過調用context::check_error()
來實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.