From 34264f5b872af4b032e2c49c437e2c5f8921f281 Mon Sep 17 00:00:00 2001
From: Julien Signoles <julien.signoles@cea.fr>
Date: Fri, 20 Jan 2012 10:20:57 +0000
Subject: [PATCH] [e-acsl] comments

---
 src/plugins/e-acsl/doc/Changelog |  5 ++++-
 src/plugins/e-acsl/typing.ml     |  2 +-
 src/plugins/e-acsl/typing.mli    | 20 +++++++++++++++++++-
 3 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/src/plugins/e-acsl/doc/Changelog b/src/plugins/e-acsl/doc/Changelog
index 51dac6a9776..60cb51183fe 100644
--- a/src/plugins/e-acsl/doc/Changelog
+++ b/src/plugins/e-acsl/doc/Changelog
@@ -15,10 +15,13 @@
 #   E-ACSL: the Whole E-ACSL plug-in
 ###############################################################################
 
+- E-ACSL	[2012/01/20] Use GMP arithmetics only when required
+	        (i.e. mostly never in practice).
+
 ###################################
 Plugin E-ACSL 0.1 Nitrogen_20111001
 ###################################
 
--  E-ACSL         [2012/01/06] First release for the Hi-Lite FUI9 project.
+- E-ACSL	[2012/01/06] First release for the Hi-Lite FUI9 project.
 
 ###################################
diff --git a/src/plugins/e-acsl/typing.ml b/src/plugins/e-acsl/typing.ml
index 428c76dd7aa..7e2859479b4 100644
--- a/src/plugins/e-acsl/typing.ml
+++ b/src/plugins/e-acsl/typing.ml
@@ -29,7 +29,7 @@ module BI = My_bigint
 let is_representable n _k _s = BI.ge n BI.min_int64 && BI.le n BI.max_int64
 
 (******************************************************************************)
-(** Type Lattice *)
+(** Type Definitions: Intervals *)
 (******************************************************************************)
 
 type eacsl_typ =
diff --git a/src/plugins/e-acsl/typing.mli b/src/plugins/e-acsl/typing.mli
index d843afe3650..9af55e88bd2 100644
--- a/src/plugins/e-acsl/typing.mli
+++ b/src/plugins/e-acsl/typing.mli
@@ -26,21 +26,37 @@ open Cil_types
 (** {2 Typing} *)
 (******************************************************************************)
 
-val typ_of_term: term -> typ
 val type_named_predicate: predicate named -> unit
+(** Compute the type of each term of the given predicate. *)
+
 val type_term: term -> unit
+(** Compute the type of the given term. *)
+
+val typ_of_term: term -> typ
+(** Get the type of the given term. Must have been previously computed. *)
+
 val unsafe_set_term: term -> typ -> unit
+(** Modify the type of the given term. No verification is done to check that the
+    new type is correct. *)
+
 val clear: unit -> unit
+(** Remove all the previously computed types. *)
 
 (******************************************************************************)
 (** {2 Subtyping} *)
 (******************************************************************************)
 
 val principal_type: term -> term -> typ
+(** Get the principal type of the two given terms, that is the type which may
+    contain both of them. Their types must have been previously computed. *)
 
 val context_sensitive: 
   ?loc:location -> Env.t -> typ -> bool -> term option -> exp -> 
   exp * Env.t
+(** [context_sensitive env ty is_mpz_string t_opt e] converts [e] in [env] in
+    such a way that it becomes usable in a context of type [ty]. [t_opt], if
+    any, is a term denoting by [e]. [is_mpz_string] is [true] iff [e] is a
+    string denoting a MPZ integer. *)
 
 val is_representable: My_bigint.t -> ikind -> string option -> bool
 (** Is the given constant representable?
@@ -53,6 +69,8 @@ val is_representable: My_bigint.t -> ikind -> string option -> bool
 val compute_quantif_guards_ref
     : (predicate named -> logic_var list -> predicate named -> 
        (term * relation * logic_var * relation * term) list) ref
+(** Forward reference. *)
+
 
 (*
 Local Variables:
-- 
GitLab