Caml1999I037O-Odoc_comments,simple_blankh&stringQ@@@@:ocamldoc/odoc_comments.mliRUURUn@@@@@&Texteri.text_of_stringm@@@@*Odoc_types$text@@@@@@X X(@@/A@@@@#U$Y).@3B@@Ӡ4Basic_info_retrieverj@9blank_line_outside_simplen@:@@@@@@@@$boolE@@@@@@@@D_E`@@TC@@+all_specialo@U@@@@[@@@@#intA@@@Ҡ@$listKT$info@@@@@@@@@@@@@rccgscc@@D@@2just_after_specialp@@@@@@@@@.@@@ڠ@&optionL$info@@@@@@@@@@@@@ij(@@E@@-first_specialq@@@@@@@@@Z@@@⠠@,$info@@@@@@@@@@@@@p 0 4q H @@F@@,get_commentsr@@$text@@@!a@@@@@@@@@@@@^$info@@@@@@@%@@@@@@@@@@@@w  y  -@@G@@@@\ff{ / 4@H@@@.info_of_stringk@@@@$info@@@@@@B  B  5@@*I@@4info_of_comment_filel@+Odoc_module(t_module@@@@@@@:@@@!$info@@@@@@@@>K  ?L  @@NJ@@@>-Odoc_comments06Q%ί3  (Warnings0mJɒkgr*%"e+Outcometree0euWS~d栠*Odoc_value0IlX+KE`*Odoc_types0fX cx3H~)Odoc_type0~b:x_B.Odoc_parameter0ץ~D3vNm)Odoc_name0{Y/3.+Odoc_module0z8P@ӽX4Id*Odoc_class0_"#C{$Misc0ob]6>Vê>)Longident0s `7mɕc(Location0a7cK_H%9,Identifiable0 {d\FX'`%Ident0">WA+9*X*Format_doc0]mWϓ:Mݠ0CamlinternalLazy0&͂7 Pˆ8CamlinternalFormatBasics0%FU(Q/Tu5Build_path_prefix_map0z HkGs(Asttypes0>n{T8cئ@@@Caml1999T037:a#C-Odoc_comments*ocaml.text&_none_@@A7 Analysis of comments. :ocamldoc/odoc_comments.mliP77P7S@@@@@@3@@@@#intA;@@A@@@@@9@A@$charB;@@A@@@@@>@A@&stringQ;@@A@@@@@C@@@%bytesC;@@A@@@@@H@@@%floatD;@@A@@@@@M@@@$boolE;@@%falsec@@W@$trued@@]@@@A@@@@@^@A@$unitF;@@"()e@@h@@@A@@@@@i@A@ #exnG;@@@A@@@@@m@@@#effH;@@O@A@A@@@@@@v@@@,continuationI;@@Q@@P@B A@nY@@@@@@@@@%arrayJ;@@R@AA@@@@@@@@@ $listK;@@S@A"[]f@@@"::g@@@T@@@ @@A@Y@@@@@@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@A@@@@@@@@%int32N;@@A@@@@@@@@%int64O;@@A@@@@@@@@&lazy_tP;@@X@AA@Y@@@@@@@@ 5extension_constructorR;@@A@@@@@@@@*floatarrayS;@@A@@@@@@@@&iarrayT;@@Y@AA@Y@@@@@@@@ *atomic_locU;@@Z@AA@@@@@@@@@ .Assert_failure`#@@@@@J@@@@@@@@[@@A=ocaml.warn_on_literal_pattern@@0Division_by_zero]#@@@A  @+End_of_file\#$@@@A#&&@'FailureY#,@'@@A,//@0Invalid_argumentX#5@0@@A5$8#8@-Match_failureV#>@@=@9@;@@a@@AF5I4I@)Not_foundZ#O@@@AN=Q<Q@-Out_of_memoryW#W@@@AVEYDY@.Stack_overflow^#_@@@A^MaLa@.Sys_blocked_io_#g@@@AfUiTi@)Sys_error[#o@j@@Ao^r]r@:Undefined_recursive_modulea#x@@w@s@u@@h@@Aon@:Continuation_already_takenb#@@@Awv@&Stdlib@A,simple_blankRUYRUe@г]&stringRUhRUn@@ @@@@@@RUU@@@@@ @@&Texter'AUU@B@Б.text_of_string&XX @б@г&stringXX@@ @@@3@A.@A@@г*Odoc_types$text*Odoc_typesXX#@ X$X(@@@@@@g @@@ @@h# @@@X @)ocaml.doc ( Return a text structure from a string. WW@@@@@@@ A@@@@@@@@@>@T"@@3@AV$@A3@C@A V Y).@@& 3 The type of modules in argument to Info_retriever TppTp@@@@@@@U@3@X@A@4Basic_info_retriever-B)\fm*\f@BH@@Б9blank_line_outside_simple(7_8_@б@г &stringB`C`@@ @@@i3DDDDDDDD@k@@hA@@@@@@@@@@@=@A@@б@г,&stringb`c`@@ @@@j @@г*$boolo` p`@@ @@@k-@@@@@l0@@@6@@m39 @@@}_@ 8 Return true if the given string contains a blank line. ^^@@@@@@@C@@@@@@@@@R+all_special)cckccv@б@гv&stringccycc@@ @@@n3@k8@A@@б@г&stringcccc@@ @@@o@@В@г#intcccc@@ @@@p"@@@гV$listcccc@г$info*Odoc_typescccc@ cccc@@@@@@qD @@@ @@@sI@@@@/@ @@tP4$@@@E @@uSH'@@@Y@@vV\*@@@ ccg-@% G This function retrieves all the special comments in the given string. bbb@@@@@@@0D@@=@5+@@@@@@u2just_after_special*.i/i@б@г&string9j:j@@ @@@w3;;;;;;;;@8@A@@б@г&stringJjKj@@ @@@x@@В@г/#int[j \j@@ @@@y"@@@гƠ&optionjj"kj(@г$info*Odoc_typesxjyj@ |j}j!@@@@@@zD @@@ @@@|I@@@@/@ @@}P4$@@@E @@~SH'@@@Y@@V\*@@@i-@  [just_after_special file str] return the pair ([length], [info_opt]) where [info_opt] is the first optional special comment found in [str], without any blank line before. [length] is the number of chars from the beginning of [str] to the end of the special comment. eh@@@@@@@E@@=@@@@@@@u-first_special+p 0 8p 0 E@б@г&stringq H Pq H V@@ @@@3@8@A@@б@г&stringq H Zq H `@@ @@@@@В@г#intq H dq H g@@ @@@"@@@гS&optionq H zq H @г2$info*Odoc_typesq H jq H t@  q H u q H y@@@@@@D @@@ @@@I@@@@/@ @@P4$@@@E @@SH'@@@Y@@V\*@@@$p 0 4-@? [first_special file str] return the pair ([length], [info_opt]) where [info_opt] is the first optional special comment found in [str]. [length] is the number of chars from the beginning of [str] to the end of the special comment. 1l*.2o /@@@@@@@JF@@=@OE@@@@@@u,get_comments,Hw  Iw  @б@б@г$text*Odoc_typesYx  Zx  @ ]x  ^x  @@@@@@3````````@C@A @@А!a@C@ ox  px  @@@ @@@@б@гG&string}y  ~y  @@ @@@@@б@гV&stringy  y  @@ @@@.@@В@г&optiony  y  #@г$info*Odoc_typesy  y  @ y  y  @@@@@@R @@@ @@@W@@@г=$listy  )y  -@А!aagy  &y  (@@@g@@@n @@@@ @ @@u.@@@M @@xP@@@_@@{b@@@p@@~x  @@@w  !@ ) Return a pair [(comment_opt, element_comment_list)], where [comment_opt] is the last special comment found in the given string and not followed by a blank line, and [element_comment_list] the list of values built from the other special comments found and the given function. s  v | @@@@@@@ G@@1@@@@@@@@@h@r@R@(@@3@*@A 3        @@A]{ / 4@@," 0 The basic module for special comments analysis.[00 [0e@@@@@@@"\ff@@.info_of_string.,B  -B  @б@г&string7B  8B  "@@ @@@399999999@@@<@@&@g@@d76@66@@@6@6@3)@A@@г$info*Odoc_types`B  &aB  0@ dB  1eB  5@@@@@@. @@@4@@17 @@@pB   @ [info_of_string s] parses the given string like a regular ocamldoc comment and return an {!Odoc_types.info} structure. @return an empty structure if there was a syntax error. TODO: change this }} 6 6~A  @@@@@@@I@@@@@@@@@P4info_of_comment_filefK  K  @б@г$listL  L  @г+Odoc_module(t_module+Odoc_moduleL  L  @ L  L  @@@@@@ l3@~M@A @@@$ @@@ n!@@б@г&stringL  L  @@ @@@ o@@г$info*Odoc_typesL  L  @ L  L  @@@@@@ p, @@@@@ q/ @@@/@@ r2= @@@K  @ C [info_of_comment_file file] parses the given file and return an {!Odoc_types.info} structure. The content of the file must have the same syntax as the content of a special comment. The given module list is used for cross reference. @raise Failure if the file could not be opened or there is a syntax error. D 7 7J } @@@@@@@J@@@@@@@@@Q@s@l h@@@@@+@@3@_-@A@ H************************************************************************A@@A@L@ H #BMM$BM@ H OCaml )C*C@ H /D0D3@ H Maxence Guesdon, projet Cristal, INRIA Rocquencourt 5E446E4@ H ;Fn{T8cئ5Build_path_prefix_map0z HkGs8CamlinternalFormatBasics0%FU(Q/Tu0CamlinternalLazy0&͂7 Pˆ*Format_doc0]mWϓ:Mݠ%Ident0">WA+9*X,Identifiable0 {d\FX'`(Location0a7cK_H%9)Longident0s `7mɕc$Misc0ob]6>Vê>*Odoc_class0_"#C{506Q%ί3  .Odoc_exception0>@ӽX4Id.Odoc_extension0?*sR(6]!$.0z8P*%"e$Path0Y2kf֯J._Ϡ)Primitive0²~$xzT෠%Shape0oNՄBH&Stdlib0Lku]8_٠.Stdlib__Buffer08APF< t..Stdlib__Digest0l!LHgErζ .Stdlib__Domain0:M;׉<O$Ġ.Stdlib__Either0Vy`u~c à.Stdlib__Format0ܚ#G7m|/Stdlib__Hashtbl0ѱN][/!,Stdlib__Lazy0* -S$.)"0D.Stdlib__Lexing0e<.V +Stdlib__Map0L5xE|O0~,J-.Stdlib__Result06 ]/J+Stdlib__Seq0nwzG&amg+Stdlib__Set0\$;7 .Stdlib__String0