-
Notifications
You must be signed in to change notification settings - Fork 78
/
Copy pathodoc_types.mli
145 lines (125 loc) · 5.96 KB
/
odoc_types.mli
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
(**************************************************************************)
(* *)
(* 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)
type alert = { alert_name : string; alert_payload : string option }
(** 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. *)
i_alerts : alert list ; (** Alerts associated to the same item. Not from special comments. *)
}
(** 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