summaryrefslogtreecommitdiff
path: root/src/lem_interp
diff options
context:
space:
mode:
authorKathy Gray2015-07-24 13:52:38 +0100
committerKathy Gray2015-07-24 13:52:38 +0100
commit43427019f9f2c1e64a07ec6ee3caef8bd1a5c165 (patch)
tree49e029dbd39885e18ea7ecfef2816ba888ad5895 /src/lem_interp
parente5083eca71d9d4a1092c4553c6ca448e256e6738 (diff)
Turn back off new analysis style until it works
Diffstat (limited to 'src/lem_interp')
-rw-r--r--src/lem_interp/interp.lem12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/lem_interp/interp.lem b/src/lem_interp/interp.lem
index d9b089e0..15584b60 100644
--- a/src/lem_interp/interp.lem
+++ b/src/lem_interp/interp.lem
@@ -941,7 +941,11 @@ let env_to_let mode (LEnv _ env) (E_aux e annot) taint_env =
(E_aux (E_tuple es) (Unknown,tan))) (Unknown,tan))
(E_aux e annot))
annot, taint_env)
-end
+end
+(*
+let fix_up_nondet typ branches annot =
+ match typ with
+ | T_id "unit" -> *)
(* match_pattern returns a tuple of (pattern_matches? , pattern_passed_due_to_unknown?, env_of_pattern *)
val match_pattern : top_level -> pat tannot -> value -> bool * bool * lenv
@@ -1375,7 +1379,7 @@ and interp_main mode t_level l_env l_mem (E_aux exp (l,annot)) =
| (V_vector _ _ [(V_lit(L_aux L_one _))],true) -> interp_main mode t_level l_env lm thn
| (V_vector _ _ [(V_lit(L_aux L_one _))],false) -> debug_out Nothing Nothing thn t_level lm l_env
| (V_unknown,_) ->
- interp_main mode t_level l_env lm (E_aux (E_nondet [thn;els]) (l,(non_det_annot annot)))
+ interp_main mode t_level l_env lm (E_aux (E_block [thn;els]) (l,annot))
| (_,true) -> interp_main mode t_level l_env lm els
| (_,false) -> debug_out Nothing Nothing els t_level lm l_env end)
(fun a -> update_stack a (add_to_top_frame (fun c env -> (E_aux (E_if c thn els) (l,annot), env))))
@@ -1467,7 +1471,7 @@ and interp_main mode t_level l_env l_mem (E_aux exp (l,annot)) =
let (lets,taint_env) =
List.foldr (fun (env,_,exp) (rst,taint_env) ->
let (e,t_e) = env_to_let mode env exp taint_env in (e::rst,t_e)) ([],l_env) multi_matches in
- interp_main mode t_level taint_env lm (E_aux (E_nondet lets) (l,(non_det_annot annot)))
+ interp_main mode t_level taint_env lm (E_aux (E_block lets) (l,annot))
end)
(fun a -> update_stack a (add_to_top_frame (fun e env -> (E_aux (E_case e pats) (l,annot), env))))
| E_record(FES_aux (FES_Fexps fexps _) fes_annot) ->
@@ -1874,7 +1878,7 @@ and interp_main mode t_level l_env l_mem (E_aux exp (l,annot)) =
let (lets,taint_env) =
List.foldr (fun (env,_,exp) (rst,taint_env) ->
let (e,t_e) = env_to_let mode env exp taint_env in (e::rst,t_e)) ([],l_env) multi_matches in
- interp_main mode t_level taint_env lm (E_aux (E_nondet lets) (l,(non_det_annot annot)))
+ interp_main mode t_level taint_env lm (E_aux (E_block lets) (l,annot))
end)
| Nothing ->
(Error l (String.stringAppend "Internal error: function with tag global unfound " name),lm,le) end)