summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Auvolat <alex.auvolat@ansys.com>2014-06-25 09:51:51 +0200
committerAlex Auvolat <alex.auvolat@ansys.com>2014-06-25 09:51:51 +0200
commit255ec4a98d329d021dbc86ca81a59d562efaa8d1 (patch)
treea20f598bea8a57c0a29c537dff7ee1d9796f2998
parentb98652f71d6553136ff676cad7c1ee80f80f3405 (diff)
downloadscade-analyzer-255ec4a98d329d021dbc86ca81a59d562efaa8d1.tar.gz
scade-analyzer-255ec4a98d329d021dbc86ca81a59d562efaa8d1.zip
Differentiate pre witin different scopes.
-rw-r--r--abstract/transform.ml2
-rw-r--r--frontend/typing.ml1
2 files changed, 3 insertions, 0 deletions
diff --git a/abstract/transform.ml b/abstract/transform.ml
index 82b6731..b9c173d 100644
--- a/abstract/transform.ml
+++ b/abstract/transform.ml
@@ -61,6 +61,7 @@ let rec f_of_neexpr td (node, prefix) where expr =
| _ -> le invalid_arity "binary operator") a
(* temporal *)
| AST_pre(expr, id) ->
+ let id = node^"/"^id in
let typ = type_expr td.rp node expr in
where
(List.mapi
@@ -183,6 +184,7 @@ let rec f_of_scope active td (node, prefix, eqs) assume_guarantees =
let eq_i = f_and_list (List.map instance_eq (extract_instances td.rp.p e)) in
let pre_expr (id, expr) =
+ let id = node^"/"^id in
if active then
f_of_neexpr td (node, prefix) (fun elist ->
list_fold_op f_and
diff --git a/frontend/typing.ml b/frontend/typing.ml
index aca8d15..0f19b93 100644
--- a/frontend/typing.ml
+++ b/frontend/typing.ml
@@ -136,6 +136,7 @@ let rec extract_all_vars rp (node, prefix, eqs) n_vars =
List.flatten
(List.map
(fun (id, expr) ->
+ let id = node^"/"^id in
let vd =
List.mapi
(fun i t -> false, id^"."^(string_of_int i), t)