* [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