143 lines
5.8 KiB
OCaml
143 lines
5.8 KiB
OCaml
(**************************************************************************)
|
|
(* *)
|
|
(* OCaml *)
|
|
(* *)
|
|
(* 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 GNU Lesser General Public License version 2.1, with the *)
|
|
(* special exception on linking described in the file LICENSE. *)
|
|
(* *)
|
|
(**************************************************************************)
|
|
|
|
(** Types for the information collected in comments. *)
|
|
|
|
(** The different kinds of element references. *)
|
|
type ref_kind =
|
|
RK_module
|
|
| RK_module_type
|
|
| RK_class
|
|
| RK_class_type
|
|
| RK_value
|
|
| RK_type
|
|
| RK_extension
|
|
| RK_exception
|
|
| RK_attribute
|
|
| RK_method
|
|
| RK_section of text
|
|
| RK_recfield
|
|
| RK_const
|
|
|
|
and text_element =
|
|
| Raw of string (** Raw text. *)
|
|
| Code of string (** The string is source code. *)
|
|
| CodePre of string (** The string is pre-formatted source code. *)
|
|
| Verbatim of string (** String 'as is'. *)
|
|
| Bold of text (** Text in bold style. *)
|
|
| Italic of text (** Text in italic. *)
|
|
| Emphasize of text (** Emphasized text. *)
|
|
| Center of text (** Centered text. *)
|
|
| Left of text (** Left alignment. *)
|
|
| Right of text (** Right alignment. *)
|
|
| List of text list (** A list. *)
|
|
| Enum of text list (** An enumerated list. *)
|
|
| Newline (** To force a line break. *)
|
|
| Block of text (** Like html's block quote. *)
|
|
| Title of int * string option * text
|
|
(** Style number, optional label, and text. *)
|
|
| Latex of string (** A string for latex. *)
|
|
| Link of string * text (** A reference string and the link text. *)
|
|
| Ref of string * ref_kind option * text option
|
|
(** A reference to an element. Complete name and kind. An optional
|
|
text can be given to display this text instead of the element name.*)
|
|
| Superscript of text (** Superscripts. *)
|
|
| Subscript of text (** Subscripts. *)
|
|
| Module_list of string list
|
|
(** The table of the given modules with their abstracts. *)
|
|
| Index_list (** The links to the various indexes (values, types, ...) *)
|
|
| Custom of string * text (** to extend \{foo syntax *)
|
|
| Target of string * string (** (target, code) : to specify code for a specific target format *)
|
|
|
|
(** [text] is a list of text_elements. The order matters. *)
|
|
and text = text_element list
|
|
|
|
(** The different forms of references in \@see tags. *)
|
|
type see_ref =
|
|
See_url of string
|
|
| See_file of string
|
|
| See_doc of string
|
|
|
|
(** The information in a \@see tag. *)
|
|
type see = see_ref * text
|
|
|
|
(** Parameter name and description. *)
|
|
type param = (string * text)
|
|
|
|
(** Raised exception name and description. *)
|
|
type raised_exception = (string * text)
|
|
|
|
(** Information in a special comment. *)
|
|
type info = {
|
|
i_desc : text option; (** The description text. *)
|
|
i_authors : string list; (** The list of authors in \@author tags. *)
|
|
i_version : string option; (** The string in the \@version tag. *)
|
|
i_sees : see list; (** The list of \@see tags. *)
|
|
i_since : string option; (** The string in the \@since tag. *)
|
|
i_before : (string * text) list; (** the version number and text in \@before tag *)
|
|
i_deprecated : text option; (** The textual description of the \@deprecated tag. *)
|
|
i_params : param list; (** The list of parameter descriptions. *)
|
|
i_raised_exceptions : raised_exception list; (** The list of raised exceptions. *)
|
|
i_return_value : text option ; (** The description text of the return value. *)
|
|
i_custom : (string * text) list ; (** A text associated to a custom @-tag. *)
|
|
}
|
|
|
|
(** An empty info structure. *)
|
|
val dummy_info : info
|
|
|
|
(** Location of elements in implementation and interface files. *)
|
|
type location = {
|
|
loc_impl : Location.t option ; (** implementation location *)
|
|
loc_inter : Location.t option ; (** interface location *)
|
|
}
|
|
|
|
(** A dummy location. *)
|
|
val dummy_loc : location
|
|
|
|
(** The information to merge from two elements when they both have some information. *)
|
|
type merge_option =
|
|
| Merge_description (** Descriptions are concatenated. *)
|
|
| Merge_author (** Lists of authors are concatenated. *)
|
|
| Merge_version (** Versions are concatenated. *)
|
|
| Merge_see (** See references are concatenated. *)
|
|
| Merge_since (** Since information are concatenated. *)
|
|
| Merge_before (** Before information are concatenated. *)
|
|
| Merge_deprecated (** Deprecated information are concatenated. *)
|
|
| Merge_param (** Information on each parameter is concatenated,
|
|
and all parameters are kept. *)
|
|
| Merge_raised_exception (** Information on each raised_exception is concatenated,
|
|
and all raised exceptions are kept. *)
|
|
| Merge_return_value (** Information on return value are concatenated. *)
|
|
| Merge_custom (** Merge custom tags (all pairs (tag, text) are kept). *)
|
|
|
|
(** The list with all merge options. *)
|
|
val all_merge_options : merge_option list
|
|
|
|
(** Type of magic numbers. *)
|
|
type magic
|
|
|
|
(** The magic number for the dumps of this version of ocamldoc. *)
|
|
val magic : magic
|
|
|
|
(** A dump of a structure. *)
|
|
type 'a dump
|
|
|
|
(** Create a dump structure. *)
|
|
val make_dump : 'a -> 'a dump
|
|
|
|
(** Verify that a dump has the correct magic number
|
|
and return its content. *)
|
|
val open_dump : 'a dump -> 'a
|