All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.7.0 - 2024-11-16
builder-loc-info
config option which provides location information in the default builder generated AST types. See the discussion at 2 and the docs
0.6.3 - 2024-11-11
- attempt to subtract causes overflow in GLR default builder. See 16. Thanks andrewbaxter@GitHub for the bug report and regression test.
- reexported dependencies for generated parsers. Now, the only dependency
required by the client code is
rustemo
. See 15. Thanks andrewbaxter@GitHub for the idea
0.6.2 - 2024-10-11
unwrap
panic if rustemo-compiler is built outside of git repo (e.g. from crates.io).
0.6.1 - 2024-10-02
- Development setup changed to use Nix package manager. See 12 and Contributing guide. Thanks AlexSherbinin@GitHub for the contribution.
- Always regenerate
_actions.rs
inOUT_DIR
folder. See 13. Thanks safinaskar@GitHub for reporting. - Override coloring during dot export.
0.6.0 - 2024-02-20
- disable trace log output with switch
--notrace
or env variableRUSTEMO_NOTRACE
. Trace log is sent to std error. Thanks @stevefan1999-personal for reporting. See 4. - fancy-regex support. Thanks @stevefan1999-personal. See 8.
- call lexer after reduction in LR parser as the set of possible tokens may change.
- string escaping in Rustemo grammars
- improved debug trace prints.
- improved LR automata table print output.
0.5.0 - 2024-01-23
dot
export marks conflict states in red color.- More special grammars tests.
- Pager's compatibility test for LALR states merging/splitting. Implemented Menhir's version.
- Table type in CLI renamed from
lalr-pagerw
tolalr-pager
.
0.4.0 - 2024-01-14
- Support for lexical disambiguation strategies. See the docs.
- Bug in GLR in the context of lexical ambiguity
- Bug in
string_difference
used in tests. - Regex recognizers anchoring which lead to unanchored search when
|
was used.
- Minimal supported Rust version is 1.74.
- Default parser tables implementation is function-based.
0.3.0 - 2023-12-27
- Support for
Forest
iteration (into_iter()
, anditer()
). - Multiple parser table styles generation: array-based, function-based.
Different tradeoffs. Can be configured using settings API or
rcomp
parameter.
- Getting
CARGO_WORKSPACE_DIR
inlocal_file!
. - Correctly report error in GLR parsing.
- Handle >2 conflicts per state.
build.rs
to prevent unnecessary rebuilds.
- Removed lexer type parameter from the
Parser
trait. - Removed
Rc
from lexer API. ParserDefinition
trait change.
0.2.0 - 2023-10-22
- GLR parsing based on Right-Nulled GLR algorithm (RNGLR).
- Base Tomita's algorithm. Shared packed parse forest.
- Lazy tree extraction from forest.
- Calling arbitrary builder over extracted tree.
- Support for EMPTY productions through RN table entries (RNGLR algorithm).
0.1.0 - 2023-06-02
- Initial release. See the README for the features available in this release.