Skip to content

Releases: dmbaturin/bnfgen

3.0.0

21 Feb 02:22
Compare
Choose a tag to compare

New features

  • Deterministic repetition syntax: <foo>{1,5} (up to five of <foo>), "bar"{10} (exactly ten of bar).
  • 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

29 Jun 04:57
Compare
Choose a tag to compare
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.