Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] Camlp4-tutorial-Example
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Oliver Bandel <oliver@f...>
Subject: Re: [Caml-list] Camlp4-tutorial-Example
Hi,

I started again with reading the Camlp4-tutorial.
I now see more clear here.


On Tue, 3 Sep 2002, Daniel de Rauglaudre wrote:

> Hi,
> 
> On Mon, Sep 02, 2002 at 10:52:27PM +0200, Oliver Bandel wrote:
> 
> > What I do not understand:
> > This calculator knows that * and / have higher Priority
> > than + and -.
> > How is this achieved?
> 
> By the order of the rules. The rules with same priority are grouped
> together:
>    [ ... | ... | ... ]
> 
> and there is another level of parentheses (of bracket parentheses)
> separated by vertical bars to indicate the priority:
>   [
>        [ ... | ... | ... ]        (* lowest priority *)
>      | [ ... | ... | ... ]        ...
>      | [ ... | ... | ... ]        (* highest priority *)
>   ]      

If you would add this to the tutorial, this would be very helpful
for people, first reading it.


Another question:

As far as I see, an expression in the Used Grammar/Plexer
combination needs to give back *one* certain type.
In the examples until page 13 it's always an int,
was is returned back after parsing.

What, if I need a string?

Yes, i've seen that it is possible to get back functions
that, if applied, will give the resulting int.
But a) it's again int and b) all functions have same type.
What if I need a function that returns back a string?

Or do I have to look at it in other ways?

Well, in Ocaml (it's big plus) it's necessary to have
correct types in the program, so if I want to get
back int as well as string, I may define a type

type myresult = Int of int | String of string

Is this a way, you can recommend?

Ciao,
   Oliver

P.S.: I looked at the example with List.assoc on page 11 and 12.
      I think that's a way to implement own variables of a simple
      language. Very easy, and again surprising.
      (Here again: how to use string-variables in a language
       to implement?)


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