Browse thread
[ANNOUNCE] Alpha release of Menhir, an LR(1) parser generator for ocaml
[
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: | 2005-12-12 (17:58) |
From: | Francois Pottier <Francois.Pottier@i...> |
Subject: | [ANNOUNCE] Alpha release of Menhir, an LR(1) parser generator for ocaml |
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/