caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Daniel de Rauglaudre <daniel.de_rauglaudre@inria.fr>
To: Ceri Storey <cez@pkl.net>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] Possible bug in the lexer?
Date: Fri, 10 Aug 2001 10:40:46 +0200	[thread overview]
Message-ID: <20010810104046.B28052@verdot.inria.fr> (raw)
In-Reply-To: <20010810055128.E83936@mandelbrot.house.pkl.net>; from cez@pkl.net on Fri, Aug 10, 2001 at 05:51:28AM +0100

Hello,

On Fri, Aug 10, 2001 at 05:51:28AM +0100, Ceri Storey wrote:

> I think I've discovered wierd bug in ocaml's lexer. it seems that in
> ocaml 3.01, and 3.02, (and camlp4 original syntax) the following will not 
> parse:
> parser [< ' '"' >] -> ();;

While reading the input, the lexer, instead of reading the token
"quote" and the token "character double-quote", reads the token
"character space" and then the double quote...

It is a design bug, actually. In streams and parsers, the quote is a
token used to introduce a "terminal". In Caml Light (before OCaml),
there was no confusion because the token "character" was enclosed by
backquotes.

Since OCaml, the characters have been enclosed by right quotes (what
is more usual). At that time, we should have changed the token
introducing "terminals" in streams and parsers, we could have choosen
backquotes, for example.

But we forgot. It is the reason of this problem. This is fixed in
revised syntax of Camlp4.

In normal syntax, if you have to specify a "terminal" in a parser, you
must be sure that there is no simple quote 2 characters after your
simple quote.

Write your example as:
   parser [< ''"' >] -> ();;
or
   parser [< '  '"' >] -> ();;

And write:
   parser [< ' ('"' | 'a') >] -> ();;
not:
   parser [< '('"' | 'a') >] -> ();;

Sorry for the inconvenience... due to historical reasons, what is often
the case...

-- 
Daniel de RAUGLAUDRE
daniel.de_rauglaudre@inria.fr
http://cristal.inria.fr/~ddr/
-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


      reply	other threads:[~2001-08-10  8:40 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-08-10  4:51 Ceri Storey
2001-08-10  8:40 ` 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=20010810104046.B28052@verdot.inria.fr \
    --to=daniel.de_rauglaudre@inria.fr \
    --cc=caml-list@inria.fr \
    --cc=cez@pkl.net \
    /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).