From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by yquem.inria.fr (Postfix, from userid 18965) id 6A528BB81; Mon, 12 Dec 2005 18:58:38 +0100 (CET) Date: Mon, 12 Dec 2005 18:58:38 +0100 From: Francois Pottier To: Caml Mailing List Subject: [ANNOUNCE] Alpha release of Menhir, an LR(1) parser generator for ocaml Message-ID: <20051212175838.GA8502@yquem.inria.fr> Reply-To: Francois.Pottier@inria.fr Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.5.9i X-Spam: no; 0.00; parser:01 ocaml:01 grammar:01 ocaml:01 ocamlyacc:01 ocamlyacc:01 grammar:01 parsers:01 parsing:01 replacing:01 parsing:01 sequences:01 syntax:01 lalr:01 grammars:01 X-Spam-Checker-Version: SpamAssassin 3.0.3 (2005-04-27) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=ALL_TRUSTED autolearn=disabled version=3.0.3 Dear Caml users, We are proud to announce the first release of Menhir. Menhir compiles LR(1) grammar specifications to OCaml code. Menhir is 90% compatible with ocamlyacc. That is, existing ocamlyacc grammar specifications are accepted and compiled by Menhir; the resulting parsers run and produce correct parse trees, except they produce incorrect position information, because none of the functionality of module Parsing is supported. Porting a grammar specification from ocamlyacc to Menhir requires replacing all calls to the Parsing module with new keywords. Why switch from ocamlyacc to Menhir? In short, * Menhir offers parameterized nonterminal symbols as well as a library of standard definitions, including options, sequences, and lists. It also offers limited support for EBNF syntax. * ocamlyacc accepts LALR(1) grammars; Menhir accepts LR(1) grammars, thus avoiding certain artificial conflicts. * Menhir explains conflicts in terms of the grammar, not (only) in terms of the automaton. * Menhir allows grammar specifications to be split over multiple files. It also allows several grammars to share a single set of tokens. * Menhir produces reentrant parsers. * Menhir is able to produce parsers that are parameterized by Ocaml modules. * ocamlyacc requires semantic values to be referred to via keywords: $1, $2, and so on. Menhir allows semantic values to be explicitly named. * Menhir's error and warning messages are usually more numerous and better than ocamlyacc's. A more detailed comparison between ocamlyacc and Menhir appears in Menhir's documentation. This is an ALPHA-quality release, so there certainly remain a lot of bugs to iron out. Nevertheless, we encourage intrepid testers to have a look and send suggestions and bug reports our way. Thanks for your attention! Menhir requires ocaml 3.09. The source distribution and the documentation can be found at http://pauillac.inria.fr/~fpottier/menhir/menhir-20051212.tar.gz http://pauillac.inria.fr/~fpottier/menhir/manual.pdf -- François Pottier and Yann Régis-Gianas {Francois.Pottier,Yann.Regis-Gianas}@inria.fr http://pauillac.inria.fr/~fpottier/ http://pauillac.inria.fr/~regisgia/