[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Nicolas Pouillard <nicolas.pouillard@g...> |
| Subject: | Re: [Caml-list] OCamlduce + camlp4 |
Excerpts from Alain Frisch's message of Mon Dec 24 17:03:33 +0100 2007:
> Arnaud Spiwack wrote:
> > There I discovered that I couldn't find a camlp4 syntax file for
> > OCamlduce (to be able to extend OCamlduce's syntax). In my case, I'd
> > like an equivalent to camlp4orf (original syntax, but revised-syntax
> > quotations) that handles OCamlduce syntax (though, original-syntax
> > quotation would require little to change, thus would be all right).
> >
> > Does anybody know whether it already exists ? (maybe Alain or Nicolas ;) ).
> >
> > If it does not, I shall consider making one myself, but I will have to
> > know better of the insides of OCamlduce.
>
> I'm not aware of a Camlp4 parser for OCamlduce (which probably means
> that such a thing does not exist). It should not be difficult (only
> quite boring) to write one. Of course, before writing the grammar,
> you'll have to extend Camlp4's OCaml syntax tree with new constructions
> and its translation to the real OCaml AST (Parsetree).
Another way would be to treat {{...}} as some kind of quotation, and then by
only using OCaml pretty printer (instead of the parsetree marshaller) where
these quotation are printed as is.
However this solution also have a cost, you will lose locations by not using
marshalled parsetrees, so I won't really recommend this direction.
> The OCamlDuce parser uses different lexers for the OCaml and CDuce
> parts. This is done by switching lexing mode on a few tokens ( {{, {:,
> :}, }}). It is possible to reproduce that with Camlp4 (you can plug an
> arbitrary lexer).
>
> Let me know if you need more assistance on the OCamlDuce side...
Let me know if you need more assistance on the Camlp4 side...
> Good luck!
You will need some.
--
Nicolas Pouillard aka Ertai