diff options
| author | Thomas Bauereiss | 2018-05-08 18:48:18 +0100 |
|---|---|---|
| committer | Thomas Bauereiss | 2018-05-09 14:40:30 +0100 |
| commit | 972d349919fc5ebe911604330ea3c80e70fdcfad (patch) | |
| tree | 4307d3580852321185337e41ebe77307f746e6e2 /src | |
| parent | b6b46102fc49eae53c27d5d6540d41981c75da0c (diff) | |
Add tests for Isabelle->OCaml generation for CHERI and AArch64
Diffstat (limited to 'src')
| -rw-r--r-- | src/gen_lib/state_monad.lem | 13 | ||||
| -rw-r--r-- | src/type_check.mli | 2 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/gen_lib/state_monad.lem b/src/gen_lib/state_monad.lem index 8253b800..a2919762 100644 --- a/src/gen_lib/state_monad.lem +++ b/src/gen_lib/state_monad.lem @@ -265,3 +265,16 @@ let update_reg_field_bit regfield i reg_val bit = let new_field_value = set_bit (regfield.field_is_inc) current_field_value i (to_bitU bit) in regfield.set_field reg_val new_field_value let write_reg_field_bit reg regfield i = update_reg reg (update_reg_field_bit regfield i)*) + +(* TODO Add Show typeclass for value and exception type *) +val show_result : forall 'a 'e. result 'a 'e -> string +let show_result = function + | Value _ -> "Value ()" + | Ex (Failure msg) -> "Failure " ^ msg + | Ex (Throw _) -> "Throw" +end + +val prerr_results : forall 'a 'e 's. SetType 's => set (result 'a 'e * 's) -> unit +let prerr_results rs = + let _ = Set.map (fun (r, _) -> let _ = prerr_endline (show_result r) in ()) rs in + () diff --git a/src/type_check.mli b/src/type_check.mli index a5d38363..1c0e2f09 100644 --- a/src/type_check.mli +++ b/src/type_check.mli @@ -271,6 +271,8 @@ val destruct_exist : Env.t -> typ -> (kid list * n_constraint * typ) option val destruct_range : Env.t -> typ -> (kid list * n_constraint * nexp * nexp) option +val destruct_numeric : Env.t -> typ -> (kid list * n_constraint * nexp) option + val destruct_vector : Env.t -> typ -> (nexp * order * typ) option type uvar = |
