Skip to content

Releases: buck-yeh/parsergen

Update accordingly with bux 1.12.0

29 Mar 16:22

Choose a tag to compare

  1. [Change] Newly added log level LL_DEBUG can affect generated code.

Time to say goodbye to `fmt`

10 Aug 16:09

Choose a tag to compare

1.7.5

[Change] Reparsed by parsergen v1.7.5

Update with `fmt` & a couple of new flags

29 Jan 10:43

Choose a tag to compare

  1. [New] %SUPPRESS_GLR_CONFLICTS to suppress printing all conflict actions which flips the target parser from LR1 into GLR.
  2. [New] Command line flag --with-bom prefixes BOM to all output files.
  3. [Change] Adapt to changes of fmt.
  4. [Change] Use hyphen(-) instead of underline(_) to name long command flags.

[Bug] Input files in utf-16 may hit EOF earlier than expected

15 Jun 16:49

Choose a tag to compare

  1. [Bug] Input files (eg. grammar) encoded in utf-16 may hit EOF earlier than it should when the first byte value '\x1a' is encountered.

Update with `bux` 1.6.5 due to include breakage

01 Jun 17:19

Choose a tag to compare

  1. Include breakage
  2. Fetch content of dependent bux with a fixed tag (1.6.5 for now), used for future detection of dependent ABI breakage.

Bugfixes & dependency update

21 May 05:13

Choose a tag to compare

  1. [Dependency] Remove calls to FMT_STRING() with advent of fmt v8.x
  2. [Dependency] Updates according to new g++ releases from 10.x
  3. [Bug] Generated calls to createLex() should be bux::-qualified.
  4. [Bug] Generate $c to a parenthesized expression to safely concatenate member reference with '.'
  5. [Bug] Build fails when FETCH_DEPENDEES is defined in CMakeLists.txt (Main use case: AUR build)

Goodies

18 Apr 05:55

Choose a tag to compare

  1. 🆕 parsergen & scannergen flag -a to say yes to all overwrites upon outputting.
  2. 🆕 scannergen warns duplicated token definitions.
  3. ✍️ Replace include guards with #pragma once
  4. ✍️ Grammar files & token files are read as being prepended #pragma once. There is no way to turn this off until some use cases are
    observed.
  5. ✍️ (scannergen) [[nodiscard]] for non-void methods of C_Context.
  6. ✍️ (scannergen) C_Context::getOptionString return std::optional<std::string> instead of bool.

Warning-free clang build

14 Feb 12:59

Choose a tag to compare

  1. ✍️ Stop using [[unlikely]] until clang-12 is available.
  2. ✍️ Eliminate clang warnings here & there.

Backward incompatible release (all grammars have to be regenerated) according bux v1.2.1

10 Feb 10:59

Choose a tag to compare

  1. 🆕 Issure errors when reserved nonterminals <@keyword> or <@operator> appears on left side of production.
  2. ✍️ Use FMT_STRING() everywhere.
  3. ✍️ Define ZIP_TOKEN() as constexpr function instead of macro.
  4. ✍️ Rename all issueError() methods to log()
  5. ✍️ Some function arg types from const std::string & to std::string_view
  6. ✍️ Improve output readability & consistency
  7. ✍️ No more update pkgver of test/archlinux/PKGBUILD for new releases.

Error recovery & reporting is ready for parsergen

27 Jan 11:03

Choose a tag to compare

  1. 🆕 Add more constinit to in-module arrays of generated scanner code by scannergen
  2. 🆕 New paragraph "Error Recovery & Parser Logger" to ParserGen/README.adoc
  3. ✍️ Continuing upgrade of legacy code to Modern C++
  4. ✍️ Issue "Template args not allowed" error when template args, disabled long time ago, is defined in class statement of grammar.txt
  5. ✍️ Eliminate duplicated reduction code
  6. ✍️ Examples re-generated by parsergen v1.6.1 & scannergen v1.5.1
  7. ✍️ Simplified scannergen's grammar.txt
  8. ✍️ Value of %NAMESPACE can be prefixed by ::