Browse thread
Generating comments from camlp4
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Tiphaine Turpin <Tiphaine.Turpin@i...> |
| Subject: | Re: [Caml-list] Re: Generating comments from camlp4 |
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
>
>