package odoc-parser
Parser for ocaml documentation comments
Install
Dune Dependency
Authors
Maintainers
Sources
odoc-parser-1.0.0.tbz
sha256=b6aa08ea71a9ebad9b2bebc4da1eda0d713cf3674e6d57d10459d934286e7aa1
sha512=b5caee3a0d288aeaa95e3f32de8e5f75f169ad2691d75f8d6c932e4fb0e6cb188813ac2d92d4076fe75b12217130e6999c46e7890cf0fa765070870f85a96d63
Description
Odoc_parser is a library for parsing the contents of OCaml documentation comments, formatted using 'odoc' syntax, an extension of the language understood by ocamldoc.
Published: 12 Dec 2021
README
odoc-parser
Odoc-parser is a parser for odoc markup, which is an extension of the original markup language parsed by ocamldoc.
OCaml code can contain specially formatted comments that are used to document the interfaces of modules. These comments are delimited by (**
and *)
. This parser is intended to be used to parse the contents of these comments.
The parser is part of the odoc project.
Please see CONTRIBUTING.md for details of the development process.
Example usage:
# #require "odoc-parser";;
# let location = {Lexing.pos_fname = ""; pos_lnum = 1; pos_bol = 0; pos_cnum = 0};;
val location : Lexing.position =
{Lexing.pos_fname = ""; pos_lnum = 1; pos_bol = 0; pos_cnum = 0}
# let p = Odoc_parser.parse_comment ~location ~text:"{b Bold!}[unfinished";;
val p : Odoc_parser.t = <abstr>
# let w = Odoc_parser.warnings p;;
val w : Odoc_parser.Warning.t list =
[{Odoc_parser.Warning.location =
{Odoc_parser.Loc.file = "";
start = {Odoc_parser.Loc.line = 1; column = 20};
end_ = {Odoc_parser.Loc.line = 1; column = 20}};
message = "End of text is not allowed in '[...]' (code)."}]
# Odoc_parser.ast p;;
- : Odoc_parser.Ast.t =
[{Odoc_parser__.Loc.location =
{Odoc_parser__.Loc.file = "";
start = {Odoc_parser__.Loc.line = 1; column = 0};
end_ = {Odoc_parser__.Loc.line = 1; column = 20}};
value =
`Paragraph
[{Odoc_parser__.Loc.location =
{Odoc_parser__.Loc.file = "";
start = {Odoc_parser__.Loc.line = 1; column = 0};
end_ = {Odoc_parser__.Loc.line = 1; column = 9}};
value =
`Styled
(`Bold,
[{Odoc_parser__.Loc.location =
{Odoc_parser__.Loc.file = "";
start = {Odoc_parser__.Loc.line = 1; column = 3};
end_ = {Odoc_parser__.Loc.line = 1; column = 8}};
value = `Word "Bold!"}])};
{Odoc_parser__.Loc.location =
{Odoc_parser__.Loc.file = "";
start = {Odoc_parser__.Loc.line = 1; column = 9};
end_ = {Odoc_parser__.Loc.line = 1; column = 20}};
value = `Code_span "unfinished"}]}]
Dev Dependencies (3)
-
sexplib0
with-test
-
ocaml
< "4.04.1" & with-test
-
ppx_expect
with-test
Used by (4)
-
mdx
>= "1.11.0" & < "2.3.1"
-
ocamlformat
>= "0.20.1" & < "0.24.1"
-
ocamlformat-rpc
= "0.20.1"
-
odoc
>= "2.0.0" & < "2.2.0"
Conflicts
None
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page