caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] A question about Camlp4
@ 2003-04-03  9:25 Frederic Tronel
  2003-04-03  9:40 ` Remi Vanicat
  0 siblings, 1 reply; 4+ messages in thread
From: Frederic Tronel @ 2003-04-03  9:25 UTC (permalink / raw)
  To: caml-list

Hi list,


I'm using camlp4 in order to embed a scripting language within my caml 
programs.
I've already done this one year ago for a subset of Lotos verification 
language, and I'm extending this work.

I'm facing a difficulty. Here is a canonical example of the problem:

EXTEND:
    rule1: ..... ->    <:expr< >>   (* A rule that generate a ML AST *)
    rule2:  OPT a = rule1 ..... ->
	let b = match a with
		None -> <:expr<None>>
		Some x -> <:expr<Some $x>>
	in
	<:expr< ATypeConstructor  $b$>>
...
END	

I have to do this small trick for each optionnal symbol in each rule, 
(this is also true for list meta symbols introduced by LIST0, LIST1 ...).
It would greatly improve readability of my program, if I could define a 
small function outside from the grammar extension which would do:

optionToAst o =
match o with
  None -> <:expr<None>>
  Some x -> <:expr<Some $x>>

However if I do this the compiler complains about unbound value "loc".
Thanks for your help.

Best regards,

Frederic Tronel.


-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


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

end of thread, other threads:[~2003-04-03 12:29 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-04-03  9:25 [Caml-list] A question about Camlp4 Frederic Tronel
2003-04-03  9:40 ` Remi Vanicat
2003-04-03 10:43   ` Frederic Tronel
     [not found]     ` <87vfxvlttf.dlv@wanadoo.fr>
     [not found]       ` <3E8C1FAD.80807@inrialpes.fr>
     [not found]         ` <87n0j7lryf.dlv@wanadoo.fr>
     [not found]           ` <3E8C21ED.80202@inrialpes.fr>
     [not found]             ` <87k7eblqaw.dlv@wanadoo.fr>
2003-04-03 12:29               ` Frederic Tronel

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