summaryrefslogtreecommitdiff
path: root/ocamldoc/odoc_value.ml
diff options
context:
space:
mode:
Diffstat (limited to 'ocamldoc/odoc_value.ml')
-rw-r--r--ocamldoc/odoc_value.ml133
1 files changed, 0 insertions, 133 deletions
diff --git a/ocamldoc/odoc_value.ml b/ocamldoc/odoc_value.ml
deleted file mode 100644
index b001f1464f..0000000000
--- a/ocamldoc/odoc_value.ml
+++ /dev/null
@@ -1,133 +0,0 @@
-(***********************************************************************)
-(* OCamldoc *)
-(* *)
-(* Maxence Guesdon, projet Cristal, INRIA Rocquencourt *)
-(* *)
-(* Copyright 2001 Institut National de Recherche en Informatique et *)
-(* en Automatique. All rights reserved. This file is distributed *)
-(* under the terms of the Q Public License version 1.0. *)
-(* *)
-(***********************************************************************)
-
-(* $Id$ *)
-
-(** Representation and manipulation of values, class attributes and class methods. *)
-
-module Name = Odoc_name
-
-(** Types *)
-
-(** Representation of a value. *)
-type t_value = {
- val_name : Name.t ;
- mutable val_info : Odoc_types.info option ;
- val_type : Types.type_expr ;
- val_recursive : bool ;
- mutable val_parameters : Odoc_parameter.parameter list ;
- mutable val_code : string option ;
- mutable val_loc : Odoc_types.location ;
- }
-
-(** Representation of a class attribute. *)
-type t_attribute = {
- att_value : t_value ; (** an attribute has almost all the same information
- as a value *)
- att_mutable : bool ;
- }
-
-(** Representation of a class method. *)
-type t_method = {
- met_value : t_value ; (** a method has almost all the same information
- as a value *)
- met_private : bool ;
- met_virtual : bool ;
- }
-
-(** Functions *)
-
-(** Returns the text associated to the given parameter name
- in the given value, or None. *)
-let value_parameter_text_by_name v name =
- match v.val_info with
- None -> None
- | Some i ->
- try
- let t = List.assoc name i.Odoc_types.i_params in
- Some t
- with
- Not_found ->
- None
-
-(** Update the parameters text of a t_value, according to the val_info field. *)
-let update_value_parameters_text v =
- let f p =
- Odoc_parameter.update_parameter_text (value_parameter_text_by_name v) p
- in
- List.iter f v.val_parameters
-
-(** Create a list of (parameter name, typ) from a type, according to the arrows.
- [parameter_list_from_arrows t = [ a ; b ]] if t = a -> b -> c.*)
-let parameter_list_from_arrows typ =
- let rec iter t =
- match t.Types.desc with
- Types.Tarrow (l, t1, t2, _) ->
- (l, t1) :: (iter t2)
- | _ ->
- []
- in
- iter typ
-
-(** Create a list of parameters with dummy names "??" from a type list.
- Used when we want to merge the parameters of a value, from the .ml
- and the .mli file. In the .mli file we don't have parameter names
- so there is nothing to merge. With this dummy list we can merge the
- parameter names from the .ml and the type from the .mli file. *)
-let dummy_parameter_list typ =
- let normal_name s =
- match s with
- "" -> s
- | _ ->
- match s.[0] with
- '?' -> String.sub s 1 ((String.length s) - 1)
- | _ -> s
- in
- Printtyp.mark_loops typ;
- let liste_param = parameter_list_from_arrows typ in
- let rec iter (label, t) =
- match t.Types.desc with
- | Types.Ttuple l ->
- if label = "" then
- Odoc_parameter.Tuple
- (List.map (fun t2 -> iter ("", t2)) l, t)
- else
- (* if there is a label, then we don't want to decompose the tuple *)
- Odoc_parameter.Simple_name
- { Odoc_parameter.sn_name = normal_name label ;
- Odoc_parameter.sn_type = t ;
- Odoc_parameter.sn_text = None }
- | Types.Tlink t2
- | Types.Tsubst t2 ->
- (iter (label, t2))
-
- | _ ->
- Odoc_parameter.Simple_name
- { Odoc_parameter.sn_name = normal_name label ;
- Odoc_parameter.sn_type = t ;
- Odoc_parameter.sn_text = None }
- in
- List.map iter liste_param
-
-(** Return true if the value is a function, i.e. has a functional type.*)
-let is_function v =
- let rec f t =
- match t.Types.desc with
- Types.Tarrow _ ->
- true
- | Types.Tlink t ->
- f t
- | _ ->
- false
- in
- f v.val_type
-
-