English version
Accueil     À propos     Téléchargement     Ressources     Contactez-nous    

Ce site est rarement mis à jour. Pour les informations les plus récentes, rendez-vous sur le nouveau site OCaml à l'adresse ocaml.org.

Browse thread
Syntax vs Operators
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2005-08-23 (18:04)
From: Jacques Carette <carette@m...>
Subject: Re: [Caml-list] Syntax vs Operators
Damien Doligez wrote:

> On Aug 22, 2005, at 17:55, Jacques Carette wrote:
>> I have been going through the documentation, trying to figure out  
>> which constructs in Ocaml are syntactic (like :: seems to be) and  
>> cannot be oer-ridden, and others like + which are values in  
>> Pervasives.  Is there a simple way to find out which language  
>> constructs are purely syntactic?
> You should look a the lexer documentation:
> < http://caml.inria.fr/pub/docs/manual-ocaml/manual009.html >,
> in the section titled "Prefix and Infix Symbols", you will get the  
> syntax of
> all the user-definable symbols.  Some of them are predefined, but you  
> are
> guaranteed to be able to override them.  You should avoid overriding  
> the ones
> that are listed as keywords (in the next section), even if some of them
> are actually redefinable in the current implementations.
Actually, the whole point of this question is that I want to 
redefine/override them - and I wanted to find out which I could not.  I 
know I can override + if I want, I want to know about the ones like :: 
which have a pre-defined meaning but can not be overridden.  By 
carefully reading sections 9 and 15 of the manual, I have managed to 
extract this information - I was just hoping that there was something 
simpler that I had somehow overlooked.

The point is to see how much of a DSL I can create in Ocaml, using Ocaml 
syntax, by using lots of Functors.  Very much in the spirit of the 
Lua-ML interpreter in fact, except that I want to use Caml syntax rather 
than having to parse a new language.  Or I may decide to adapt the 
camlp4 macros for the ``revised syntax'' for my purposes.