From de5d11d62557b4e1ff84690d0bd81eef15a8e18e Mon Sep 17 00:00:00 2001
From: Erwan Jahier <jahier@imag.fr>
Date: Fri, 14 Mar 2008 15:24:09 +0100
Subject: [PATCH] Translate assertions.

---
 src/compiledData.ml                  | 4 ++--
 src/evalEq.ml                        | 9 ++++++++-
 src/evalEq.mli                       | 5 ++++-
 src/lazyCompiler.ml                  | 5 +++--
 src/test/should_work/call/call06.lus | 3 ++-
 5 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/src/compiledData.ml b/src/compiledData.ml
index 62608c0b..00a5fef9 100644
--- a/src/compiledData.ml
+++ b/src/compiledData.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 14/03/2008 (at 10:59) by Erwan Jahier> *)
+(** Time-stamp: <modified the 14/03/2008 (at 15:21) by Erwan Jahier> *)
 
 (** 
 
@@ -312,7 +312,7 @@ and node_def_eff =
   | BodyEff of node_body_eff
 
 and node_body_eff = {
-  asserts_eff : (val_eff srcflagged) list;
+  asserts_eff : (val_exp_eff srcflagged) list;
   eqs_eff     : (eq_info_eff srcflagged) list;
 }
 
diff --git a/src/evalEq.ml b/src/evalEq.ml
index abe6a37a..4b20930e 100644
--- a/src/evalEq.ml
+++ b/src/evalEq.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 14/03/2008 (at 09:45) by Erwan Jahier> *)
+(** Time-stamp: <modified the 14/03/2008 (at 15:17) by Erwan Jahier> *)
 
 open Lxm
 open SyntaxTreeCore
@@ -158,6 +158,13 @@ and (translate_slice_info  : id_solver -> slice_info -> int -> Lxm.t ->
     EvalConst.eval_array_slice id_solver si size lxm
 
 
+(**********************************************************************************)
+let (translate_assertions : CompiledData.id_solver -> 
+      SyntaxTreeCore.val_exp  Lxm.srcflagged -> 
+      CompiledData.val_exp_eff  Lxm.srcflagged) =
+  fun id_solver vef -> 
+    Lxm.flagit (translate_val_exp id_solver vef.it) vef.src
+
 (**********************************************************************************)
 
 let (type_check: eq_info_eff srcflagged -> unit) =
diff --git a/src/evalEq.mli b/src/evalEq.mli
index 441b63ba..b43c39f0 100644
--- a/src/evalEq.mli
+++ b/src/evalEq.mli
@@ -1,6 +1,9 @@
-(** Time-stamp: <modified the 12/03/2008 (at 14:14) by Erwan Jahier> *)
+(** Time-stamp: <modified the 14/03/2008 (at 15:17) by Erwan Jahier> *)
 
 
 
 val f : CompiledData.id_solver -> SyntaxTreeCore.eq_info Lxm.srcflagged -> 
   CompiledData.eq_info_eff Lxm.srcflagged
+
+val translate_assertions : CompiledData.id_solver -> 
+  SyntaxTreeCore.val_exp  Lxm.srcflagged -> CompiledData.val_exp_eff  Lxm.srcflagged
diff --git a/src/lazyCompiler.ml b/src/lazyCompiler.ml
index 2b3e2ef4..4e5566ae 100644
--- a/src/lazyCompiler.ml
+++ b/src/lazyCompiler.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 14/03/2008 (at 13:28) by Erwan Jahier> *)
+(** Time-stamp: <modified the 14/03/2008 (at 15:16) by Erwan Jahier> *)
 
 
 open Lxm
@@ -602,7 +602,8 @@ and (node_check_do: t -> CompiledData.node_key -> Lxm.t -> SymbolTab.t ->
 			    filled
 			 *)
 		 BodyEff {
-		   asserts_eff = []; (* XXX finish me! *)
+		   asserts_eff = 
+		     List.map (EvalEq.translate_assertions node_id_solver) nb.asserts;
 		   eqs_eff = List.map (EvalEq.f node_id_solver) nb.eqs; 
 		 }
 	      )
diff --git a/src/test/should_work/call/call06.lus b/src/test/should_work/call/call06.lus
index c174ddfb..293cb36b 100644
--- a/src/test/should_work/call/call06.lus
+++ b/src/test/should_work/call/call06.lus
@@ -3,5 +3,6 @@ extern function bip(x,y : bool) returns (z,t : bool);
 
 node call06(x,y : bool) returns (z,t : bool);
 let
-	(z,t) = bip(x,y);
+  assert (x=>z);
+  (z,t) = bip(x,y);
 tel
-- 
GitLab