Skip to content

Commit

Permalink
deploy: ebd90ae
Browse files Browse the repository at this point in the history
  • Loading branch information
foonathan committed Jan 7, 2025
1 parent c429939 commit c6d87e1
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 1 deletion.
Binary file modified download/lexy-src.zip
Binary file not shown.
2 changes: 1 addition & 1 deletion learn/changelog/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
</a><a href=https://github.com/foonathan/lexy/edit/main/docs/content/learn/changelog.adoc><svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="edit" class="svg-inline--fa fa-edit fa-w-18" role="img" viewBox="0 0 576 512"><path fill="currentcolor" d="M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8.0zm162-22.9-48.8-48.8c-15.2-15.2-39.9-15.2-55.2.0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8.0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2.0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5.0 112v352c0 26.5 21.5 48 48 48h352c26.5.0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z"/></svg> Edit this page</a></nav></header><div class=sect1><h2 id=_upcoming>Upcoming</h2><div class=sectionbody><div class=sect2><h3 id=_potential_breaking_changes>Potential breaking changes</h3><div class=ulist><ul><li><p><code>scanner-common::capture_token</code> was renamed to <code>scanner-common::capture</code>, and old <code>scanner-common::capture</code> removed.
Previously, <code>capture_token</code> was a linker error anyway, but if you’re calling <code>scanner-common::capture</code> it will no longer work for arbitrary rules and instead only like <code>dsl::capture</code>.</p></li><li><p><code>lexy::parse_as_tree</code> will 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.</p></li><li><p>Change <code>lexy::dsl::try_()</code> error recovery behavior:
It will now skip whitespace after the (optional) error recovery rule.</p></li><li><p>Deprecate the <code>lexy::parse_tree::builder::finish()</code> overload that does not take a <code>remaining_input</code>.</p></li><li><p>The typo <code>lexy::code_point::spaing_mark</code> was fixed to <code>spacing_mark</code>.</p></li></ul></div></div><div class=sect2><h3 id=_new_features>New Features</h3><div class=ulist><ul><li><p><strong>Experimental</strong>: Add <code>lexy::parse_tree_input</code> and <code>lexy::dsl::tnode</code>/<code>lexy::dsl::pnode</code> to support multi-pass parsing.</p></li><li><p>Add <code>lexy::dsl::byte.if_</code>/<code>set</code>/<code>range</code>/<code>ascii</code> methods to match specific bytes.</p></li><li><p>Add an overload of <code>fatal_error()</code> on scanners that allows construction of type-erased generic errors (#134).</p></li><li><p>Add <code>lexy::buffer::release()</code> and <code>lexy::buffer::adopt()</code> to deconstruct a buffer into its components and re-assemble it later.</p></li><li><p>Add <code>lexy::parse_tree::node::position()</code> and <code>::covering_lexeme()</code>.</p></li><li><p>Add default argument to <code>lexy::dsl::flag()</code>.</p></li><li><p>Add <code>lexy::callback_with_state</code>.</p></li><li><p>Pass the parse state to the tag of <code>lexy::dsl::op</code> if required (#172) and to <code>lexy::dsl::error</code> (#211).</p></li><li><p>Enable CMake install rule for subdirectory builds (#205).</p></li></ul></div></div><div class=sect2><h3 id=_bug_fixes>Bug fixes</h3><div class=ulist><ul><li><p>Add missing <code>constexpr</code> to container callbacks and <code>lexy::as_string</code>.</p></li><li><p>Fix infinite loop in <code>dsl::delimited</code> when dealing with invalid code points (#173).</p></li><li><p>Fix swallowed errors from case-folding rules (#149).</p></li><li><p>Fix <code>lexy::production_name</code> for productions in an anonymous namespace.</p></li><li><p>Fix bugs in <code>dsl::scan</code> (#133, #135, #142, #154, #209).</p></li><li><p>Fix bug with the position passed to the tag constructor of <code>lexy::dsl::op</code> (#170).</p></li><li><p>Fix bug where <code>lexy_ext::report_error</code> unconditionally wrote to <code>stderr</code>, ignoring the output iterator.</p></li><li><p>Fix bug with missing <code>lexy::error_context::position</code> in <code>lexy::parse_as_tree</code> (#184).</p></li><li><p>Fix <code>static_assert</code> in <code>lexy::parse_tree</code> (#190).</p></li><li><p>Workaround compiler bugs and improve documentation.</p></li></ul></div></div></div></div><div class=sect1><h2 id=_release_2022_12_1>Release 2022.12.1</h2><div class=sectionbody><div class=ulist><ul><li><p>Add constructor to <code>lexy::input_location</code>.</p></li><li><p><code>lexy::error_context::production</code> will not be a transparent production.</p></li><li><p>Fix <code>lexy::production_info::operator==</code> when the compiler doesn’t merge string literals.</p></li><li><p>Fix SWAR matching of <code>dsl::ascii::print</code> and <code>dsl::ascii::graph</code>.</p></li><li><p>Fix CMake target installation (#108).</p></li></ul></div></div></div><div class=sect1><h2 id=_release_2022_12_0>Release 2022.12.0</h2><div class=sectionbody><div class=sect2><h3 id=_potential_breaking_changes_2>Potential breaking changes</h3><div class=ulist><ul><li><p>Change <code>lexy::dsl::peek_not()</code> error recovery behavior:
It will now skip whitespace after the (optional) error recovery rule.</p></li><li><p>Deprecate the <code>lexy::parse_tree::builder::finish()</code> overload that does not take a <code>remaining_input</code>.</p></li><li><p>The typo <code>lexy::code_point::spaing_mark</code> was fixed to <code>spacing_mark</code>.</p></li></ul></div></div><div class=sect2><h3 id=_new_features>New Features</h3><div class=ulist><ul><li><p><strong>Experimental</strong>: Add <code>lexy::parse_tree_input</code> and <code>lexy::dsl::tnode</code>/<code>lexy::dsl::pnode</code> to support multi-pass parsing.</p></li><li><p>Add <code>lexy::dsl::byte.if_</code>/<code>set</code>/<code>range</code>/<code>ascii</code> methods to match specific bytes.</p></li><li><p>Add an overload of <code>fatal_error()</code> on scanners that allows construction of type-erased generic errors (#134).</p></li><li><p>Add <code>lexy::buffer::release()</code> and <code>lexy::buffer::adopt()</code> to deconstruct a buffer into its components and re-assemble it later.</p></li><li><p>Add <code>lexy::parse_tree::node::position()</code> and <code>::covering_lexeme()</code>.</p></li><li><p>Add default argument to <code>lexy::dsl::flag()</code>.</p></li><li><p>Add <code>lexy::callback_with_state</code>.</p></li><li><p>Pass the parse state to the tag of <code>lexy::dsl::op</code> if required (#172) and to <code>lexy::dsl::error</code> (#211).</p></li><li><p>Enable CMake install rule for subdirectory builds (#205).</p></li></ul></div></div><div class=sect2><h3 id=_bug_fixes>Bug fixes</h3><div class=ulist><ul><li><p>Add missing <code>constexpr</code> to container callbacks and <code>lexy::as_string</code>.</p></li><li><p>Fix infinite loop in <code>dsl::delimited</code> when dealing with invalid code points (#173).</p></li><li><p>Fix swallowed errors from case-folding rules (#149).</p></li><li><p>Fix <code>lexy::production_name</code> for productions in an anonymous namespace.</p></li><li><p>Fix bugs in <code>dsl::scan</code> (#133, #135, #142, #154, #209).</p></li><li><p>Fix bug with the position passed to the tag constructor of <code>lexy::dsl::op</code> (#170).</p></li><li><p>Fix bug where <code>lexy_ext::report_error</code> unconditionally wrote to <code>stderr</code>, ignoring the output iterator.</p></li><li><p>Fix bug with missing <code>lexy::error_context::position</code> in <code>lexy::parse_as_tree</code> (#184).</p></li><li><p>Fix <code>static_assert</code> in <code>lexy::parse_tree</code> (#190).</p></li><li><p>Add missing <code>&&</code> in <code>lexy::bind_sink</code> (#221).</p></li><li><p>Workaround compiler bugs and improve documentation.</p></li></ul></div></div></div></div><div class=sect1><h2 id=_release_2022_12_1>Release 2022.12.1</h2><div class=sectionbody><div class=ulist><ul><li><p>Add constructor to <code>lexy::input_location</code>.</p></li><li><p><code>lexy::error_context::production</code> will not be a transparent production.</p></li><li><p>Fix <code>lexy::production_info::operator==</code> when the compiler doesn’t merge string literals.</p></li><li><p>Fix SWAR matching of <code>dsl::ascii::print</code> and <code>dsl::ascii::graph</code>.</p></li><li><p>Fix CMake target installation (#108).</p></li></ul></div></div></div><div class=sect1><h2 id=_release_2022_12_0>Release 2022.12.0</h2><div class=sectionbody><div class=sect2><h3 id=_potential_breaking_changes_2>Potential breaking changes</h3><div class=ulist><ul><li><p>Change <code>lexy::dsl::peek_not()</code> error recovery behavior:
it will now consume the input it matched to recover, which is more useful.</p></li><li><p>Remove <code>Production</code> parameter from <code>lexy::error_context</code>.
It is replaced by a type-erased <code>lexy::production_info</code>.</p></li><li><p><code>lexy::validate</code>, <code>lexy::parse</code>, and <code>lexy::parse_as_tree</code> now type-erase generic error tags prior to invoking the callback.</p></li><li><p>Use type-erased <code>lexy::production_info</code> instead of <code>Production</code> type in <code>lexy::parse_tree</code>.
This is technically a breaking change, as it may affect overload resolution.</p></li></ul></div></div><div class=sect2><h3 id=_new_features_2>New features</h3><div class=ulist><ul><li><p>Update Unicode database to Unicode 15.</p></li><li><p>Use SWAR (SIMD within a register) techniques to optimize token parsing.</p></li><li><p>Add <code>lexy::dsl::subgrammar</code> to split a grammar into multiple translation units.</p></li><li><p>Add <code>lexy::dsl::flags</code> and <code>lexy::dsl::flag</code> to parse enum flags.</p></li><li><p>Add overload of <code>lexy::dsl::position</code> that parses a rule.
Expand Down

0 comments on commit c6d87e1

Please sign in to comment.