Releases: BNFC/bnfc
Releases · BNFC/bnfc
v2.8.3
Main new feature:
- Agda backend: generates bindings to output of Haskell backend
Backend-independent features:
- GHC 8.8 compatibility
- Stack installation supported by provided
.yaml
files [#198] - Unicode support in lexer, excl. C, C++ and Ocaml [#249]
- LBNF: support
\r
(carriage return) and\f
(form feed) in token declaration [#257] - LBNF: allow numbered categories (like
Foo2
) independent of coercions [#210]
C backend:
- supports now the
-l
option to give error locations [#238] - correct function names in generated skeletons [#239]
- handle regular expression difference (subtraction) correctly [#237]
Haskell backend:
- generates now more fine-grained
Makefile
that invokesbnfc
on changed.cf
file - uses qualified import of AST in generated printer [fixes #128,#228]
- printer code no longer produces deprecation warning concerning
OverlappingInstances
[#233] --cnf
: fixed problem withAny
type in generated code [#216]--cnf
: generated test program now same name (Test
) as without--cnf
--glr
: correct module header in .y file [#252]
Binaries (see below):
- bnfc-2.8.3-mac.binary: Binary compiled under Mac OS X Mojave, x86 64bit processor
- bnfc.exe: Binary compiled under Windows 10, x86 64bit processor
v2.8.2
Main new feature:
- Java: An experimental ANTLR4 backend [#155]
Backend-independent features:
- GHC 8.4 compatibility [#227,#236]
- bnfc now puts current timestamp on all created files, even unchanged ones [#219]
- bnfc is now more accepting about border-line terminals [#149]
- Improved error messages [#144] in particular on undefined categories [#151]
C and C++ backends:
- C: Emit correct function prototypes [#185]
- C++: Fix buffer overrun in pretty printer [#242]
- C++: Fix regression introduced in 2.8 in Skeleton.H [#164]
- C++: Replace
%name-prefix
with%define api.prefix
in bison files [#181] - C++: Fix a bug that appeared if you had a category named "List"
- C, C++: Add usage output to the test program [#141]
- C, C++: Fix a bug in the parser file when using -p [#172]
- C, C++, OCaml, Java: Accept ' or " as comment delimiters [#146]
Haskell backend:
Other backends:
- Java: Add support for passing line numbers to parser [#217,#224,#226]
- OCaml: Reserved symbols now have a higher precedence than predefined tokens as in Haskell
Further:
Thanks to the many contributers to this version!
v2.8.1
v2.8
v2.7.1
- Generated haskell code is now warning free
- Removed unused terminal in happy
- Correctly escape backslashes in symbols
- Fix problem that was preventing custom tokens to work in OCaml if they conflict with the build-in Ident
- BNFC build is also warning free (ghc 7.4.2)
- Test programs return non-zerro exit code on parse error
v2.7.0.1
v2.7.0.0
- Add token support for Ocaml
- New option parser
- Adds an optional argument to change Makefile name
- Add a –ghc option to derive Data, Typeable, Generic in Haskell
- New online documentation (https://bnfc.readthedocs.org)
- Derive Read for newtype decls in Haskell
- New option to get the version number –version
- Remove the F# backend
- Remove the Java4 backend
- New Applicative and Alternative instances to Err
- Remove the coupling between building the parser and the pdf from latex
- Improvement to the CNF Backend
- Bug fixes #92, #21, #34, #33, #90, #30, #60