1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495(** 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_meta={language:stringwith_location;tags:stringwith_locationoption;}typecode_block={meta:code_block_metaoption;delimiter:stringoption;content:stringwith_location;output:nestable_block_elementwith_locationlistoption;}andnestable_block_element=[`Paragraphofinline_elementwith_locationlist|`Code_blockofcode_block|`Verbatimofstring|`Modulesofstringwith_locationlist|`Listof[`Unordered|`Ordered]*[`Light|`Heavy]*nestable_block_elementwith_locationlistlist|`Tableoftable|`Math_blockofstring(** @since 2.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](** 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