Library
Module
Module type
Parameter
Class
Class type
Parser for ocamldoc formatted comments.
val parse_comment : location:Lexing.position -> text:string -> t
parse_comment ~location ~text
parses text
as an ocamldoc formatted string. The parser will try to recover from any invalid syntax encountered, and therefore this will always produce a result without raising exceptions with zero or more warnings. The location passed in should represent the start of the content of the documentation comment - so for a line such as
(** A comment starting in the first column (0) *)
the location should represent the space immediately before the A
, so the in the 4th column (e.g. {... pos_bol=0; pos_cnum=3 }
)
module Ast : sig ... end
Abstract syntax tree representing ocamldoc comments
module Loc : sig ... end
Locations in files.
module Warning : sig ... end
Warnings produced during parsing.
val position_of_point : t -> Loc.point -> Lexing.position
Helper function to turn the internal representation of positions back into the usual representation in the Lexing module. Note that this relies on the information passed in parse_comment
, and hence requires the result of that call in addition to the Loc.point
being converted.
Process the content of a code block, following the rules described here. To achieve this, it needs the location of the code block (including the separators) and the raw content of the code block. For instance, with the following code block:
{[
hello
]}
We can go from the raw content "\n hello\n "
to the processed content " hello"
with:
match codeblock.value with
| `Code_block { content; _ } ->
codeblock_content codeblock.location content.value
Also returns a list of warnings, eg if the content is not appropriately indented.
Similar to codeblock_content
but for verbatims.