* Camlp4 question
@ 2005-10-28 19:44 Matt Gushee
2005-11-01 14:04 ` [Caml-list] " Hendrik Tews
0 siblings, 1 reply; 6+ messages in thread
From: Matt Gushee @ 2005-10-28 19:44 UTC (permalink / raw)
To: caml-list
I had occasion today to look through the pa_r.ml, and noticed the
following (line 329 in OCaml 3.08.4):
| "object"; cspo = OPT class_self_patt; cf = class_structure; "end" ->
(* <:expr< object $opt:cspo$ $list:cf$ end >> *)
MLast.ExObj loc cspo cf ]
So a quotation expander was created for objects as ordinary expressions,
but evidently there was something wrong with it. Anyone know what the
problem was?
--
Matt Gushee
Englewood, CO, USA
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Caml-list] Camlp4 question
2005-10-28 19:44 Camlp4 question Matt Gushee
@ 2005-11-01 14:04 ` Hendrik Tews
0 siblings, 0 replies; 6+ messages in thread
From: Hendrik Tews @ 2005-11-01 14:04 UTC (permalink / raw)
To: caml-list
Matt Gushee <matt@gushee.net> writes:
I had occasion today to look through the pa_r.ml, and noticed the
following (line 329 in OCaml 3.08.4):
| "object"; cspo = OPT class_self_patt; cf = class_structure; "end" ->
(* <:expr< object $opt:cspo$ $list:cf$ end >> *)
MLast.ExObj loc cspo cf ]
So a quotation expander was created for objects as ordinary expressions,
but evidently there was something wrong with it. Anyone know what the
problem was?
I believe the comment shows what the code should look like if
immediate objects would have been implemented in the quotation
expander q_MLast.ml. However, immediate objects are not yet in
the quotation expander, therefore the real code is what the
quoatation expander would have produced (if immediate objects had
been implemented).
Bye,
Hendrik
PS. Sorry Matt for posting separately to caml-list.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Camlp4 question
@ 2009-06-14 0:25 Jacques Le Normand
0 siblings, 0 replies; 6+ messages in thread
From: Jacques Le Normand @ 2009-06-14 0:25 UTC (permalink / raw)
To: caml-list caml-list
[-- Attachment #1: Type: text/plain, Size: 419 bytes --]
Hello list,
how does one define type parameter syntax with camlp4?
right now I'm using:
test:
[[
"mytype" ; options = OPT parameters ; ident = a_LIDENT; "=" ; ctyp
-> (ident,atoms)
]];
parameters:
[
["(";params = comma_type_parameter;")" -> params]
|
[tp = type_parameter -> tp ]];
Is this the right way to do it or has parameters already been defined
elsewhere?
--Jacques L.
[-- Attachment #2: Type: text/html, Size: 534 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* camlp4 question
@ 2005-11-30 9:29 Christophe Raffalli
0 siblings, 0 replies; 6+ messages in thread
From: Christophe Raffalli @ 2005-11-30 9:29 UTC (permalink / raw)
To: caml-list
[-- Attachment #1: Type: text/plain, Size: 383 bytes --]
I would like to produce an abbreviated command for
camlp4 mylexer.cmo mypa_o.cmo pa_extend.cmo q_MLast.cmo pr_dump.cmo\
pa_bindlib.cmo
I tried to mimic the compilation of camlp4o:
ocamlc -I +camlp4 odyl.cma camlp4.cma mylexer.cmo mypa_o.cmo\
pa_bindlib.cmo pr_dump.cmo odyl.cmo -o camlp4bo
But when I try to use ocamlp4bo, it produces no output ...
What am I doing wrong ?
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 894 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* camlp4 question
@ 2005-09-08 8:02 Christophe Raffalli
2005-09-08 8:16 ` Christophe Raffalli
0 siblings, 1 reply; 6+ messages in thread
From: Christophe Raffalli @ 2005-09-08 8:02 UTC (permalink / raw)
To: caml-list
I am writing a tool to facilitate the use of callback of camlfunction
from C. I have a first prototype running for lablGlut, but I want to
make it nicer using camlp4 (this extension should produce automatically
the C wrapper for each callback, the user will only have to compile the
produced C file).
The pb is that I need to retrieve information given in one module from
another. The minimum I need to do is to search for the path given to
ocamlc (the -I options) from camlp4 code, but I would prefer a better
way, and I do not know how to retrive this PATH anyway.
Here is an example to illustrate what I need (the type 'a callback is a
type to a C wrapper for a function of type 'a) :
-- file glut.ml, part of the lablGlut library --
...
let visibility_state_of_int = function
0 -> NOT_VISIBLE
| 1 -> VISIBLE
| _ -> raise (BadEnum "visibility_state")
REGISTER_CONVERSION visibility_state_of_int
external visibilityFunc :
cb:(state:visibility_state_t->unit) callback->unit
= "ml_glutVisibilityFunc"
...
-- file test.ml an example using lablGlut --
open Glut
...
let state_changed ~state =
match value with
NOT_VISIBLE -> printf "window not visible."; print_newline()
| VISIBLE -> printf "window not visible."; print_newline()
MAKE_WRAPPER state_changed state_changed_cb
(* here I need to search for the convertion for the type
visibility_state_of_int which was defined in glut.ml to make the
C wrapper state_changed_cb : (visibility_state_of_int -> unit) callback *)
let _ = Glut.visibilityFunc state_changed_cb
...
Can someone help ?
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2009-06-14 0:25 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-10-28 19:44 Camlp4 question Matt Gushee
2005-11-01 14:04 ` [Caml-list] " Hendrik Tews
-- strict thread matches above, loose matches on Subject: below --
2009-06-14 0:25 Jacques Le Normand
2005-11-30 9:29 camlp4 question Christophe Raffalli
2005-09-08 8:02 Christophe Raffalli
2005-09-08 8:16 ` Christophe Raffalli
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox