Releases: dmbaturin/bnfgen
Releases · dmbaturin/bnfgen
3.0.0
New features
- Deterministic repetition syntax:
<foo>{1,5}
(up to five of<foo>
),"bar"{10}
(exactly ten ofbar
). - Tail-recursive implementation, no more depth limit.
- [CLI] New debugging option:
--dump-stack
(displays the current symbol stack at every step). - [CLI] Improved and more details
--debug
output. - [CLI] New
--max-nonproductive-reductions <int>
option to limit reductions that don't produce any terminals and prevent useless loops.
Internal modules are also available as an OCaml library now, see src/lib/bnfgen.mli
.
Breaking changes
- [CLI] The
--max-depth
option was removed since there's no real "depth" anymore. You can use--max-reductions
instead to limit the total number of symbol reductions performed if you want to prevent looping rules and/or infinitely large outputs.
2.0
BNFGen 2.0 is a new release and a renaming of cfgen.
New features:
--max-depth
version for limiting recursion depth.- Less restrictive non-terminal identifier syntax.
- Friendly syntax error messages with proper line/position indication and examples of valid statements.
- Checks for duplicate symbol definitions (it's now an error)
Internals:
- Switched the build system from oasis to dune
- The parser now uses Menhir's incremental API and .messages-based error reporting
Binaries:
- bnfgen-2.0-linux-amd64.tar.gz Semi-static binary for for GNU/Linux (libc >= 2.19), 64-bit executable.
- bnfgen-2.0-windows-x86.tar.gz For Microsoft Windows >= 7, 32-bit executable.