caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] Error in Camlp4 tutorial?
@ 2003-05-24 18:27 Matt Gushee
  2003-05-24 19:18 ` Remi Vanicat
  0 siblings, 1 reply; 3+ messages in thread
From: Matt Gushee @ 2003-05-24 18:27 UTC (permalink / raw)
  To: caml-list

Hello, all--

I am working through the Camlp4 Tutorial (which, by the way, I find a
very comprehensible treatment of a difficult subject -- thanks to M. de
Rauglaudre!), but I am having trouble with the add_infix function in
section 3.6.

I start the interactive toplevel with the command

  $ ocaml camlp4o.cma pa_extend.cmo

Then load the file "gr2.ml," which defines the 'expr' grammar entry (as
far as I can see, it's a faithful copy from section 3.4 of the
tutorial):

  # #use "gr2.ml";;

Then I attempt to write the add_infix definition, again, copying
verbatim from the tutorial, but I get the following error:

  # let add_infix lev op =
    EXTEND
      expr: LEVEL $lev$
        [ [ x = expr; $op$; y = expr -> <:expr< $lid:op$ $x$ $y$ >> ] ];
                                        ^^^^^^^
  Unbound quotation: "expr"

Can anyone help me understand what the problem is? Is there an error in
the tutorial, or have a done something wrong?

(P.S.: I don't really understand what '<:expr<' represents. Maybe the
answer would be obvious if I knew that?)
                                                          
-- 
Matt Gushee                 When a nation follows the Way,
Englewood, Colorado, USA    Horses bear manure through
mgushee@havenrock.com           its fields;
http://www.havenrock.com/   When a nation ignores the Way,
                            Horses bear soldiers through
                                its streets.
                                
                            --Lao Tzu (Peter Merel, trans.)

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


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

* Re: [Caml-list] Error in Camlp4 tutorial?
  2003-05-24 18:27 [Caml-list] Error in Camlp4 tutorial? Matt Gushee
@ 2003-05-24 19:18 ` Remi Vanicat
  2003-05-24 20:15   ` Matt Gushee
  0 siblings, 1 reply; 3+ messages in thread
From: Remi Vanicat @ 2003-05-24 19:18 UTC (permalink / raw)
  To: caml-list

Matt Gushee <mgushee@havenrock.com> writes:

> Hello, all--

Hello

[...]


>   # let add_infix lev op =
>     EXTEND
>       expr: LEVEL $lev$
>         [ [ x = expr; $op$; y = expr -> <:expr< $lid:op$ $x$ $y$ >> ] ];
>                                         ^^^^^^^
>   Unbound quotation: "expr"
>
> Can anyone help me understand what the problem is? Is there an error in
> the tutorial, or have a done something wrong?
>
> (P.S.: I don't really understand what '<:expr<' represents. Maybe the
> answer would be obvious if I knew that?)


It would work with
ocaml camlp4o.cma pa_extend.cmo q_MLast.cmo

the <:expr< ... >> things are define in q_MLast.cmo

You should read the documentation about quotation into the camlp4
tutorial. 

(well you don't need to know how to define them, but you should know
what they are).
-- 
Rémi Vanicat
vanicat@labri.u-bordeaux.fr
http://dept-info.labri.u-bordeaux.fr/~vanicat

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


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

* Re: [Caml-list] Error in Camlp4 tutorial?
  2003-05-24 19:18 ` Remi Vanicat
@ 2003-05-24 20:15   ` Matt Gushee
  0 siblings, 0 replies; 3+ messages in thread
From: Matt Gushee @ 2003-05-24 20:15 UTC (permalink / raw)
  To: caml-list

On Sat, May 24, 2003 at 09:18:47PM +0200, Remi Vanicat wrote:
> Matt Gushee <mgushee@havenrock.com> writes:
> 
> >   # let add_infix lev op =
> >     EXTEND
> >       expr: LEVEL $lev$
> >         [ [ x = expr; $op$; y = expr -> <:expr< $lid:op$ $x$ $y$ >> ] ];
> >                                         ^^^^^^^
> >   Unbound quotation: "expr"
> >
> > Can anyone help me understand what the problem is? Is there an error in
> > the tutorial, or have a done something wrong?
> >
> > (P.S.: I don't really understand what '<:expr<' represents. Maybe the
> > answer would be obvious if I knew that?)
> 
> 
> It would work with
> ocaml camlp4o.cma pa_extend.cmo q_MLast.cmo

Well, almost: I've progressed to a type error: the quoted section
apparently evaluates to an int, where MLast.expr is required. Oh, well.
At this point I can usually sort out type errors on my own.

> the <:expr< ... >> things are define in q_MLast.cmo
> 
> You should read the documentation about quotation into the camlp4
> tutorial. 

Ah, I see. And that comes *after* the part where I'm having trouble. I
still think it's a very good tutorial, but perhaps the sequencing could
be improved a bit.

Anyway, thanks for your help!

-- 
Matt Gushee                 When a nation follows the Way,
Englewood, Colorado, USA    Horses bear manure through
mgushee@havenrock.com           its fields;
http://www.havenrock.com/   When a nation ignores the Way,
                            Horses bear soldiers through
                                its streets.
                                
                            --Lao Tzu (Peter Merel, trans.)

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


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

end of thread, other threads:[~2003-05-24 20:15 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-05-24 18:27 [Caml-list] Error in Camlp4 tutorial? Matt Gushee
2003-05-24 19:18 ` Remi Vanicat
2003-05-24 20:15   ` Matt Gushee

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