ocaml-base-compiler
  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Interface to the information collected in source files.

type ref_kind = Odoc_types.ref_kind =
  1. | RK_module
  2. | RK_module_type
  3. | RK_class
  4. | RK_class_type
  5. | RK_value
  6. | RK_type
  7. | RK_extension
  8. | RK_exception
  9. | RK_attribute
  10. | RK_method
  11. | RK_section of text
  12. | RK_recfield
  13. | RK_const

The different kinds of element references.

and text_element = Odoc_types.text_element =
  1. | Raw of string
    (*

    Raw text.

    *)
  2. | Code of string
    (*

    The string is source code.

    *)
  3. | CodePre of string
    (*

    The string is pre-formatted source code.

    *)
  4. | Verbatim of string
    (*

    String 'as is'.

    *)
  5. | Bold of text
    (*

    Text in bold style.

    *)
  6. | Italic of text
    (*

    Text in italic.

    *)
  7. | Emphasize of text
    (*

    Emphasized text.

    *)
  8. | Center of text
    (*

    Centered text.

    *)
  9. | Left of text
    (*

    Left alignment.

    *)
  10. | Right of text
    (*

    Right alignment.

    *)
  11. | List of text list
    (*

    A list.

    *)
  12. | Enum of text list
    (*

    An enumerated list.

    *)
  13. | Newline
    (*

    To force a line break.

    *)
  14. | Block of text
    (*

    Like html's block quote.

    *)
  15. | Title of int * string option * text
    (*

    Style number, optional label, and text.

    *)
  16. | Latex of string
    (*

    A string for latex.

    *)
  17. | 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.

    *)
  18. | Superscript of text
    (*

    Superscripts.

    *)
  19. | Subscript of text
    (*

    Subscripts.

    *)
  20. | Module_list of string list
    (*

    The table of the given modules with their abstract.

    *)
  21. | Index_list
    (*

    The links to the various indexes (values, types, ...)

    *)
  22. | Custom of string * text
    (*

    to extend {foo syntax

    *)
  23. | Target of string * string
    (*

    (target, code) : to specify code specific to a target format

    *)
and text = text_element list

A text is a list of text_element. The order matters.

type see_ref = Odoc_types.see_ref =
  1. | See_url of string
  2. | See_file of string
  3. | See_doc of string

The different forms of references in @see tags.

exception Text_syntax of int * int * string

Raised when parsing string to build a Odoc_info.text structure. (line, char, string)

type see = see_ref * text

The information in a @see tag.

type param = string * text

Parameter name and description.

type raised_exception = string * text

Raised exception name and description.

type info = Odoc_types.info = {
  1. i_desc : text option;
    (*

    The description text.

    *)
  2. i_authors : string list;
    (*

    The list of authors in @author tags.

    *)
  3. i_version : string option;
    (*

    The string in the @version tag.

    *)
  4. i_sees : see list;
    (*

    The list of @see tags.

    *)
  5. i_since : string option;
    (*

    The string in the @since tag.

    *)
  6. i_before : (string * text) list;
    (*

    the version number and text in @before tag

    *)
  7. i_deprecated : text option;
    (*

    The description text of the @deprecated tag.

    *)
  8. i_params : param list;
    (*

    The list of parameter descriptions.

    *)
  9. i_raised_exceptions : raised_exception list;
    (*

    The list of raised exceptions.

    *)
  10. i_return_value : text option;
    (*

    The description text of the return value.

    *)
  11. i_custom : (string * text) list;
    (*

    A text associated to a custom @-tag.

    *)
}

Information in a special comment

  • before 3.12.0

    @before information was not present.

type location = Odoc_types.location = {
  1. loc_impl : Location.t option;
    (*

    implementation location

    *)
  2. loc_inter : Location.t option;
    (*

    interface location

    *)
}

Location of elements in implementation and interface files.

val dummy_loc : location

A dummy location.

module Name : sig ... end

Representation of element names.

module Parameter : sig ... end

Representation and manipulation of method / function / class / module parameters.

module Extension : sig ... end

Representation and manipulation of extensions.

module Exception : sig ... end

Representation and manipulation of exceptions.

module Type : sig ... end

Representation and manipulation of types.

module Value : sig ... end

Representation and manipulation of values, class attributes and class methods.

module Class : sig ... end

Representation and manipulation of classes and class types.

module Module : sig ... end

Representation and manipulation of modules and module types.

Getting strings from values

val reset_type_names : unit -> unit

This function is used to reset the names of type variables. It must be called when printing the whole type of a function, but not when printing the type of its parameters. Same for classes (call it) and methods and attributes (don't call it).

val string_of_variance : Type.t_type -> (bool * bool) -> string

string_of_variance t (covariant, invariant) returns "+" if the given information means "covariant", "-" if it means "contravariant", orelse "", and always "" if the given type is not an abstract type with no manifest (i.e. no need for the variance to be printed).

val string_of_type_expr : Types.type_expr -> string

This function returns a string representing a Types.type_expr.

val string_of_class_params : Class.t_class -> string
  • returns

    a string to display the parameters of the given class, in the same form as the compiler.

val string_of_type_list : ?par:bool -> string -> Types.type_expr list -> string

This function returns a string to represent the given list of types, with a given separator.

val string_of_type_param_list : Type.t_type -> string

This function returns a string to represent the list of type parameters for the given type.

val string_of_type_extension_param_list : Extension.t_type_extension -> string

This function returns a string to represent the list of type parameters for the given type extension.

val string_of_class_type_param_list : Types.type_expr list -> string

This function returns a string to represent the given list of type parameters of a class or class type, with a given separator.

val string_of_module_type : ?code:string -> ?complete:bool -> Types.module_type -> string

This function returns a string representing a Types.module_type.

  • parameter complete

    indicates if we must print complete signatures or just sig end. Default is false.

  • parameter code

    if complete = false and the type contains something else than identificators and functors, then the given code is used.

val string_of_class_type : ?complete:bool -> Types.class_type -> string

This function returns a string representing a Types.class_type.

  • parameter complete

    indicates if we must print complete signatures or just object end. Default is false.

val string_of_text : text -> string

Get a string from a text.

val string_of_info : info -> string

Get a string from an info structure.

val string_of_type : Type.t_type -> string
  • returns

    a string to describe the given type.

val string_of_record : Type.record_field list -> string
val string_of_type_extension : Extension.t_type_extension -> string
  • returns

    a string to describe the given type extension.

val string_of_exception : Exception.t_exception -> string
  • returns

    a string to describe the given exception.

val string_of_value : Value.t_value -> string
  • returns

    a string to describe the given value.

val string_of_attribute :