caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* Strange output from Camlp4
@ 2005-10-28 18:53 Matt Gushee
  2005-11-01 13:54 ` [Caml-list] " Hendrik Tews
  0 siblings, 1 reply; 2+ messages in thread
From: Matt Gushee @ 2005-10-28 18:53 UTC (permalink / raw)
  To: caml-list

In the process of trying to learn the revised syntax for objects, I have
encountered a strange message from Camlp4.

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
  end

BTW, that is deliberately a let binding rather than a class definition.
Is that not supposed to work?

Anyway, as suggested by the Camlp4 manual, I run

  camlp4o pr_r.cmo ox.ml

With the result:

  value conf =<pr_r: not impl: expr; tag = 25>;

???

--
Matt Gushee
Englewood, CO, USA


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [Caml-list] Strange output from Camlp4
  2005-10-28 18:53 Strange output from Camlp4 Matt Gushee
@ 2005-11-01 13:54 ` Hendrik Tews
  0 siblings, 0 replies; 2+ messages in thread
From: Hendrik Tews @ 2005-11-01 13:54 UTC (permalink / raw)
  To: caml-list

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
     end
   
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
http://wwwtcs.inf.tu-dresden.de/~tews/ocamlp4/camlp4-undoc.html


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;
    end;


<advertisement>
  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.
</advertisement/


Feel free to ask more revised (syntax) questions!

Bye,

Hendrik Tews


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2005-11-01 13:54 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-10-28 18:53 Strange output from Camlp4 Matt Gushee
2005-11-01 13:54 ` [Caml-list] " Hendrik Tews

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).