Release 2025.05.0 #235
foonathan
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Potential breaking changes
scanner-common::capture_tokenwas renamed toscanner-common::capture, and oldscanner-common::captureremoved.Previously,
capture_tokenwas a linker error anyway, but if you're callingscanner-common::captureit will no longer work for arbitrary rules and instead only likedsl::capture.lexy::parse_as_treewill add a position token to production nodes that would otherwise be empty.That way, no production node will be empty, unless the builder API is used directly.
lexy::dsl::try_()error recovery behavior:It will now skip whitespace after the (optional) error recovery rule.
lexy::parse_tree::builder::finish()overload that does not take aremaining_input.lexy::code_point::spaing_markwas fixed tospacing_mark.New Features
lexy::parse_tree_inputandlexy::dsl::tnode/lexy::dsl::pnodeto support multi-pass parsing.lexy::dsl::byte.if_/set/range/asciimethods to match specific bytes.fatal_error()on scanners that allows construction of type-erased generic errors (Allow scanners to construct generic errors #134).lexy::buffer::release()andlexy::buffer::adopt()to deconstruct a buffer into its components and re-assemble it later.lexy::parse_tree::node::position()and::covering_lexeme().lexy::dsl::flag().lexy::callback_with_state.lexy::dsl::opif required (Construct operator tags with state #172) and tolexy::dsl::error(lexy::dsl::error(rule)cannot compile if the rule has a scanner that needs a parse state #211).Bug fixes
constexprto container callbacks andlexy::as_string.dsl::delimitedwhen dealing with invalid code points (dsl::delimited loops forever when an invalid codepoint is encountered #173).lexy::production_namefor productions in an anonymous namespace.dsl::scan(Surprising debug behavior when re-usinglexy::scan_result<>#133, Assertion failure on scan rule failure #135, Problems using the scan action with parser state #142, Statis assertion failure regression on scanner.branch #154,lexyd::_detect_scan_statecannot detect state for non-defaulted parsed values #209).lexy::dsl::op(location tracking for operators #170).lexy_ext::report_errorunconditionally wrote tostderr, ignoring the output iterator.lexy::error_context::positioninlexy::parse_as_tree(SIGSEGV on Iterator lexy::_detail::min_range_end #184).static_assertinlexy::parse_tree(parse_as_tree static assertion fails in Debug configuration on MSVC #190).lexy::input_location::operator<(Fix erroneous member access for input_location::operator< #228).&&inlexy::bind_sink(Add missing && to _bound_sink #221).New Contributors
Full Changelog: v2022.12.1...v2025.05.0
This discussion was created from the release Release 2025.05.0.
Beta Was this translation helpful? Give feedback.
All reactions