mirror of
https://github.com/Z3Prover/z3
synced 2025-04-07 18:05:21 +00:00
More new ML API
Signed-off-by: Christoph M. Wintersteiger <cwinter@microsoft.com>
This commit is contained in:
parent
2a6c74bc13
commit
954d92a513
|
@ -2777,13 +2777,13 @@ def mk_z3consts_ml(api_files):
|
|||
efile.write(' | %s \n' % k[3:]) # strip Z3_
|
||||
efile.write('\n')
|
||||
efile.write('(** Convert %s to int*)\n' % name[3:])
|
||||
efile.write('let %s2int x : int =\n' % (name[3:])) # strip Z3_
|
||||
efile.write('let int_of_%s x : int =\n' % (name[3:])) # strip Z3_
|
||||
efile.write(' match x with\n')
|
||||
for k, i in decls.iteritems():
|
||||
efile.write(' | %s -> %d\n' % (k[3:], i))
|
||||
efile.write('\n')
|
||||
efile.write('(** Convert int to %s*)\n' % name[3:])
|
||||
efile.write('let int2%s x : %s =\n' % (name[3:],name[3:])) # strip Z3_
|
||||
efile.write('let %s_of_int x : %s =\n' % (name[3:],name[3:])) # strip Z3_
|
||||
efile.write(' match x with\n')
|
||||
for k, i in decls.iteritems():
|
||||
efile.write(' | %d -> %s\n' % (i, k[3:]))
|
||||
|
|
|
@ -1154,7 +1154,9 @@ def mk_ml():
|
|||
for k, v in Type2Str.iteritems():
|
||||
if is_obj(k):
|
||||
ml_native.write('and %s = ptr\n' % v.lower())
|
||||
ml_native.write('\nexception Exception of string\n\n')
|
||||
ml_native.write('\nexternal is_null : ptr -> bool\n')
|
||||
ml_native.write(' = "n_is_null"\n\n')
|
||||
ml_native.write('exception Exception of string\n\n')
|
||||
|
||||
# ML declarations
|
||||
ml_native.write(' module ML2C = struct\n\n')
|
||||
|
@ -1219,9 +1221,9 @@ def mk_ml():
|
|||
i = i + 1
|
||||
ml_native.write(') in\n')
|
||||
if len(params) > 0 and param_type(params[0]) == CONTEXT:
|
||||
ml_native.write(' let err = (int2error_code (ML2C.n_get_error_code a0)) in \n')
|
||||
ml_native.write(' let err = (error_code_of_int (ML2C.n_get_error_code a0)) in \n')
|
||||
ml_native.write(' if err <> OK then\n')
|
||||
ml_native.write(' raise (Exception (ML2C.n_get_error_msg_ex a0 (error_code2int err)))\n')
|
||||
ml_native.write(' raise (Exception (ML2C.n_get_error_msg_ex a0 (int_of_error_code err)))\n')
|
||||
ml_native.write(' else\n')
|
||||
if result == VOID and len(op) == 0:
|
||||
ml_native.write(' ()\n')
|
||||
|
@ -1290,6 +1292,9 @@ def mk_ml():
|
|||
ml_wrapper.write('#ifdef __cplusplus\n')
|
||||
ml_wrapper.write('extern "C" {\n')
|
||||
ml_wrapper.write('#endif\n\n')
|
||||
ml_wrapper.write('CAMLprim value n_is_null(value p) {\n')
|
||||
ml_wrapper.write(' return Val_bool(Data_custom_val(p) == 0);\n')
|
||||
ml_wrapper.write('}\n\n')
|
||||
for name, result, params in _dotnet_decls:
|
||||
ip = inparams(params)
|
||||
op = outparams(params)
|
||||
|
|
|
@ -7,4 +7,4 @@ all:
|
|||
|
||||
doc: *.ml
|
||||
mkdir -p doc
|
||||
ocamldoc -html -d doc -I ../../../bld_dbg/api/ml *.ml -hide Z3
|
||||
ocamldoc -html -d doc -I ../../../bld_dbg/api/ml -sort *.ml -hide Z3
|
||||
|
|
1025
src/api/ml/z3.ml
1025
src/api/ml/z3.ml
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue