The lexer feature no longer implies the std feature. Now lexer is
usable in no_std environments. In no_std, ParseError only implements the
Error trait in rust 1.81 or later (since core::error was stablized in 1.81).
Features
Overhaul cfg attributes. You can now include or omit grammar rules and
alternatives based on cargo features with not(), any() and all() support
Bugfixes
Improvements to error message reporting to improve clarity and suppress extra noise
lalrpop_mod!() now handles imports correctly
Reenable some warnings on user code for custom lexers
0.21.0 (2024-05-30)
Since the last release, a fair number of the commits have been focused on cleaning
up and improving LALRPOP's documentation. Shout out to Yudai Takada, George
White, and Dinu Blanovschi.
Features
LALRPOP now throws an error in more cases where it would previously just write
out an error message and exit.
lalrpop::process_src is now the recommended function to use in build.rs
files. Previously the documentation incorrectly suggested that
lalrpop::process_root looked in ./src instead of .
Bugfixes
A long-standing bug where LALRPOP would throw a "no entry found for key"
exception when trying to handle certain grammars has been resolved.
LALRPOP will stop expanding macros infinitely during build time via a new
macro_expansion_limit.
Compatibility note
Adding a limit to the number of times that LALRPOP will attempt to expand a
macro is technically a breaking change. However, the default limit of 200
should be more than enough for the grammars we are currently aware of (which
almost always need a limit of less than 5). This limit is customizable via Configuration::set_macro_expansion_limit.
If you have a grammar that uses a significant amount of macro expansion steps,
we would be very interested in a PR that adds it to the test suite.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps lalrpop-util from 0.20.2 to 0.22.0.
Changelog
Sourced from lalrpop-util's changelog.
Commits
49b3c2c
Release version 0.22.0 (#953)bb98e93
When encountering naive errors on reduce/reduce conflicts, drop all but (#938)1b3587d
Cfg attibutes on Alternatives (#959)55d1c3b
Add a new error message for ambiguous reductions to the same nonterminal (#927)2fb8a29
Lock rustversion (#964)d6229c8
Update to ascii-canvas 4.0 and term 1.0 (#963)fb9a945
SupportError
withstd
feature disabled (#957)2cd9a59
Turn a few warnings back on when we match token values (#961)0c41809
Kind of unify version.sh regex search (#958)2498289
Mention the clog-cli prereq in the CONTRIBUTING release process (#954)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show