2023-07-26
Linux64 | bnfc-2.9.5-linux-x86_64.binary |
---|---|
Mac | BNFC-2.9.5-mac.pkg |
Source | BNFC-2.9.5.tar.gz |
Win | bnfc-2.9.5-win.exe |
String
and Char
literals [#449]String
and Char
literals in parser (needs Java ≥ 15) [#451]C
[#455]jflex
≥ 1.8 [#453]ComposOp.hs
no longer needs mtl
library [#438]}
[#439]Char
[#452]let rec
in the printers for token categoriesTested GHC versions:
cabal
, GHC 7.10 - 9.6stack
, GHC 8.2 - 9.62022-12-17
Linux64 | bnfc-2.9.4.1-linux-x86_64.binary |
---|---|
Mac | BNFC-2.9.4.1-mac.pkg |
Source | BNFC-2.9.4.1.tar.gz |
Win | bnfc-2.9.4.1-win.exe |
2022-02-17
Linux64 | bnfc-2.9.4-linux-x86_64.binary |
---|---|
Mac | BNFC-2.9.4-mac.pkg |
Source | BNFC-2.9.4.tar.gz |
Win | bnfc-2.9.4-win.exe |
--functor
[#405]size_t
and -Wsign-conversion
[#391]--line-numbers
[#390], regression in 2.9.2 by [#349].valueOf()
instead of deprecated new
L()
for literal classes L [#402]define
Contributors:
2021-10-01
Linux64 | bnfc-2.9.3-linux-x86_64.binary |
---|---|
Mac | BNFC-2.9.3-mac.pkg |
Source | BNFC-2.9.3.tar.gz |
Win | bnfc-2.9.3-win.exe |
stdio.h
in parser header files [#381]#include <algorithm>
[#377]2021-06-13
Mac | BNFC-2.9.2-mac.pkg |
---|---|
Source | BNFC-2.9.2.tar.gz |
Win | bnfc-2.9.2-win.exe |
Major improvements:
free_*
and clone_*
to deallocate and clone syntax trees [#348]Bug fixes and small improvements:
[Char]
correctly, removed method prtList
[#359]define
d constructors from Skeleton.c
define
d constructors now reside in Absyn
[#287]define
d constructor now reside in AbsynDef.java
[#287]define
d constructorsdefine
d constructors involving list expressions work now [#363]Cosmetical changes:
_SYMB_nnn
, more readable token names in lexer & parser2021-03-01
Mac | BNFC-2.9.1-mac.pkg |
---|---|
Source | BNFC-2.9.1.tar.gz |
Win | bnfc-2.9.1-win.exe |
Main new feature:
Bug fixes and small improvements:
Makefile
and test parser for --glr
mode [#340]Prelude
explicitly, compatible with {-# LANGUAGE NoImplicitPrelude #-}
define
expressions [#338]2020-12-28
Mac | BNFC-2.9.0-mac.pkg |
---|---|
Source | BNFC-2.9.0.tar.gz |
Win | bnfc-2.9.0-win.exe |
Major changes:
delimiters
pragma [#308]--alex1
, --alex2
, --sharestrings
, --profile
, and --cnf
[#265]Bug fixes:
entrypoints
pragma [#306]strdup
is not part of C89 standard, _POSIX_C_SOURCE
required [#318]String
literal lexer [#316]2020-10-10
Mac | BNFC-2.8.4-mac.pkg |
---|---|
Source | BNFC-2.8.4.tar.gz |
Win | bnfc-2.8.4-win.exe |
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:
--check
that only performs sanity checks on the given LBNF grammar file, without calling any backend (#286).define
now supported by all maintained backends (Agda, Haskell, Haskell/GADT, C, C++, Java).position token
now supported by all maintained backends with the exception of C++/NoSTL.The Haskell backend has seen the following improvements:
--text-token
to use Data.Text
instead of String
in the generated lexer (#167).IsString
instances for Ident
-like token types (#192).Err
monad is now defined as Either String
. Module ErrM
is only generated for backwards compatibility. Imports of ErrM
with 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 cabal
or stack
(using one of the enclosed stack-x.y.z.yaml
files).
/usr/local/bin/bnfc
compiled under Mac OS X Mojave, x86 64bit processor2019-08-27
Mac | BNFC-2.8.3-mac.pkg |
---|---|
Source | BNFC-2.8.3.tar.gz |
Win | bnfc-2.8.3-win.exe |
Main new feature:
Backend-independent features:
.yaml
files [#198]\r
(carriage return) and \f
(form feed) in token declaration [#257]Foo2
) independent of coercions [#210]C backend:
-l
option to give error locations [#238]Haskell backend:
Makefile
that invokes bnfc
on changed .cf
fileOverlappingInstances
[#233]--cnf
: fixed problem with Any
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:
/usr/local/bin/bnfc
compiled under Mac OS X Mojave, x86 64bit processor2018-11-04
Source | BNFC-2.8.2.tar.gz |
---|
%name-prefix
with %define api.prefix
in bison files [#181]2016-10-04
Source | BNFC-2.8.1.tar.gz |
---|
2015-05-24
Linux32 | bnfc-2.8-linux32.tar.gz |
---|---|
Linux64 | bnfc-2.8-linux64.tar.gz |
Mac | BNFC-2.8-mac.pkg |
Source | BNFC-2.8.tar.gz |
Win | bnfc-2.8-win.exe |
2014-10-09
Linux32 | BNFC-2.7.1-linux-i386.tar.gz |
---|---|
Linux64 | BNFC-2.7.1-linux-x86_64.tar.gz |
Mac | BNFC-2.7.1-mac.pkg |
Source | BNFC-2.7.1.tar.gz |
Win | bnfc-2.7.1-win.exe |
2014-09-26
Linux32 | BNFC-2.7.0.1-linux-i386.tar.gz |
---|---|
Linux64 | BNFC-2.7.0.1-linux-x86_64.tar.gz |
Mac | BNFC-2.7.0.1-mac.pkg |
Source | BNFC-2.7.0.1.tar.gz |
Win | bnfc-2.7.0.1-win.exe |
2014-09-26
Linux32 | BNFC-2.7.0.0-linux-i386.tar.gz |
---|---|
Linux64 | BNFC-2.7.0.0-linux-x86_64.tar.gz |
Mac | BNFC-2.7.0.0-mac.pkg |
Source | BNFC-2.7.0.0.tar.gz |
Win | bnfc-2.7.0.0-win.exe |
Read
for newtype decls in HaskellErr
2013-03-18
Linux32 | bnfc-2.5.0-linux-i386.gz |
---|---|
Linux64 | bnfc-2.5.0-linux-amd64.gz |
Mac | bnfc-2.5.0-mac.gz |
Win | bnfc-2.5.0-win.exe |
Source | bnfc-2.5.0-src.tar.gz |