From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id VAA30309; Mon, 18 Feb 2002 21:49:08 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id VAA30278 for ; Mon, 18 Feb 2002 21:49:07 +0100 (MET) Received: from nef.ens.fr (nef.ens.fr [129.199.96.32]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id g1IKn7D01554 for ; Mon, 18 Feb 2002 21:49:07 +0100 (MET) Received: from clipper.ens.fr (clipper-gw.ens.fr [129.199.1.22]) by nef.ens.fr (8.10.1/1.01.28121999) with ESMTP id g1IKn6p57231 ; Mon, 18 Feb 2002 21:49:06 +0100 (CET) Received: from localhost (frisch@localhost) by clipper.ens.fr (8.9.2/jb-1.1) id VAA14825 ; Mon, 18 Feb 2002 21:49:06 +0100 (MET) Date: Mon, 18 Feb 2002 21:49:06 +0100 (MET) From: Alain Frisch To: Lakshminarayanan R cc: Subject: Re: [Caml-list] Looking for parser + ast generator in OCAML In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk 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