BNFC 2.9.2 has been released!, see:
-
https://github.com/BNFC/bnfc/releases/tag/v2.9.2
-
https://hackage.haskell.org/package/BNFC-2.9.2
This release aims to make the C/C++ generated parsers more robust
(reentrant). Further, the `define` and `layout` features have seen some
improvements. A full change log is below.
Enjoy!
Andreas
## Major improvements
* Haskell: layout keywords can now be stacked on the same line [#354],
see
https://bnfc.readthedocs.io/en/latest/lbnf.html#stacking-layout-keywords
* C: new methods `free_*` and `clone_*` to deallocate and clone syntax
trees [#348]
* C/C++ backends now create reentrant parsers [#349]
## Bug fixes and small improvements
* Haskell-GADT: generated code is warning free [#346]
* Haskell: fixes in layout preprocessor [#343,#344,#345,#352,#353]
* Haskell: print `[Char]` correctly, removed method `prtList` [#359]
* Haskell: added missing import [#368], regression introduced in 2.9.1
by [#331]
* C: fixed a space leak when parsing from a string in memory [#347]
* C: removed errorneous `define`d constructors from `Skeleton.c`
* C++: `define`d constructors now reside in `Absyn` [#287]
* Java: `define`d constructor now reside in `AbsynDef.java` [#287]
* Ocaml: fixed translation of nested `define`d constructors
* C/C++/Java: Pre/post/mixfix lists are now printed correctly [#358]
* all: `define`d constructors involving list expressions work now [#363]
* all: printers render braces on their own line [#366]
## Cosmetical changes
* C/C++: instead of `_SYMB_nnn`, more readable token names in lexer & parser
--
Andreas Abel <>< Du bist der geliebte Mensch.
Department of Computer Science and Engineering
Chalmers and Gothenburg University, Sweden
andrea...@gu.se
http://www.cse.chalmers.se/~abela/