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
Strange output from Camlp4
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2005-11-01 (13:54)
From: Hendrik Tews <tews@t...>
Subject: Re: [Caml-list] Strange output from Camlp4
Matt Gushee <matt@gushee.net> writes:

   I have a file, ox.ml, whose contents look like this:
     let conf = object
       val mutable data:(string * string) list = []
       method get k = List.assoc k data
An immediate object, this is a bit more difficult. Note that the
quotation expander q_MLast contains no rules for immediate
objects. Further, pr_o.ml and pr_r.ml do not contain MLast.ExObj,
the ast constructor for immediate objects, so when pretty
printing an immediate object, you end up with this code:

      | e -> fun curr next _ k -> [: `not_impl "expr" e :] ]}];

   BTW, that is deliberately a let binding rather than a class definition.
   Is that not supposed to work?
I would say yes. You should submit a bug report about it.

To learn about the revised syntax you have to study the parser
pa_r.ml ... or read about what I have found out at

The translation to revised syntax of your example is as follows:

    value conf = object
      value mutable data: list (string * string) = [];
      method get k = List.assoc k data;

  Why do you need the revised syntax at all? If you just want to
  use quotations, you can use quotations in the original syntax,
  see http://wwwtcs.inf.tu-dresden.de/~tews/ocamlp4/ocamlp4.html
  Version 0.2 does not have immediate objects, but I have done
  immediate objects already and I can release it if you need it. I
  plan to upgrade to 3.09 as soon as I find some time.

Feel free to ask more revised (syntax) questions!


Hendrik Tews