From: Alain Frisch <frisch@clipper.ens.fr>
To: Lakshminarayanan R <ln@cs.colostate.edu>
Cc: <caml-list@inria.fr>
Subject: Re: [Caml-list] Looking for parser + ast generator in OCAML
Date: Mon, 18 Feb 2002 21:49:06 +0100 (MET) [thread overview]
Message-ID: <Pine.GSO.4.33.0202182132550.26369-100000@clipper.ens.fr> (raw)
In-Reply-To: <Pine.GSO.4.20.0202181250270.2060-100000@scarlatti.cs.colostate.edu>
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
next prev parent reply other threads:[~2002-02-18 20:49 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-02-18 19:55 Lakshminarayanan R
2002-02-18 20:49 ` Alain Frisch [this message]
2002-02-18 21:40 ` Remi VANICAT
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Pine.GSO.4.33.0202182132550.26369-100000@clipper.ens.fr \
--to=frisch@clipper.ens.fr \
--cc=caml-list@inria.fr \
--cc=ln@cs.colostate.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox