From 6e7164b106494aa092c681f04ba70e152481f799 Mon Sep 17 00:00:00 2001
From: ploc <ploc@041b043f-8d7c-46b2-b46e-ef0dd855326e>
Date: Tue, 20 May 2014 11:47:57 +0000
Subject: [PATCH] Math lusi (trigo)

git-svn-id: https://cavale.enseeiht.fr/svn/lustrec/lustre_compiler/trunk@253 041b043f-8d7c-46b2-b46e-ef0dd855326e
---
 include/math.lusi           |  5 +++++
 src/main_lustre_compiler.ml | 37 ++++++++++++++++++-------------------
 2 files changed, 23 insertions(+), 19 deletions(-)
 create mode 100644 include/math.lusi

diff --git a/include/math.lusi b/include/math.lusi
new file mode 100644
index 00000000..015acb28
--- /dev/null
+++ b/include/math.lusi
@@ -0,0 +1,5 @@
+function pow (x:real; n: real) returns (y: real) prototype C lib m;
+function atan (x: real) returns (y: real) prototype C lib m;
+function sqrt (x: real) returns (y: real) prototype C lib m;
+function cos (x: real) returns (y: real) prototype C lib m;
+function sin (x: real) returns (y: real) prototype C lib m;
diff --git a/src/main_lustre_compiler.ml b/src/main_lustre_compiler.ml
index d5de1fc5..68d678e9 100644
--- a/src/main_lustre_compiler.ml
+++ b/src/main_lustre_compiler.ml
@@ -35,9 +35,9 @@ let check_stateless_decls decls =
   try
     Stateless.check_prog decls
   with (Stateless.Error (loc, err)) as exc ->
-    Format.eprintf "Stateless status error at loc %a: %a@."
-      Location.pp_loc loc
-      Stateless.pp_error err;
+    eprintf "Stateless status error %a%a@."
+      Stateless.pp_error err
+      Location.pp_loc loc;
     raise exc
 
 let type_decls env decls =  
@@ -47,9 +47,9 @@ let type_decls env decls =
       try
 	Typing.type_prog env decls
       with (Types.Error (loc,err)) as exc ->
-	Format.eprintf "Typing error at loc %a: %a@."
-	  Location.pp_loc loc
-	  Types.pp_error err;
+	eprintf "Typing error %a%a@."
+	  Types.pp_error err
+	  Location.pp_loc loc;
 	raise exc
     end 
   in
@@ -64,8 +64,7 @@ let clock_decls env decls =
       try
 	Clock_calculus.clock_prog env decls
       with (Clocks.Error (loc,err)) as exc ->
-	Location.print loc;
-	eprintf "Clock calculus error at loc %a: %a@." Location.pp_loc loc Clocks.pp_error err;
+	eprintf "Clock calculus error %a%a@." Clocks.pp_error err Location.pp_loc loc;
 	raise exc
     end
   in
@@ -88,9 +87,9 @@ let load_lusi own filename =
       Parse.report_error err;
       raise exc
     | Corelang.Error (loc, err) as exc -> (
-      Format.eprintf "Parsing error at loc %a: %a@."
-	Location.pp_loc loc
-       Corelang.pp_error err;
+      eprintf "Parsing error %a%a@."
+	Corelang.pp_error err
+	Location.pp_loc loc;
       raise exc
     )
 
@@ -118,9 +117,9 @@ let rec compile basename extension =
       Parse.report_error err;
       raise exc
     | Corelang.Error (loc, err) as exc ->
-      Format.eprintf "Parsing error at loc %a: %a@."
-	Location.pp_loc loc
-	Corelang.pp_error err;
+      eprintf "Parsing error %a%a@."
+	Corelang.pp_error err
+	Location.pp_loc loc;
       raise exc
   in
   (* Extracting dependencies *)
@@ -144,7 +143,7 @@ let rec compile basename extension =
 	  Env.overwrite type_env lusi_type_env,
 	  Env.overwrite clock_env lusi_clock_env      
       with Sys_error msg -> (
-	Format.eprintf "Failure: impossible to load library %s.@.%s@." s msg;
+	eprintf "Failure: impossible to load library %s.@.%s@." s msg;
 	exit 1
       )
     )  ([], Basic_library.type_env, Basic_library.clock_env) dependencies
@@ -233,15 +232,15 @@ let rec compile basename extension =
       Printers.pp_lusi_header lusi_fmt source_name prog
     )
     | (Types.Error (loc,err)) as exc ->
-      Format.eprintf "Type mismatch between computed type and declared type in lustre interface file: %a@."
+      eprintf "Type mismatch between computed type and declared type in lustre interface file: %a@."
 	Types.pp_error err;
       raise exc
     | Clocks.Error (loc, err) as exc ->
-      Format.eprintf "Clock mismatch between computed clock and declared clock in lustre interface file: %a@."
+      eprintf "Clock mismatch between computed clock and declared clock in lustre interface file: %a@."
 	Clocks.pp_error err;
       raise exc
     | Stateless.Error (loc, err) as exc ->
-      Format.eprintf "Stateless status mismatch between defined status and declared status in lustre interface file: %a@."
+      eprintf "Stateless status mismatch between defined status and declared status in lustre interface file: %a@."
 	Stateless.pp_error err;
       raise exc
   in
@@ -275,7 +274,7 @@ let rec compile basename extension =
     Unix.mkdir !Options.dest_dir (Unix.stat ".").Unix.st_perm
   );
   if (Unix.stat !Options.dest_dir).Unix.st_kind <> Unix.S_DIR then (
-    Format.eprintf "Failure: destination %s is not a directory.@.@." !Options.dest_dir;
+    eprintf "Failure: destination %s is not a directory.@.@." !Options.dest_dir;
     exit 1
   );
   (* Printing code *)
-- 
GitLab