* 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