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
[Caml-list] Looking for parser + ast generator in OCAML
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2002-02-18 (20:49)
From: Alain Frisch <frisch@c...>
Subject: Re: [Caml-list] Looking for parser + ast generator in OCAML
On Mon, 18 Feb 2002, Lakshminarayanan R wrote:

> I am wondering what would be the fastest and robust way to
> implement a parser in ocaml for our language. I am looking
> for parser generators (I found ocamlyacc, are there any
> others?).

Camlp4 (http://caml.inria.fr/camlp4) is another option for parsing. I
rewrote the ocamlyacc parser for my CDuce language in camlp4; this gave
better parsing error messages. The drawback is that camlp4 does not signal
"conflicts" in the parser, but its parsing technology is simple enough to
detect conflicts by hand (globally, I feel more confident in the new
parser; I can predict easily what I break when I add or modify a rule).
Camlp4 parsers are also probably somewhat slowest, but who cares ?  I feel
Camp4 parsers esthetically superior: you don't have to
count the tokens to produce (and read) the correct $1, $2, $3; precedence
levels appear clearly; etc ...

> I am also looking for tools that can automatically
> generate data structures to hold the Abstract Syntax Tree
> and also tools that can generate functions that can be used
> to traverse this AST. Basically I want tools that can take a
> grammar spec. and generate a parser, ast, and tree traversal
> functions, automatically.

I second that, altough I do not see clearly what the tool should be.
Basically, I would like to give the same abstract syntax as in papers,
that is without parentheses, with overloading of symbols between several
syntactical categories, etc ... and let the tool inform me, maybe
interactively, when ambiguities have to be resolved, by showing "typical"
ambiguous case and suggesting solutions (precedence, associativity,
parentheses, ...). An automatically generated pretty-printer associated to
the grammar would be great too.

> I would highly appreciate any pointers to related tools.
> A more general question: Is there some kind of Compiler
> Development Kit (or set of tools) in Ocaml?

I'm not aware of such a thing, but there are many compilers written in
OCaml with available source code (OCaml itself for instance).

-- Alain

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