summaryrefslogtreecommitdiff
path: root/abstract/transform.ml
diff options
context:
space:
mode:
authorAlex Auvolat <alex.auvolat@ansys.com>2014-07-10 18:01:28 +0200
committerAlex Auvolat <alex.auvolat@ansys.com>2014-07-10 18:01:28 +0200
commit9ca8bcb35eb0385c8f9852045bb282c445bd6901 (patch)
treefde546b834bee10f7bdcfaefe3f54d322e44524f /abstract/transform.ml
parent354e8ed50b1fc1b6dadc1a2a8d54837b5b47e6be (diff)
downloadscade-analyzer-9ca8bcb35eb0385c8f9852045bb282c445bd6901.tar.gz
scade-analyzer-9ca8bcb35eb0385c8f9852045bb282c445bd6901.zip
Add heuristic...
Diffstat (limited to 'abstract/transform.ml')
-rw-r--r--abstract/transform.ml14
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