From 0e2476f33089c4b29bf4fb128344e6f293bf9396 Mon Sep 17 00:00:00 2001
From: Kylian Fontaine <kylian.fontaine@etu.univ-lyon1.fr>
Date: Mon, 17 Jun 2024 09:49:25 +0200
Subject: [PATCH] typo

---
 Readme.md     |  4 ++--
 lib/ast.ml    | 45 ++++++++++++++++++++++++++++++++-------------
 lib/gencoq.ml | 16 ++++++++--------
 3 files changed, 42 insertions(+), 23 deletions(-)

diff --git a/Readme.md b/Readme.md
index d9b4c87..3ce2a25 100644
--- a/Readme.md
+++ b/Readme.md
@@ -2,7 +2,7 @@
 
 ### Valeurs possibles pour chaque éléments de la description de l'environnement :
 
-- Sync := Permet de definir le type de synchronisation.
+- Sync := Permet de définir le type de synchronisation.
   - FSYNC -> Full synchrone
   - SSYNC -> Semi synchrone
   - ASYNC -> Asynchrone
@@ -12,7 +12,7 @@ exemple :
 Sync := ASYNC 
 ```
 
-- Space := Permet de definir l'espace dans le quel vont évolués les robots.
+- Space := Permet de définir l'espace dans le quel vont évoluer les robots.
   - R  -> une seul dimension
   - Rm -> millefeuille d'une dimension, correspondant par exemple a x routes paralelles
   - R2 -> plan 
diff --git a/lib/ast.ml b/lib/ast.ml
index 1c2217b..c865a8d 100644
--- a/lib/ast.ml
+++ b/lib/ast.ml
@@ -400,34 +400,44 @@ let info_space (i : information):bool =
     @return true si la description repond aux critères false sinon
     TODO: A finir/ utilisation de valeur par defaut si non fourni? pourquoi pas 
     *)
-
 let check_description (d : description) :bool =
 			let unique f d = List.length (List.filter f d) = 1
 			in 
 			match d with 
 			| Description (d',_) -> if not(unique info_sync d')
-                                  then (print_endline "Probleme de definition de la synchronisation"; false)
+                                  then (print_endline "Error: Problem of defining sync"; false)
 													    else (
                                   if not(unique info_space d') 
-                                    then (print_endline "Probleme de definition de l'espace";false)
+                                    then (print_endline "Error: Problem of defining space";false)
 													        else true
 														  )  ;;
 
-
+(**[get_sensors d] Renvoie la liste de sensors contenu dans la description [d]
+    @param description 
+    @return [sensor list] 
+    *)
 let get_sensors (d : description) : sensor list =
   match d with 
   | Description(d', _) -> (match List.find_opt (fun x -> match x with Sensors _ -> true | _-> false) d' with 
                           Some (Sensors s) -> s 
-                          | _ -> raise(Failure("Not find sensors")))
+                          | _ -> raise(Failure("Error: Not find Sensors")))
+
+(**[get_robot d] Renvoie la liste des champs robot contenu dans la descritpion [d]
+    @param description
+    @return [field list]*)
 let get_robot (Description(d', _) : description) : field list =
   match List.find_opt (fun x -> match x with Robot _ -> true | _-> false) d' with 
                           Some (Robot r) -> r 
-                          | _ -> raise(Failure("Not find sensors"))
+                          | _ -> raise(Failure("Error: Not find Robot"))
+
+(**[get_activelyup d] Renvoie la liste des string correspondant aux champs mis à jour par le robogram
+    @param description
+    @return [string list] *)
 let get_activelyup (d : description) : string list = 
   match d with 
   | Description(d', _) -> (match List.find_opt (fun x -> match x with ActivelyUpdate _ -> true | _-> false) d' with 
                           Some (ActivelyUpdate a) -> List.map string_of_valretr a
-                          | _ -> raise(Failure("Not find ActivelyUpdate")))
+                          | _ -> raise(Failure("Error: Not find ActivelyUpdate")))
 
 (** [check_sensor s r] verifie qu'un sensor [s] soit bien déclarer dans le robot [r],ou alors qu'il soit pas un sensor custom 
     @param [s] sensor à verifié
@@ -443,27 +453,36 @@ let check_sensor (s: sensor) (r:field list):bool =
 
 (** [check_sensors_desc d] verifie que la liste de sensors de la description correspond a des sensors de robot
     @param d description dans la quel on verifie sa liste de sensors avec sa déclaration de robot (field list)
-    @return true si les sensors sont custom et sont bien dans robot ou si il ne sont pas custom*)
+    @return [true] si les sensors sont custom et sont bien dans robot ou si il ne sont pas custom*)
 let check_sensors_desc (d:description) :bool =
    let res= List.find_opt (fun x -> not (check_sensor x (get_robot d))) (get_sensors d) in
     match res with 
-    | Some x -> print_endline("Erreur : " ^(match x with |Custom (x',_)-> x' | _->"")^" n'est pas déclarer en public dans robot"); false
+    | Some x -> print_endline("Error : " ^(match x with |Custom (x',_)-> x' | _->"")^" is not declared public in robot"); false
     | _-> true
 
+(**[check_activelyup d] verifie que les champs renseignés dans activelyupdate soient déclarés dans robot
+    @param d [description]
+    @return [bool]*)
 let check_activelyup (d:description) :bool =
     let field_to_pair f = List.map(fun x -> match x with Public x -> x | Private x -> x) f in
     let aux s l = List.exists (fun (x,_) -> x = s) (field_to_pair l) in
     let res = List.find_opt (fun x -> not (aux x (get_robot d))) (get_activelyup d) in
     match res with 
-    | Some x -> print_endline("Erreur : " ^x^" n'est pas déclarer en public dans robot"); false
+    | Some x -> print_endline("Error : " ^x^" x is not declared in robot"); false
     | _-> true
   
 
 (**[check_light d] si il y a des lumiere intern on verifie qu'elle soit pas renseigné en public
+                   et si extern pas dans private
     @param description [d] description du monde
     @return bool true si pas de lumiere intenre en public *)
 let check_light d : bool = 
-  let rec check flist = (fun x -> match x with 
-    |[] -> true
-    |Public (_,Light(Intern _))::_ -> false| _::t-> check t) flist in
+  let rec check flist = (
+    fun x -> match x with 
+    | [] -> true
+    | Public (_,Light(Intern _))::_ -> false
+    | Private (_, Light(Extern _))::_ -> false
+    | _::t-> check t
+   ) flist 
+  in
   check (get_robot d)
\ No newline at end of file
diff --git a/lib/gencoq.ml b/lib/gencoq.ml
index 8fe7a03..a952400 100644
--- a/lib/gencoq.ml
+++ b/lib/gencoq.ml
@@ -246,8 +246,6 @@ let require_space (s: space) : stmt =
     @param sensor list [s] est la liste des sensors renseignée dans la description du monde permettant de recupérer la multiplicité
     @return stmt *)
 let require_multi (s: sensor list) : stmt =
-  
-
   let limited =  if string_of_expression (get_range s) == "Full" then "" else "Limited"
     in
     if multi s
@@ -302,11 +300,13 @@ let generate_robogram (r : expr list) (d: information list) : stmt list =
   let valret = get_val_ret d in
   let valretcoq = if get_rigidity d = "Flexible"  then "(path " ^ valret ^ ")" else valret in
   match (List.map expr_to_coq r) with
-  | h::_ -> let h' = if get_rigidity d = "Flexible" then Formula.Let("aux s",h,Raw("paths_in_"^get_space d^" (aux s)")) else h in 
-            Def ("Robogram_pgm (s : observation)",Raw(valretcoq),h')
-            ::RawCoq(["Instance Robogram_pgm_compat : Proper (equiv ==> equiv) Robogram_pgm."])
-            ::proof_to_complete@
-            Def("Robogram",Raw("robogram"),Raw("{| pgm := Robogram_pgm; pgm_compat := Robogram_pgm_compat |}")):: []
+  | h::_ -> let h' = if get_rigidity d = "Flexible" then Formula.Let("aux s",h,Raw("paths_in_"^get_space d^" (aux s)")) 
+                     else h in 
+                     Def ("Robogram_pgm (s : observation)",Raw(valretcoq),h')
+                     ::RawCoq(["Instance Robogram_pgm_compat : Proper (equiv ==> equiv) Robogram_pgm."])
+                     ::proof_to_complete
+                     @Def("Robogram",Raw("robogram"),Raw("{| pgm := Robogram_pgm; pgm_compat := Robogram_pgm_compat |}"))
+                     ::[]
   | [] ->  Def ("Robogram_pgm (s : observation)",Raw(valretcoq),Raw("[]")) ::[]
 
 let generate (Description(d,r) : description) (section_name : string)=
@@ -317,4 +317,4 @@ let generate (Description(d,r) : description) (section_name : string)=
     Format.fprintf format_file "%a@." Coq.pretty_l ((generate_requires d)@[section]);
     close_out file_out
   else 
-    raise(Failure("Error internal light in public field"))
\ No newline at end of file
+    raise(Failure("Error light in wrong field"))
\ No newline at end of file
-- 
GitLab