caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] Ocaml parser reports strange syntax-error position.
@ 2013-06-05  9:49 Matej Kosik
  2013-06-05  9:52 ` Romain Bardou
  0 siblings, 1 reply; 3+ messages in thread
From: Matej Kosik @ 2013-06-05  9:49 UTC (permalink / raw)
  To: caml-list

Hi,

If I type this to the Ocaml toplevel:

  Printf "%d" 10;;

The actual problem is that instead of "Printf" I should have typed "Printf.printf".

However, the parser complains about literal "10".

Is this the expected behavior or a bug (in parser's error-reporting routines)?

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

* Re: [Caml-list] Ocaml parser reports strange syntax-error position.
  2013-06-05  9:49 [Caml-list] Ocaml parser reports strange syntax-error position Matej Kosik
@ 2013-06-05  9:52 ` Romain Bardou
  2013-07-09 20:50   ` Goswin von Brederlow
  0 siblings, 1 reply; 3+ messages in thread
From: Romain Bardou @ 2013-06-05  9:52 UTC (permalink / raw)
  To: caml-list

Le 05/06/2013 11:49, Matej Kosik a écrit :
> Hi,
> 
> If I type this to the Ocaml toplevel:
> 
>   Printf "%d" 10;;
> 
> The actual problem is that instead of "Printf" I should have typed "Printf.printf".
> 
> However, the parser complains about literal "10".
> 
> Is this the expected behavior or a bug (in parser's error-reporting routines)?
> 

I guess it believes Printf here is not a module name (there is no dot)
but a constructor (it is a capitalized identifier). But the syntax for
constructors is either:
  A
  A x
  A (x1, ..., xn)
In other words, if A is a constructor, "A x y" is never a valid
expression. It could also be a type error ("A x" is not a function, it
cannot be applied) but apparently it is catched by the parser.

So I would say it is the expected behavior, but that it could be
improved, as all error messages.

-- 
Romain Bardou

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

* Re: [Caml-list] Ocaml parser reports strange syntax-error position.
  2013-06-05  9:52 ` Romain Bardou
@ 2013-07-09 20:50   ` Goswin von Brederlow
  0 siblings, 0 replies; 3+ messages in thread
From: Goswin von Brederlow @ 2013-07-09 20:50 UTC (permalink / raw)
  To: caml-list

On Wed, Jun 05, 2013 at 11:52:49AM +0200, Romain Bardou wrote:
> Le 05/06/2013 11:49, Matej Kosik a écrit :
> > Hi,
> > 
> > If I type this to the Ocaml toplevel:
> > 
> >   Printf "%d" 10;;
> > 
> > The actual problem is that instead of "Printf" I should have typed "Printf.printf".
> > 
> > However, the parser complains about literal "10".
> > 
> > Is this the expected behavior or a bug (in parser's error-reporting routines)?
> > 
> 
> I guess it believes Printf here is not a module name (there is no dot)
> but a constructor (it is a capitalized identifier). But the syntax for
> constructors is either:
>   A
>   A x
>   A (x1, ..., xn)
> In other words, if A is a constructor, "A x y" is never a valid
> expression. It could also be a type error ("A x" is not a function, it
> cannot be applied) but apparently it is catched by the parser.
> 
> So I would say it is the expected behavior, but that it could be
> improved, as all error messages.

Can't be a function since it start with an uppercase.

Otherwise you are spot on:

# Printf "%d";;
Error: Unbound constructor Printf

MfG
	Goswin

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

end of thread, other threads:[~2013-07-09 20:50 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-05  9:49 [Caml-list] Ocaml parser reports strange syntax-error position Matej Kosik
2013-06-05  9:52 ` Romain Bardou
2013-07-09 20:50   ` Goswin von Brederlow

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