English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
[camlp4] str_item filters & toplevel?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2008-04-17 (19:21)
From: Martin Jambon <martin.jambon@e...>
Subject: Re: [Caml-list] [camlp4] str_item filters & toplevel?
On Thu, 17 Apr 2008, Nicolas Pouillard wrote:

> Excerpts from Martin Jambon's message of Thu Apr 17 17:25:20 +0200 2008:
>> On Thu, 17 Apr 2008, Nicolas Pouillard wrote:
>>> Excerpts from Martin Jambon's message of Thu Apr 17 16:17:15 +0200 2008:
>>>> I started from the wiki page describing how to use AST filters:
>>>> http://brion.inria.fr/gallium/index.php/Camlp4MapGenerator
>>>> The example doesn't work in the toplevel (3.10.1), although it works
>>>> otherwise. How to make it work?
>>> By patching the camlp4 sources :)
>> Is it a bug that has to be fixed?
> It  could  be  seen  as a bug, but the behavior is not completely clear, since
> applying  the  filters  to each toplevel phrase is different from calling them
> only once on the whole module implem.

I'll look at the code for a better understanding.

I think that the 2 following cases are pretty common:

a. inserting some constant code once at the beginning of the file (or
    module), such as "open Foo"
b. replacing a str_item by other str_items

Both were problematic in camlp4 3.09, requiring some fragile or 
undocumented hacks. It would be extremely useful to have a clean solution 
to these problems.

It seems to me that both (a) and (b) could be implemented and 
made available in the toplevel without theoretical difficulties.

I can imagine a third situation consisting in performing a full 
file/module analysis and inserting something at the beginning or at the 
end. That also could be implemented, although it would clearly not be 
available in the toplevel.


>> If it's already fixed, which version?
> Not already fixed.
> -- 
> Nicolas Pouillard aka Ertai