Browse thread
[camlp4] str_item filters & toplevel?
-
Martin Jambon
-
Nicolas Pouillard
-
Martin Jambon
-
Nicolas Pouillard
-
Martin Jambon
- Nicolas Pouillard
-
Martin Jambon
-
Nicolas Pouillard
-
Martin Jambon
-
Nicolas Pouillard
[
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: | Nicolas Pouillard <nicolas.pouillard@g...> |
| Subject: | Re: [Caml-list] [camlp4] str_item filters & toplevel? |
Excerpts from Martin Jambon's message of Thu Apr 17 21:19:44 +0200 2008: > 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. > > Thanks. > 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 Currently both can be implemented on a per file basis, moreover they are implemented by using the *same* registering construct. > made available in the toplevel without theoretical difficulties. If one don't add new registration functions the behavior will be odd. > 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. So in the toplevel, filters registered using register_str_item_filter will be called once on an empty phrase. And a new function register_toplevel_phrase_filter will gather functions to be called on each toplevel phrase. > >> If it's already fixed, which version? > > > > Not already fixed. -- Nicolas Pouillard aka Ertai