123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124(** Abstract syntax tree representing ocamldoc comments *)(** This is a syntactic representation of ocamldoc comments. See
{{:https://ocaml.org/releases/4.12/htmlman/ocamldoc.html}The manual} for a
detailed description of the syntax understood. Note that there is no attempt
at semantic analysis, and hence these types are capable of representing
values that will be rejected by further stages, for example, invalid
references or headings that are out of range. *)type'awith_location='aLoc.with_locationtypestyle=[`Bold|`Italic|`Emphasis|`Superscript|`Subscript]typealignment=[`Left|`Center|`Right]typereference_kind=[`Simple|`With_text](** References in doc comments can be of two kinds: [{!simple}] or
[{{!ref}With text}]. *)typeinline_element=[`Spaceofstring|`Wordofstring|`Code_spanofstring|`Raw_markupofstringoption*string|`Styledofstyle*inline_elementwith_locationlist|`Referenceofreference_kind*stringwith_location*inline_elementwith_locationlist|`Linkofstring*inline_elementwith_locationlist|`Math_spanofstring(** @since 2.0.0 *)](** Inline elements are equivalent to what would be found in a [span] in HTML.
Mostly these are straightforward. The [`Reference] constructor takes a
triple whose second element is the reference itself, and the third the
replacement text. Similarly the [`Link] constructor has the link itself as
first parameter and the second is the replacement text. *)type'acell='awith_locationlist*[`Header|`Data]type'arow='acelllisttype'agrid='arowlisttype'aabstract_table='agrid*alignmentoptionlistoptiontypecode_block_tag=[`Tagofstringwith_location|`Bindingofstringwith_location*stringwith_location]typecode_block_tags=code_block_taglisttypecode_block_meta={language:stringwith_location;tags:code_block_tags;}typemedia=Token.mediatypemedia_href=Token.media_hreftypecode_block={meta:code_block_metaoption;delimiter:stringoption;content:stringwith_location;(** This is the raw content, that is the exact string inside the
delimiters. In order to get the "processed" content, see
{!Odoc_parser.codeblock_content} *)output:nestable_block_elementwith_locationlistoption;}andnestable_block_element=[`Paragraphofinline_elementwith_locationlist|`Code_blockofcode_block|`Verbatimofstring(** This is the raw content, that is the exact string inside the delimiters.
In order to get the "processed" content, see
{!Odoc_parser.verbatim_content} *)|`Modulesofstringwith_locationlist|`Listof[`Unordered|`Ordered]*[`Light|`Heavy]*nestable_block_elementwith_locationlistlist|`Tableoftable|`Math_blockofstring(** @since 2.0.0 *)|`Mediaofreference_kind*media_hrefwith_location*string*media(** @since 3.0.0 *)](** Some block elements may be nested within lists or tags, but not all. The
[`List] constructor has a parameter of type [[`Light | `Heavy]]. This
corresponds to the syntactic constructor used (see the
{{:https://ocaml.org/releases/4.12/htmlman/ocamldoc.html#sss:ocamldoc-list}manual}).
*)andtable=nestable_block_elementabstract_table*[`Light|`Heavy]typeinternal_tag=[`Canonicalofstringwith_location|`Inline|`Open|`Closed|`Hidden|`Children_orderofnestable_block_elementwith_locationlist|`Toc_statusofnestable_block_elementwith_locationlist|`Order_categoryofnestable_block_elementwith_locationlist|`Short_titleofnestable_block_elementwith_locationlist](** Internal tags are used to exercise fine control over the output of odoc.
They are never rendered in the output *)typeocamldoc_tag=[`Authorofstring|`Deprecatedofnestable_block_elementwith_locationlist|`Paramofstring*nestable_block_elementwith_locationlist|`Raiseofstring*nestable_block_elementwith_locationlist|`Returnofnestable_block_elementwith_locationlist|`Seeof[`Url|`File|`Document]*string*nestable_block_elementwith_locationlist|`Sinceofstring|`Beforeofstring*nestable_block_elementwith_locationlist|`Versionofstring](** ocamldoc tags are those that are specified in the
{{:https://ocaml.org/releases/4.12/htmlman/ocamldoc.html#ss:ocamldoc-tags}manual})
*)typetag=[ocamldoc_tag|internal_tag]typeheading=int*stringoption*inline_elementwith_locationlisttypeblock_element=[nestable_block_element|`Headingofheading|`Tagoftag]typet=block_elementwith_locationlist