Menhir is a LR(1) parser generator for the OCaml programming language. It is 90% compatible to ocamlyacc (included with the OCaml distribution), and it has some advantages over ocamlyacc, such as limited EBNF support, LR(1) generation instead of LALR(1), better conflict explanation and production of reentrant parsers (amongst others).