Releases: buck-yeh/parsergen
Releases · buck-yeh/parsergen
Update accordingly with bux 1.12.0
Time to say goodbye to `fmt`
1.7.5 [Change] Reparsed by parsergen v1.7.5
Update with `fmt` & a couple of new flags
- [New]
%SUPPRESS_GLR_CONFLICTSto suppress printing all conflict actions which flips the target parser from LR1 into GLR. - [New] Command line flag
--with-bomprefixes BOM to all output files. - [Change] Adapt to changes of
fmt. - [Change] Use hyphen(-) instead of underline(_) to name long command flags.
[Bug] Input files in utf-16 may hit EOF earlier than expected
- [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
- Include breakage
- Fetch content of dependent
buxwith a fixed tag (1.6.5 for now), used for future detection of dependent ABI breakage.
Bugfixes & dependency update
- [Dependency] Remove calls to FMT_STRING() with advent of fmt v8.x
- [Dependency] Updates according to new g++ releases from 10.x
- [Bug] Generated calls to
createLex()should bebux::-qualified. - [Bug] Generate
$cto a parenthesized expression to safely concatenate member reference with '.' - [Bug] Build fails when
FETCH_DEPENDEESis defined inCMakeLists.txt(Main use case: AUR build)
Goodies
- 🆕
parsergen&scannergenflag-ato say yes to all overwrites upon outputting. - 🆕
scannergenwarns duplicated token definitions. - ✍️ Replace include guards with
#pragma once - ✍️ 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. - ✍️ (scannergen)
[[nodiscard]]for non-void methods ofC_Context. - ✍️ (scannergen)
C_Context::getOptionStringreturnstd::optional<std::string>instead of bool.
Warning-free clang build
- ✍️ Stop using
[[unlikely]]until clang-12 is available. - ✍️ Eliminate clang warnings here & there.
Backward incompatible release (all grammars have to be regenerated) according bux v1.2.1
- 🆕 Issure errors when reserved nonterminals
<@keyword>or<@operator>appears on left side of production. - ✍️ Use FMT_STRING() everywhere.
- ✍️ Define
ZIP_TOKEN()as constexpr function instead of macro. - ✍️ Rename all
issueError()methods tolog() - ✍️ Some function arg types from
const std::string &tostd::string_view - ✍️ Improve output readability & consistency
- ✍️ No more update
pkgverof test/archlinux/PKGBUILD for new releases.
Error recovery & reporting is ready for parsergen
- 🆕 Add more constinit to in-module arrays of generated scanner code by
scannergen - 🆕 New paragraph "Error Recovery & Parser Logger" to ParserGen/README.adoc
- ✍️ Continuing upgrade of legacy code to Modern C++
- ✍️ Issue "Template args not allowed" error when template args, disabled long time ago, is defined in class statement of grammar.txt
- ✍️ Eliminate duplicated reduction code
- ✍️ Examples re-generated by parsergen v1.6.1 & scannergen v1.5.1
- ✍️ Simplified scannergen's grammar.txt
- ✍️ Value of %NAMESPACE can be prefixed by ::