From 07e4781ab764ced006108b7f16649f83dfd5b8f3 Mon Sep 17 00:00:00 2001
From: Erwan Jahier <jahier@imag.fr>
Date: Wed, 20 Feb 2008 16:10:57 +0100
Subject: [PATCH] Some progress in the non-regression tests: add an EvalNode.f
 that currently only evaluates predef nodes.

---
 src/Makefile          |  2 ++
 src/evalConst.ml      | 17 ++++++++++++++---
 src/evalNode.ml       | 15 +++++++++++++++
 src/evalNode.mli      |  4 ++++
 src/lazyCompiler.ml   | 12 +++++-------
 src/test/test.res.exp |  7 ++++---
 6 files changed, 44 insertions(+), 13 deletions(-)
 create mode 100644 src/evalNode.ml
 create mode 100644 src/evalNode.mli

diff --git a/src/Makefile b/src/Makefile
index b79e7f35..19230d7a 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -35,6 +35,8 @@ SOURCES =  \
 	./evalConst.ml \
 	./evalType.mli \
 	./evalType.ml \
+	./evalNode.mli \
+	./evalNode.ml \
 	./lazyCompiler.ml \
 	./lazyCompiler.mli \
 	./compile.ml \
diff --git a/src/evalConst.ml b/src/evalConst.ml
index 98d546ae..8f9bf2de 100644
--- a/src/evalConst.ml
+++ b/src/evalConst.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 12/02/2008 (at 11:05) by Erwan Jahier> *)
+(** Time-stamp: <modified the 20/02/2008 (at 16:04) by Erwan Jahier> *)
 
 
 open Printf 
@@ -312,8 +312,19 @@ let op_computer (posop : predef_node) (src: Lxm.t)
 		)
 	      | [x] -> type_error [x] "struct type"
 	      | x -> arity_error x "1"
-	  ) |
-	      _ -> assert false
+	  ) 
+	| ITERATOR_n _ -> assert false
+	| MERGE_n _ -> assert false
+	| ARRAY_SLICE_n _ -> assert false
+	| ARRAY_ACCES_n _ -> assert false
+	| PROJ_n _ -> assert false
+	| ARRAY_n -> assert false
+	| TUPLE_n -> assert false
+	| WITH_n -> assert false
+	| CONCAT_n -> assert false
+	| HAT_n -> assert false
+	| FBY_n -> assert false
+	| NULL_exp -> assert false
   )
 
 (*----------------------------------------------------
diff --git a/src/evalNode.ml b/src/evalNode.ml
new file mode 100644
index 00000000..08976eb0
--- /dev/null
+++ b/src/evalNode.ml
@@ -0,0 +1,15 @@
+(** Time-stamp: <modified the 20/02/2008 (at 16:06) by Erwan Jahier> *)
+
+
+open SyntaxTree
+open SyntaxTreeCore
+open CompiledData
+
+let rec (f : CompiledData.id_solver -> SyntaxTreeCore.node_exp -> 
+	  CompiledData.node_eff) =
+  fun id_solver ne ->
+    match ne with
+      | CallPreDef predef_node -> PredefEff predef_node
+      | CallUsrDef (idref, static_args) -> assert false
+
+	
diff --git a/src/evalNode.mli b/src/evalNode.mli
new file mode 100644
index 00000000..7660ccdb
--- /dev/null
+++ b/src/evalNode.mli
@@ -0,0 +1,4 @@
+(** Time-stamp: <modified the 20/02/2008 (at 15:29) by Erwan Jahier> *)
+
+
+val f : CompiledData.id_solver -> SyntaxTreeCore.node_exp -> CompiledData.node_eff
diff --git a/src/lazyCompiler.ml b/src/lazyCompiler.ml
index 7de73649..0b67b718 100644
--- a/src/lazyCompiler.ml
+++ b/src/lazyCompiler.ml
@@ -1,4 +1,4 @@
-(** Time-stamp: <modified the 20/02/2008 (at 15:23) by Erwan Jahier> *)
+(** Time-stamp: <modified the 20/02/2008 (at 15:41) by Erwan Jahier> *)
 
 
 open Lxm
@@ -649,11 +649,9 @@ and (check_static_arg : CompiledData.id_solver ->
 	      TypeStaticArgEff (id, teff)
 
 	| StaticArgNode(ne), StaticParamNode(id,_,_,_)->
-	    finish_me (" node parameter handling ");
-(* 	    let neff = EvalNode.f node_id_solver ne in *)
-(* 	      NodeStaticArgEff (id, neff) *)
-	    assert false
-
+	    let neff = EvalNode.f node_id_solver ne in
+	      NodeStaticArgEff (id, neff)
+		
 
 	| StaticArgType _, StaticParamNode(id,_,_,_) 
 	| StaticArgType _, StaticParamConst(id,_) 
@@ -665,7 +663,7 @@ and (check_static_arg : CompiledData.id_solver ->
 	| StaticArgConst _, StaticParamType(id) 
 	     -> 
 	    finish_me "write a nice error message!";
-	    assert false
+	    assert false (* can it occur? *)
 
     in
       sa_eff
diff --git a/src/test/test.res.exp b/src/test/test.res.exp
index 835628c7..d299cccc 100644
--- a/src/test/test.res.exp
+++ b/src/test/test.res.exp
@@ -172,11 +172,12 @@ End of Syntax table dump. 
 	Exported constants:
 	Exported nodes:
  ### skipping fold_left
+		node dummy::consensus_6_bis = dummy::fold_left<<type bool, type bool, const 6, operator and>>(bool, bool^6) returns (bool) on clock XXX
 
-	XXX LazyCompiler: node parameter handling  ->  finish me!
+		node dummy::consensus_6 = dummy::consensus_6(bool^6) returns (bool) on clock XXX
 
-*** oops: an internal error occurred in file lazyCompiler.ml, line 655, column 5
-*** when compiling lustre program t2.lus
+ ### skipping consensus_bis
+ ### skipping consensus
  
 ----------------------------------------------------------------------
 ====> ../lus2lic -vl 3  test.lus
-- 
GitLab