this repo has no description
1(*
2 * Copyright (c) 2014 Leo White <lpw25@cl.cam.ac.uk>
3 *
4 * Permission to use, copy, modify, and distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
7 *
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 *)
16
17
18
19module Paths = Odoc_model.Paths
20
21
22type env = {
23 ident_env : Ident_env.t; (** Environment *)
24 warnings_tag : string option (** Used to suppress warnings *)
25}
26
27val read_interface :
28 Odoc_model.Paths.Identifier.ContainerPage.t option ->
29 string ->
30 warnings_tag:string option ->
31 Odoc_model.Compat.signature ->
32 Paths.Identifier.RootModule.t * Odoc_model.Lang.Signature.t
33
34#if OCAML_VERSION < (4,3,0)
35val read_label : Asttypes.label -> Odoc_model.Lang.TypeExpr.label option
36#elif defined OXCAML
37val read_label : Types.arg_label -> Odoc_model.Lang.TypeExpr.label option
38#else
39val read_label : Asttypes.arg_label -> Odoc_model.Lang.TypeExpr.label option
40#endif
41
42val mark_type_expr : Types.type_expr -> unit
43
44val read_type_expr : env ->
45 Types.type_expr -> Odoc_model.Lang.TypeExpr.t
46
47val mark_type_extension : Types.type_expr list ->
48 Types.extension_constructor list ->
49 Types.type_expr list
50
51val read_type_parameter : bool -> Types.Variance.t ->
52 Types.type_expr -> Odoc_model.Lang.TypeDecl.param
53
54val mark_class_declaration : Types.class_declaration -> unit
55
56val read_self_type : Types.type_expr -> Odoc_model.Lang.TypeExpr.t option
57
58val read_type_constraints : env -> Types.type_expr list ->
59 (Odoc_model.Lang.TypeExpr.t
60 * Odoc_model.Lang.TypeExpr.t) list
61
62val read_class_constraints :
63 env ->
64 Types.type_expr list ->
65 Odoc_model.Lang.ClassSignature.item list
66
67val read_class_signature : env ->
68 Paths.Identifier.ClassSignature.t ->
69 Types.type_expr list -> Types.class_type ->
70 Odoc_model.Lang.ClassType.expr
71
72val read_class_type : env ->
73 Paths.Identifier.ClassSignature.t ->
74 Types.type_expr list -> Types.class_type ->
75 Odoc_model.Lang.Class.decl
76
77val read_module_type : env ->
78 Paths.Identifier.Signature.t ->
79 Odoc_model.Compat.module_type -> Odoc_model.Lang.ModuleType.expr
80
81val read_signature_noenv : env ->
82 Paths.Identifier.Signature.t ->
83 Odoc_model.Compat.signature ->
84 (Odoc_model.Lang.Signature.t * Odoc_model.Lang.Include.shadowed)
85
86val read_signature : env ->
87 Paths.Identifier.Signature.t ->
88 Odoc_model.Compat.signature -> Odoc_model.Lang.Signature.t
89
90
91#if defined OXCAML
92val extract_arg_modes : Mode.Alloc.lr -> string list
93val extract_modalities : Mode.Modality.t -> string list
94#endif
95
96val read_extension_constructor : env ->
97 Paths.Identifier.Signature.t ->
98 Ident.t -> Types.extension_constructor ->
99 Odoc_model.Lang.Extension.Constructor.t
100
101val read_exception : env ->
102 Paths.Identifier.Signature.t -> Ident.t ->
103 Types.extension_constructor -> Odoc_model.Lang.Exception.t