Version française
Home     About     Download     Resources     Contact us    
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: -- (:)
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
     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