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