BNFC 2.9.2 released

6 views
Skip to first unread message

Andreas Abel

unread,
Jun 13, 2021, 8:59:49 AM6/13/21
to bnfc...@googlegroups.com
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/
Reply all
Reply to author
Forward
0 new messages