|
2 | 2 |
|
3 | 3 | All notable changes to this project will be documented in this file. |
4 | 4 |
|
5 | | -## [unreleased] |
| 5 | +## [0.10.0] - 2026-01-22 |
| 6 | + |
| 7 | +### 🚀 Features |
| 8 | + |
| 9 | +- *(pc)* Implement `no_incomplete` directly into `and` parser |
| 10 | +- *(Makefile)* Print the size of the types |
| 11 | +- *(parser)* Implement `no_incomplete` directly into `WithExpectedMessage` parser |
| 12 | +- *(Makefile)* Print longest type length |
| 13 | +- *(pc)* Introducing context for parsers |
| 14 | +- *(pc)* Add flatten parser |
| 15 | +- *(pc)* Support contextual parsers |
| 16 | +- *(pc)* Added `PeekParser` |
| 17 | +- *(pc)* Support custom error in FilterParser |
| 18 | +- *(parser)* Implement specific string parser |
| 19 | +- *(parser)* Moved the dollar sign check for keywords into the `any_token` parser |
| 20 | +- *(pc)* Combine `char` with `Vec<char>` into a `String` |
| 21 | +- *(pc)* Added `Token.text()` method to return the ownership of the String |
| 22 | +- *(parser)* Make identifier token include dots |
| 23 | +- *(pc)* Added `map_fatal_err`, `map_non_fatal_err` and `flat_map_none` |
| 24 | +- *(parser)* Support treating EOF as fatal in keyword parser |
| 25 | +- *(pc)* Introducing `init_context` parser |
| 26 | +- *(pc)* Introducing `then_with_left` parser |
| 27 | +- *(pc)* Support `many` without closures |
| 28 | +- *(pc)* Added `surround` parser |
| 29 | +- *(parser)* Introducing `whitespace_ignoring`, parse whitespace but ignore the result |
| 30 | +- *(parser)* Support parsing specific string and ignoring the output |
| 31 | +- *(parser)* Support parsing a specific keyword and ignoring the output |
| 32 | +- *(pc)* Start support for text (char and string) parsing |
| 33 | +- *(pc)* Support error messages in `filter_or_err` |
| 34 | +- *(pc)* Changed the filter predicate into its own trait, embedding error management in it |
| 35 | +- *(pc)* Add `is_soft` method to error trait |
| 36 | + |
| 37 | +### 🐛 Bug Fixes |
| 38 | + |
| 39 | +- *(parser)* Comment separator must start with EOL |
| 40 | +- *(parser)* QBasic names cannot contain underscores |
| 41 | +- *(parser)* `comment_separator` should read any number of extra EOL or whitespace tokens |
| 42 | +- *(pc)* Fix broken build for release mode |
6 | 43 |
|
7 | 44 | ### 🚜 Refactor |
8 | 45 |
|
9 | 46 | - *(pc)* Implement `or_default` directly on `many` parser |
| 47 | +- *(pc)* Merge the types `NoIncomplete` and `OrFail` into one parser, `MapErr` |
| 48 | +- *(parser)* Remove `specific` module |
| 49 | +- *(pc)* Re-introduce the `OrDefault` trait |
| 50 | +- *(pc)* Remove all extra methods from `Parser` trait |
| 51 | +- *(pc)* Improve macros for parsers |
| 52 | +- *(pc)* Support more complex parsers in macros |
| 53 | +- *(pc)* Merge `parser1_decl` and `parser1_impl` into one macro `parser` |
| 54 | +- *(pc)* Re-working macro support |
| 55 | +- Remove the `lazy_parser` macro and add a `lazy` function |
| 56 | +- *(parser)* Add dedicated `struct` for `any_token_of` parser |
| 57 | +- *(parser)* Support padded whitespace in `any_token_of` |
| 58 | +- *(parser)* Support negative maches in `any_token_of` |
| 59 | +- *(pc)* Split `set_context` into a separate trait |
| 60 | +- *(pc)* Make `Seq2`, `Seq3`, etc structs private |
| 61 | +- *(parser)* Move token-level logic to a new `tokens` module |
| 62 | +- *(parser)* Move `detect_eof` to `global_statement` |
| 63 | +- *(parser)* Implement the Parser trait directly on the char type |
| 64 | +- *(parser)* Add `or_expected` as a shortcut for `or_syntax_error("Expected: ")` |
| 65 | +- *(parser)* Remove single-char token types |
| 66 | +- *(pc)* Improve code readability for single char Token |
| 67 | +- *(parser)* Add `AnySymbolParser` |
| 68 | +- *(parser)* Strengthen module visibility and rename modules |
| 69 | +- *(parser)* Create dedicated struct parser for keyword |
| 70 | +- *(parser)* Removed `keyword_choice` and improved `keyword_map` |
| 71 | +- *(parser)* Improvements to `statements` parser |
| 72 | +- *(pc)* Align `then_with` to use RefCell just like `then_with_right` |
| 73 | +- *(pc)* Implement `delimited_by` and `delimited_by_allow_missing` |
| 74 | +- *(pc)* Remove OptZip parser |
| 75 | +- *(pc)* Introduce `ParserErrorTrait` trait |
| 76 | +- *(parser)* Remove the explicit fatal designation on ParserError |
| 77 | +- *(pc)* Switch to a mutable input |
| 78 | +- *(common)* Deleted `CaseInsensitiveStr` for simplicity |
| 79 | + |
| 80 | +### 📚 Documentation |
| 81 | + |
| 82 | +- *(pc)* Improve `Token` documentation |
| 83 | + |
| 84 | +### ⚡ Performance |
| 85 | + |
| 86 | +- *(parser)* Improve `TokenType` lookup performance |
| 87 | + |
| 88 | +### ⚙️ Miscellaneous Tasks |
| 89 | + |
| 90 | +- *(Makefile)* Show only parser types in `print-type-size` |
| 91 | +- *(parser)* Add `_ws` suffix to `token_kind_parser` functions that are surrounded by optional whitespace |
| 92 | +- *(parser)* Move `char_parsers` to top-level module |
| 93 | +- *(parser)* Move `string_parsers` to top-level module |
| 94 | +- *(parser)* Use `AnyChar` struct directly |
| 95 | +- *(parser)* Use `filter_or_err` |
| 96 | +- *(pc)* Do not use macro in `many` |
| 97 | +- *(pc)* Removed `TokenList` and `token_list_to_string` |
| 98 | +- *(pc)* Removed unused Clone trait from Token |
| 99 | +- *(pc)* Removed macros |
| 100 | +- *(parser)* Reuse `eol_ws_zero_or_more` function |
| 101 | +- *(parser)* Simplify implementation of any_token_ws in favor of padded_by_ws |
| 102 | +- *(pc)* Change `parse` to mut |
| 103 | +- *(pc)* Fix various clippy warnings |
| 104 | +- *(pc)* Strengthen Token invariants |
| 105 | +- *(parser)* Fix some clippy issues |
| 106 | +- *(pc)* Move helper methods into the main Parser trait |
| 107 | +- *(pc)* Make private modules public for better visibility in the docs |
| 108 | + |
| 109 | +### ◀️ Revert |
| 110 | + |
| 111 | +- Revert the specialized `no_incomplete` and `or_default` implementations due to code duplication |
10 | 112 |
|
11 | 113 | ## [0.9.1] - 2025-12-30 |
12 | 114 |
|
|
0 commit comments