caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Daniel de Rauglaudre <daniel.de_rauglaudre@inria.fr>
To: caml-list@inria.fr
Subject: Re: [Caml-list] type problem with camlp4
Date: Wed, 8 Jan 2003 03:31:35 +0100	[thread overview]
Message-ID: <20030108033135.A22889@verdot.inria.fr> (raw)
In-Reply-To: <20030107223455.GA23238@anu.edu.au>; from Pietro.Abate@anu.edu.au on Wed, Jan 08, 2003 at 09:34:55AM +1100

Hi,

On Wed, Jan 08, 2003 at 09:34:55AM +1100, Pietro Abate wrote:

> 	[[ n = STRING ->
> 		let node = magic_function ( parse_string n ) in
> 		let id = gen_id() in
> 		(<:patt<$lid:id$>>,<:expr<$node$>>)
> 	]];
> 
> who can I do that ? what is the magic function ?

let node = Grammar.Entry.parse Pcaml.expr (Stream.of_string n) in

You may need to enclose that with a good "try..with" in case of syntax
error in your string, because the error location raised would be relative
to it, and would highlight a wrong position. Moreover, the resulting
tree should be also re-located in case of semantic error for the
same reason.

Actually, it should be like the handling of quotations, but with that
above function as expander. But the code doing that in Camlp4 is in
several parts and may not be so easy to extract if you don't know the
internal code of Camlp4. I can do it if you want and possibly add a
new function in Camlp4 (module Pcaml) for that kind of usage.

-- 
Daniel de RAUGLAUDRE
http://cristal.inria.fr/~ddr/
-------------------
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


      reply	other threads:[~2003-01-08  2:31 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-01-07  3:57 Pietro Abate
2003-01-07 12:39 ` Daniel de Rauglaudre
2003-01-07 22:34   ` Pietro Abate
2003-01-08  2:31     ` Daniel de Rauglaudre [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030108033135.A22889@verdot.inria.fr \
    --to=daniel.de_rauglaudre@inria.fr \
    --cc=caml-list@inria.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).