This release adds the OCaml/Menhir backend, a variant of the OCaml backend that uses parser generator
menhir instead of
ocamlyacc. Beyond that, the focus of this release has been increased robustness and predictability of the BNFC tool:
--checkthat only performs sanity checks on the given LBNF grammar file, without calling any backend (#286).
definenow supported by all maintained backends (Agda, Haskell, Haskell/GADT, C, C++, Java).
position tokennow supported by all maintained backends with the exception of C++/NoSTL.
The Haskell backend has seen the following improvements:
Stringin the generated lexer (#167).
Ident-like token types (#192).
Errmonad is now defined as
Either String. Module
ErrMis only generated for backwards compatibility. Imports of
ErrMwith an explicit import list may have to modified slightly, see a migration guide at the Haskell backend documentation.
The C-family backends have been improved as follows:
Further bug fixes: #163, #169, #196, #212, #235, #256, #264, #269, #274, #276, #277, #279, #282, #283, #290.
Building of BNFC 2.8.4 requires GHC ≥ 7.10 and has been tested up to GHC 8.10.2. BNFC can be build using
stack (using one of the enclosed
/usr/local/bin/bnfccompiled under Mac OS X Mojave, x86 64bit processor