mirror of
https://github.com/Z3Prover/z3
synced 2025-04-13 12:28:44 +00:00
Merge branch 'master' of https://github.com/z3prover/z3
This commit is contained in:
commit
509f80b1db
|
@ -338,26 +338,33 @@ def Z3_set_error_handler(ctx, hndlr, _elems=Elementaries(_lib.Z3_set_error_handl
|
|||
""")
|
||||
|
||||
for sig in _API2PY:
|
||||
name = sig[0]
|
||||
result = sig[1]
|
||||
params = sig[2]
|
||||
num = len(params)
|
||||
core_py.write("def %s(" % name)
|
||||
display_args(num)
|
||||
comma = ", " if num != 0 else ""
|
||||
core_py.write("%s_elems=Elementaries(_lib.%s)):\n" % (comma, name))
|
||||
lval = "r = " if result != VOID else ""
|
||||
core_py.write(" %s_elems.f(" % lval)
|
||||
display_args_to_z3(params)
|
||||
core_py.write(")\n")
|
||||
if len(params) > 0 and param_type(params[0]) == CONTEXT and not name in Unwrapped:
|
||||
core_py.write(" _elems.Check(a0)\n")
|
||||
if result == STRING:
|
||||
core_py.write(" return _to_pystr(r)\n")
|
||||
elif result != VOID:
|
||||
core_py.write(" return r\n")
|
||||
core_py.write("\n")
|
||||
core_py
|
||||
mk_py_wrapper_single(sig)
|
||||
if sig[1] == STRING:
|
||||
mk_py_wrapper_single(sig, decode_string=False)
|
||||
|
||||
def mk_py_wrapper_single(sig, decode_string=True):
|
||||
name = sig[0]
|
||||
result = sig[1]
|
||||
params = sig[2]
|
||||
num = len(params)
|
||||
def_name = name
|
||||
if not decode_string:
|
||||
def_name += '_bytes'
|
||||
core_py.write("def %s(" % def_name)
|
||||
display_args(num)
|
||||
comma = ", " if num != 0 else ""
|
||||
core_py.write("%s_elems=Elementaries(_lib.%s)):\n" % (comma, name))
|
||||
lval = "r = " if result != VOID else ""
|
||||
core_py.write(" %s_elems.f(" % lval)
|
||||
display_args_to_z3(params)
|
||||
core_py.write(")\n")
|
||||
if len(params) > 0 and param_type(params[0]) == CONTEXT and not name in Unwrapped:
|
||||
core_py.write(" _elems.Check(a0)\n")
|
||||
if result == STRING and decode_string:
|
||||
core_py.write(" return _to_pystr(r)\n")
|
||||
elif result != VOID:
|
||||
core_py.write(" return r\n")
|
||||
core_py.write("\n")
|
||||
|
||||
|
||||
## .NET API native interface
|
||||
|
@ -1704,6 +1711,7 @@ def write_exe_c_preamble(exe_c):
|
|||
def write_core_py_post(core_py):
|
||||
core_py.write("""
|
||||
# Clean up
|
||||
del _lib
|
||||
del _default_dirs
|
||||
del _all_dirs
|
||||
del _ext
|
||||
|
|
Loading…
Reference in a new issue