Caml1999I037o^3-Odoc_comments,simple_blankh&stringQ@@@@:ocamldoc/odoc_comments.mliRUURUn@@@@@&Texteri.text_of_stringm@@@@@@*Odoc_types$text@@@@@@!X"X(@@1A@@@@%U&Y).@5B@@Ӡ4Basic_info_retrieverj@9blank_line_outside_simplen@>@@@@@@F@@@@@$boolE@@@@@@@@J_K`@@ZC@@+all_specialo@]@@@@@@e@@@@@@#intA@@@Ơ@$listK\$info@@@@@@@@@@@@@|ccg}cc@@D@@2just_after_specialp@@@@@@@@@@@@@2@@@Р@&optionL$info@@@@@@@@@@@@@ij(@@E@@-first_specialq@@@@@@@@@@@@@b@@@ڠ@0$info@@@@@@@@@@@@@p 0 4q H @@F@@,get_commentsr@@$text@@@@@!a@@@@@@@@@@@@@@@@@@j$info@@@@@@頠@)@@@@@@@@@@@@w  y  -@@+G@@@@\ff { / 4@/H@@@.info_of_stringk@2@@@@@$info@@@@@@6B  7B  5@@FI@@4info_of_comment_filel@Ԡ+Odoc_module(t_module@@@@@@@@@Z@@@@@?$info@@@@@@@@^K  _L  @@nJ@@@>-Odoc_comments0!8Z?vMY(Warnings0Ef{&)Unit_info0'T Χ@aR%Types0"|Vȷ`X .Type_immediacy00$ jbv\"k&-Stdlib__Uchar0=H^V9>ɠ+Stdlib__Sys0b'8=OIn.Stdlib__String0 w_OA4D"Q~~+Stdlib__Set0ܔ@Z8XWaa2+Stdlib__Seq0?72#[O.Stdlib__Result0p~ !ԥ//+Stdlib__Map0*4ɇ2.Stdlib__Domain0'Ϳo\0m.K.Stdlib__Digest0#z25I*.Stdlib__Buffer0,I[?z&Stdlib0t0VoS%{<F:%Shape0 M``ll)Primitive0dU=\I/}$Path0k.tbGmᠠ)Parsetree0v o[pY Y+Outcometree0BuG^)= 9c *Odoc_value0FJ]\fѬ*Odoc_types0ϸf%,e8)Odoc_type0~b:x_B.Odoc_parameter0n6sApT)Odoc_name0 d L_,+Odoc_module0/-05ɍM!W.Odoc_extension0Lt.`?9:77.Odoc_exception0>@ӽX4Id*Odoc_class0D:L$Misc0Bpg]?[q)Longident0wP q;ɡ(Location0nBɊOn?7~ؠ,Identifiable0]/*N %Ident0>ЃzV)j⠠*Format_doc0uy@GmWUࠠ0CamlinternalLazy0zY# #4#-8CamlinternalFormatBasics0|.e1R$|o5Build_path_prefix_map0DGl}%Y5Lhi(Asttypes0eT$BbRM dc@@@Caml1999T037;f%# HC-Odoc_comments*ocaml.text&_none_@@A7 Analysis of comments. :ocamldoc/odoc_comments.mliP77P7S@@@@@@3@@@@@@#intA;@@#intA@@@@@;@A@$charB;@@$charA@@@@@A@A@&stringQ;@@&stringA@@@@@G@@@%bytesC;@@%bytesA@@@@@M@@@%floatD;@@%floatA@@@@@S@@@$boolE;@@%falsec@@]@$trued@@c@@@A@@@@@d@A@$unitF;@@"()e@@n@@@A@@@@@o@A@ #exnG;@@@A@@@@@s@@@#effH;@@O@A@A@@@@@@|@@@,continuationI;@@Q@@P@B,continuationA@nY@@@@@@@@@%arrayJ;@@R@A%arrayA@@@@@@@@@ $listK;@@S@A"[]f@@@"::g@@@T@@@ @@A@Y@@@@@@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@)nativeintA@@@@@@@@%int32N;@@%int32A@@@@@@@@%int64O;@@%int64A@@@@@@@@&lazy_tP;@@X@A&lazy_tA@Y@@@@@@@@ 5extension_constructorR;@@5extension_constructorA@@@@@@@@*floatarrayS;@@*floatarrayA@@@@@@@@&iarrayT;@@Y@A&iarrayA@Y@@@@@@@@ *atomic_locU;@@Z@A*atomic_locA@@@@@@ @@@ .Assert_failure`#@@@@@J@@@@@@@@[@@A!=ocaml.warn_on_literal_pattern%@&@0Division_by_zero]#@@@A+ . .@+End_of_file\#$@@@A366@'FailureY#,@'@@A<??@0Invalid_argumentX#5@0@@AE$H#H@-Match_failureV#>@@=@9@;@@a@@AV5Y4Y@)Not_foundZ#O@@@A^=a<a@-Out_of_memoryW#W@@@AfEiDi@.Stack_overflow^#_@@@AnMqLq@.Sys_blocked_io_#g@@@AvUyTy@)Sys_error[#o@j@@A^]@:Undefined_recursive_modulea#x@@w@s@u@@h@@Aon@:Continuation_already_takenb#@@@Awv@&Stdlib@A,simple_blankRUYRUe@гj&stringRUhRUn@@ @@@{@@@RUU@@@@@ @@&Texter'AUU@B@Б.text_of_string&XX @б@г&stringXX@@ @@@|3@A.@A@@г*Odoc_types$text*Odoc_typesXX#@ X$X(@@@@@@G @@@"@@H@@I% @@@X@)ocaml.doc ( Return a text structure from a string. WW@@@@@@@A@@ @@@@@@@@@V"@@3@CX$@A3@E@AVY).@@&. 3 The type of modules in argument to Info_retriever +Tpp,Tp@@@@@@@.U@3,++,,,,,@Z@A@4Basic_info_retriever-B;\fm<\f@TH@@Б9blank_line_outside_simple(I_J_@б@г&stringT`U`@@ @@@J3VUUVVVVV@k@@hA@@@@@@@@@@@=@A@@б@г;&stringt`u`@@ @@@K @@г6$bool` `@@ @@@L-@@@@@M@@N2 @@@:@@O @@P7=@@@_@ 8 Return true if the given string contains a blank line. ^^@@@@@@@C@@"@@@@@@@V+all_special)cckccv@б@г&stringccycc@@ @@@Q3@o8@A@@б@г&stringcccc@@ @@@R@@В@г#intcccc@@ @@@S"@@@гd$listcccc@г$info*Odoc_typescccc@ cccc@@@@@@TD @@@ @@@VI@@@@/@ @@WP4$@@@G@@X @@YUJ)@@@]@@Z @@[Z`.@@@$ccg1@- G This function retrieves all the special comments in the given string. 1b2bb@@@@@@@JD@@A@=E@@@@@@y2just_after_special*HiIi@б@г&stringSjTj@@ @@@\3UTTUUUUU@8@A@@б@г+&stringdjej@@ @@@]@@В@гH#intuj vj@@ @@@^"@@@гؠ&optionj"j(@г$info*Odoc_typesjj@ jj!@@@@@@_D @@@ @@@aI@@@@/@ @@bP4$@@@G@@c @@dUJ)@@@]@@e @@fZ`.@@@i1@  [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@@A@֐@@@@@@y-first_special+p 0 8p 0 E@б@г&stringq H Pq H V@@ @@@g3@8@A@@б@г&stringq H Zq H `@@ @@@h@@В@г٠#intq H dq H g@@ @@@i"@@@гi&optionq H zq H @г@$info*Odoc_types#q H j$q H t@ 'q H u(q H y@@@@@@jD @@@ @@@lI@@@@/@ @@mP4$@@@G@@n @@oUJ)@@@]@@p @@qZ`.@@@Fp 0 41@O [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. Sl*.To /@@@@@@@lF@@A@_g@@@@@@y,get_comments,jw  kw  @б@б@г$text*Odoc_types{x  |x  @ x  x  @@@@@@r3@C@A @@А!a@C@s x  x  @@@@@t @@u@@б@гh&stringy  y  @@ @@@v!@@б@гw&stringy  y  @@ @@@w0@@В@г&optiony  y  #@г$info*Odoc_typesy  y  @ y  y  @@@@@@xT @@@ @@@zY@@@гY$listy  )y  -@А!aciy  &y  (@@@i@@@|p @@@@ @ @@}w.@@@O@@~ @@|R@@@c@@ @@f@@@x@@ @@ 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 | @@@@@@@5G@@7@(0@@@@@@@@| @~@^@(@@321122222@*@A 354455555@@A:];{ / 4@@DL 0 The basic module for special comments analysis.I[00J[0e@@@@@@@L\ff@@.info_of_string.VB  WB  @б@г(&stringaB  bB  "@@ @@@3cbbccccc@2@'@L@,@.@g@@|76@66@@@6@6@3A@A@@г$info*Odoc_typesB  &B  0@ B  1B  5@@@@@@. @@@6@@@@39 @@@B  @ [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 6A  @@@@@@@I@@@@@@@@@R4info_of_comment_filefK  K  @б@г<$listL  L  @г+Odoc_module(t_module+Odoc_moduleL  L  @ L  L  @@@@@@ 3@M@A @@@$ @@@ !@@б@г&stringL  L  @@ @@@ @@г$$info*Odoc_typesL  L  @  L   L  @@@@@@ , @@@@@ @@ 1! @@@3@@  @@ 6A@@@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 7,J } @@@@@@@DJ@@#@7?@@@@@@U@@'@ @ @@@+@@3DCCDDDDD@c-@A@ H************************************************************************MA@@NA@L@ H SBMMTBM@ H OCaml YCZC@ H _D`D3@ H Maxence Guesdon, projet Cristal, INRIA Rocquencourt eE44fE4@ H kFlF@ H Copyright 2001 Institut National de Recherche en Informatique et qGrG@ H en Automatique. wHxHg@ H }Ihh~Ih@ H All rights reserved. This file is distributed under the terms of JJ@ H the GNU Lesser General Public License version 2.1, with the KKN@ H special exception on linking described in the file LICENSE. LOOLO@ H MM@ H************************************************************************NN5@8* Analysis of comments.  4* The type of modules in argument to Info_retriever y )* Return a text structure from a string.  1* The basic module for special comments analysis.a 9* Return true if the given string contains a blank line.  H* This function retrieves all the special comments in the given string.  !* [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.  * [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. c ** 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.  * [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  D* [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. @(./ocamlc)-nostdlib"-I(./stdlib"-g0-strict-sequence*-principal(-absname"-w8+a-4-9-40-41-42-44-45-48+-warn-error"+a*-bin-annot/-strict-formats"-I(ocamldoc"-I%utils"-I'parsing"-I&typing"-I(bytecomp"-I,file_formats"-I&lambda"-I*middle_end"-I2middle_end/closure"-I2middle_end/flambda"-I=middle_end/flambda/base_types"-I'asmcomp"-I&driver"-I(toplevel"-I%tools"-I'runtime"-I1otherlibs/dynlink"-I-otherlibs/str"-I4otherlibs/systhreads"-I.otherlibs/unix"-I8otherlibs/runtime_events"-c 9/builds/workspace/main/flambda/false/label/ocaml-linux-32 <10/.-,+*)('&%$#"! @@0M-cG  3@@@(Asttypes0eT$BbRM dc5Build_path_prefix_map0DGl}%Y5Lhi8CamlinternalFormatBasics0|.e1R$|o0CamlinternalLazy0zY# #4#-*Format_doc0uy@GmWUࠠ%Ident0>ЃzV)j⠠,Identifiable0]/*N (Location0nBɊOn?7~ؠ)Longident0wP q;ɡ$Misc0Bpg]?[q*Odoc_class0D:Le0!8Z?vMY.Odoc_exception0>@ӽX4Id.Odoc_extension0Lt.`?9:770/-05ɍM!W)Odoc_name0 d L_,.Odoc_parameter0n6sApT)Odoc_type0~b:x_B0ϸf%,e8*Odoc_value0FJ]\fѬ+Outcometree0BuG^)= 9c )Parsetree0v o[pY Y$Path0k.tbGmᠠ)Primitive0dU=\I/}%Shape0 M``ll&Stdlib0t0VoS%{<F:.Stdlib__Buffer0,I[?z.Stdlib__Digest0#z25I*.Stdlib__Domain0'Ϳo\0m.K.Stdlib__Either0HD ?|>.Stdlib__Format00FClW/Stdlib__Hashtbl0(L%bԠ,Stdlib__Lazy0$1mlࠠ.Stdlib__Lexing0^m|e+Stdlib__Map0*4ɇ2ɠ.Type_immediacy00$ jbv\"k&%Types0"|Vȷ`X )Unit_info0'T Χ@aR(Warnings0Ef{&@0!8Z?vMYAKC@@@@&Y>@@@@–@@֐IA@@@OW@^ؐZay@@@P@@