Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
From: Nicolas Pouillard <nicolas.pouillard@gmail.com>
To: Jon Harrop <jon@ffconsultancy.com>
Cc: caml-list <caml-list@yquem.inria.fr>,
	mainland <mainland@eecs.harvard.edu>
Subject: Re: [Caml-list] quasiquoting: 3 parsers for camlp4 vs 1 for haskell?
Date: Thu, 23 Apr 2009 16:53:28 +0200	[thread overview]
Message-ID: <1240497508-sup-5770@ausone.local> (raw)
In-Reply-To: <200904230019.09216.jon@ffconsultancy.com>

Excerpts from Jon Harrop's message of Thu Apr 23 01:19:09 +0200 2009:
> On Friday 17 April 2009 19:24:31 Joel Reymont wrote:
> >  From the quasiquoting paper by Geoffrey Mainland [1], page 7:
> >
> > "The major advantage of our approach over that of camlp4
> > is that we demonstrate how to use generic programming
> > to reuse a single parser to parse quasiquoted patterns,
> > quasiquoted expressions and plain syntax that does not
> > include antiquotes. Because OCaml does not support generic
> > programming out of the box,
> 
> I have no idea what he meant by this.
> 
> > in camlp4 this would require three separate parsers,
> 
> AFAICT, that was not true when he wrote it (Sept 2007) and is not true today.

There was indeed three different parsers for OCaml-like syntax in the old
camlp4. Actually there was one classical parser for the official/original
OCaml syntax but this one was not embeddable in quotations. There was also
two parsers for the revised syntax one being the classical one and the other
being for quotations.

> > each generating different representations of the same concrete syntax."
> 
> That has never been true.

We are talking about quotations here, and I can confirm that the two parsers
for the revised syntax where generating to different representations of the
concrete syntax.

Example (simplified):
  f 42     => App (Var "f") (Int "42")
  <<f 42>> => App (App (Con "Var") (Str "f")) (App (Con "Int") (Str "42"))

The new version of camlp4 use only one grammar for the revised syntax (instead
of two) and a grammar extension for the official/original syntax.

Best regards,

-- 
Nicolas Pouillard


      parent reply	other threads:[~2009-04-23 14:54 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-17 18:24 Joel Reymont
2009-04-17 20:06 ` [Caml-list] " Jake Donham
2009-04-22 23:19 ` Jon Harrop
2009-04-23  2:17   ` Geoffrey Mainland
2009-04-23 14:53   ` Nicolas Pouillard [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=1240497508-sup-5770@ausone.local \
    --to=nicolas.pouillard@gmail.com \
    --cc=caml-list@yquem.inria.fr \
    --cc=jon@ffconsultancy.com \
    --cc=mainland@eecs.harvard.edu \
    /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