diff options
author | Alex Auvolat <alex.auvolat@ansys.com> | 2014-07-10 18:01:28 +0200 |
---|---|---|
committer | Alex Auvolat <alex.auvolat@ansys.com> | 2014-07-10 18:01:28 +0200 |
commit | 9ca8bcb35eb0385c8f9852045bb282c445bd6901 (patch) | |
tree | fde546b834bee10f7bdcfaefe3f54d322e44524f /abstract/transform.ml | |
parent | 354e8ed50b1fc1b6dadc1a2a8d54837b5b47e6be (diff) | |
download | scade-analyzer-9ca8bcb35eb0385c8f9852045bb282c445bd6901.tar.gz scade-analyzer-9ca8bcb35eb0385c8f9852045bb282c445bd6901.zip |
Add heuristic...
Diffstat (limited to 'abstract/transform.ml')
-rw-r--r-- | abstract/transform.ml | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/abstract/transform.ml b/abstract/transform.ml index 0144637..5fe4ed1 100644 --- a/abstract/transform.ml +++ b/abstract/transform.ml @@ -442,12 +442,14 @@ let rec f_of_scope active td (node, prefix, eqs) (clock_scope, rst_exprs as cs) (must_reset_c cr (fun _ -> false)) (BEnumCons(E_EQ, nstv, EItem st.st_name)) | (c, (target, l), rst)::q -> - f_ternary - (f_of_expr td (node, prefix, clock_scope) c) - (f_and - (BEnumCons(E_EQ, nstv, EItem target)) - (must_reset_c cr (fun i -> rst && i = target))) - (aux q) + let c = f_of_expr td (node, prefix, clock_scope) c in + let b1 = + f_and + (BEnumCons(E_EQ, nstv, EItem target)) + (must_reset_c cr (fun i -> rst && i = target)) + in + let b2 = aux q in + f_ternary c b1 b2 in let trans_code = must_reset_c cnr (fun _ -> false) in let trans_code = f_and trans_code (aux st.until) in |