caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Tiphaine Turpin <Tiphaine.Turpin@irisa.fr>
To: Alexey Rodriguez <mrchebas@gmail.com>, caml-list@yquem.inria.fr
Subject: Re: [Caml-list] Re: Generating comments from camlp4
Date: Tue, 15 Sep 2009 14:44:36 +0200	[thread overview]
Message-ID: <4AAF8C34.30009@irisa.fr> (raw)
In-Reply-To: <4b39c80a0909150526x23ae0eb7o649e60722600a0fd@mail.gmail.com>

I just remembered that I once faced a similar problem. I solved it
rather easily using a custom documentation generator wich justs
redefines a few methods to discard the appropriate elements (those
starting with a n underscore in my case). Here is the code :

open Odoc_info
open Value

class my_doc_gen = object (this)
  inherit Odoc_html.html as super

  method synthetic name =
    (Name.simple name).[0] = '_'

  method html_of_attribute b a =
    if not (this#synthetic a.att_value.val_name)
    then super#html_of_attribute b a

  method html_of_method b a =
    if not (this#synthetic a.met_value.val_name)
    then super#html_of_method b a

end

let my_generator = new my_doc_gen
let _ = Odoc_args.set_doc_generator (Some (my_generator :>
Odoc_args.doc_generator))


Alexey Rodriguez a écrit :
> Just an update on the situation.
>
> We are using Jane Street's excellent type_conv library to generate
> code for user-defined types when preprocessing. However, these
> generated functions appear in ocamldoc documentation and we would like
> to avoid that. The easiest solution seemed to be to bracket the
> generated code with stop tags: (** / **). In camlp4 comments are
> tokens but I do not quite see how to generate tokens from camlp4
> quotations. So at the moment I have the impression that I cannot solve
> this problem at the camlp4 level.
>
> Cheers,
>
> Alexey
>
> On Fri, Sep 11, 2009 at 3:59 PM, Alexey Rodriguez <mrchebas@gmail.com> wrote:
>   
>> Dear list,
>>
>> Is there a way to generate comments from camlp4 code?
>>
>> We have preprocessors that generate the following kind of code in signatures:
>>
>>     
>>>  <:sig_item<
>>>    $sig_generator the_type_declaration$;
>>>  >>
>>>       
>> However, these extra function signatures show up in the output of
>> ocamldoc which is very annoying. We thought of using "ocamldoc stop"
>> tags (** / **), but we do not know how to generate such comments from
>> camlp4. Do you know of a way to do this:
>>
>>     
>>>  <:sig_item<
>>>    (** / **)
>>>    $sig_generator the_type_declaration$;
>>>    (** / **)
>>>  >>
>>>       
>> Comments are not part of the AST so I suppose we have to do some
>> hacking at the lexing level.
>>
>> Note that having a dummy preprocessor that generates empty signatures
>> is not an option: this causes type checking errors that require a lot
>> of effort to circumvent.
>>
>> Cheers,
>>
>> Alexey
>>
>>     
>
> _______________________________________________
> Caml-list mailing list. Subscription management:
> http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
> Archives: http://caml.inria.fr
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
>
>   


      parent reply	other threads:[~2009-09-15 12:45 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-11 13:59 Alexey Rodriguez
2009-09-15 12:26 ` Alexey Rodriguez
2009-09-15 12:42   ` [Caml-list] " Anil Madhavapeddy
2009-09-16  1:03     ` Jake Donham
2009-09-16  7:48       ` Alexey Rodriguez
2009-09-16  8:02         ` Tiphaine Turpin
2009-09-15 12:44   ` Tiphaine Turpin [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4AAF8C34.30009@irisa.fr \
    --to=tiphaine.turpin@irisa.fr \
    --cc=caml-list@yquem.inria.fr \
    --cc=mrchebas@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).