|
1 | | -## [unreleased] |
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to this project will be documented in this file. |
| 4 | + |
| 5 | +## [0.9.0] - 2025-12-30 |
| 6 | + |
| 7 | +### 🚀 Features |
| 8 | + |
| 9 | +- Add RowColView to map a string to row/col taking newlines into account |
| 10 | +- Added RcStringView as the basic input unit that is lightweight and clone-able, and suppors row-col information |
| 11 | +- Added Opt parser |
| 12 | +- Added surround parser |
| 13 | +- Added `flat_map_negate_none` |
| 14 | +- Decouple `Parser` from `ParseError` |
| 15 | +- Move `no_incomplete` to the `Parser` level |
2 | 16 |
|
3 | 17 | ### 🐛 Bug Fixes |
4 | 18 |
|
|
7 | 21 | - Move some code to test cfg |
8 | 22 | - Fixed build in release mode |
9 | 23 | - Incorrect upper bound for max length of string |
| 24 | +- AndThenOkErr should never re-map errors, only okay and incomplete results |
| 25 | +- Use syntax error when entire program can't be parsed |
| 26 | +- Use Box dyn for to_option and or_default to fix the build on Mac |
| 27 | +- Auto-fixed some issues with clippy |
| 28 | +- `seq` parsers should convert errors to fatal |
| 29 | +- Removed macro_export from visitor macros |
| 30 | +- Remove the build warning about the `resolver` |
10 | 31 |
|
11 | 32 | ### 🚜 Refactor |
12 | 33 |
|
|
56 | 77 | - Separate error type per crate |
57 | 78 | - Moved error_envelope to interpreter |
58 | 79 | - Moved indexed_map to interpreter |
| 80 | +- Refactor Parser trait to generic, so that it can support `dyn` |
| 81 | +- Use `dyn` for `OrParser` |
| 82 | +- Use new parsers to build Tokenizer |
| 83 | +- Use parser combinator in `comment.rs` |
| 84 | +- Use parser combinator for parsing FileHandle |
| 85 | +- Use parser combinator for parsing the main program |
| 86 | +- Use parser combinator in statement_separator |
| 87 | +- Use parser combinator in keyword_choice and keyword_map |
| 88 | +- Use parser combinator in select_case |
| 89 | +- Remove negate parser |
| 90 | +- Remove peek parser |
| 91 | +- Remove token from unread method as it is no longer used |
| 92 | +- Removed ParserOnce trait |
| 93 | +- Removed NonOptParser marker trait |
| 94 | +- Introduce ParseResult for old parsers instead of standard Result |
| 95 | +- Introducing ParseResult::None enum member |
| 96 | +- Use ParseResult in AndThen mapping functions |
| 97 | +- Use ParseResult in AndThenOkErr mapping functions |
| 98 | +- Reduce usages of ParseResult::Incomplete |
| 99 | +- Replaced MapIncompleteError with WithExpectedMessage parser |
| 100 | +- Removed ParseError::Incomplete |
| 101 | +- Removed incomplete errors |
| 102 | +- Port enum member to new |
| 103 | +- Removed method |
| 104 | +- Added combiner function to AddWithoutUndo |
| 105 | +- Remove GuardPC |
| 106 | +- Remove concrete KeepLeft and KeepRight structs |
| 107 | +- Renamed AndThen to FlatMap |
| 108 | +- Deleted AllowDefault and AllowNone |
| 109 | +- Expose the combiner function in allow_opt |
| 110 | +- Expose the combiner function in and |
| 111 | +- Remove the PC suffix from parsers |
| 112 | +- Divide Parser into smaller traits |
| 113 | +- Redesigned pc_ng to use the standard Result type and not return the parsed input in the Err |
| 114 | +- Use the new ParseResult everywhere |
| 115 | +- Use Box dyn for or and seq |
| 116 | +- Moved surround method to And trait |
| 117 | +- Moved loop_while to its own trait LoopWhile |
| 118 | +- Moved error related parsers to |
| 119 | +- Move logging method to its own trait |
| 120 | +- Move allow_none_if method to its own trait |
| 121 | +- Moved one_or_more and zero_or_more to Many trait |
| 122 | +- Moved method to its own trait |
| 123 | +- Removed deprecated parser in favor of |
| 124 | +- Removed deprecated in favor of |
| 125 | +- Renamed `rusty_parser/types` to `rusty_parser/specific` |
| 126 | +- Move `Implicits` and `Names` under a new module |
| 127 | +- Added new type `CompactsInfo` |
| 128 | +- Added wrapper struct `NamesInner` |
| 129 | +- Delegating implementation to new structs in `names` module |
| 130 | +- Expose traits of `names` outside module |
| 131 | +- Store names of all scopes in `Names` without dropping them |
| 132 | +- Expose linter context to interpreter |
| 133 | +- Restructure `rusty_linter` modules |
| 134 | +- Restructure `rusty_parser` modules |
| 135 | +- Flatten public api of `rusty_parser` crate |
| 136 | +- Remove complex nested context objects in linter converter |
| 137 | +- Simplify converter for statements |
| 138 | +- Not allowing 'zero' `Position` |
| 139 | +- Use `VariableInfo` from linter `Context` in generator |
| 140 | +- Use a struct for FunctionDeclaration and SubDeclaration |
| 141 | +- Introducing new `Visitor` pattern in linter |
| 142 | +- Simplify `pre_linter` types |
| 143 | +- Implement visitor pattern for `constant_map` |
| 144 | +- Converted function `validate_string_length` into a trait |
| 145 | +- Converted `user_defined_type_rules` to the visitor pattern |
| 146 | +- Use new `Assignment` struct in `Statement` |
| 147 | +- Adapt `for_next_counter_match_linter` and `print_linter` to the Visitor pattern |
| 148 | +- Add a `bi_tuple` macro to reduce some boilerplate code |
| 149 | +- Changed `Statement::SubCall` to use a struct instead of two fields |
| 150 | +- Changed `Statement::BuiltInSubCall` to use a struct instead of two fields |
| 151 | +- Improve encapsulation of `CaseBlock` struct |
| 152 | +- Make `bi_tuple` macro more expressive |
| 153 | +- Migrated `UserDefinedNamesCollector` to the new Visitor pattern |
| 154 | +- Combined all `VarType*` traits into one `VarType` trait |
| 155 | +- Made fields of `TypedName` private |
| 156 | +- Introducing `ref_to_value_visitor` |
| 157 | +- Converted `Name` into a struct with private fields |
| 158 | +- Add `AsBareName` and `ToBareName` traits |
| 159 | +- Remove `QualifiedName` type |
| 160 | +- Renamed `chain` to `then_with` |
| 161 | +- Removed `and_without_undo` |
| 162 | +- Moved specific types away from `pc` module |
| 163 | +- Use small functions to improve `constant_map` readability |
| 164 | +- Implement `ConstLookup` trait for `names_inner` |
| 165 | +- Removed `Position` from `Token`, made fields private |
| 166 | +- Moved the `pc` framework to the `rusty_pc` package |
59 | 167 |
|
60 | 168 | ### 🎨 Styling |
61 | 169 |
|
|
73 | 181 | - Extracted rusty_parser crate |
74 | 182 | - Extracted rusty_linter crate |
75 | 183 | - Removed funding file |
| 184 | +- Update dependencies |
| 185 | +- Extract test function in name parser's unit test |
| 186 | +- Deprecated some error related methods |
| 187 | +- Fix warning about lifeline |
| 188 | +- Uniform coding style of parser implementation |
| 189 | +- Reverted deprecation of `or_fail` and `no_incomplete` |
| 190 | +- Removed method `Variant::is_array` |
| 191 | +- Renamed idx variable to index for more clarity |
| 192 | +- Removed deprecated method in `MockInterpreterTrait` |
| 193 | +- Applied a few clippy suggestions |
| 194 | +- Fixed `use_self` clippy rule |
| 195 | +- Fixed clippy finding `branches_sharing_code` |
| 196 | +- Derive default with annotation in linter converter types |
| 197 | +- MainContext of PreLinter does not need to be public |
| 198 | +- Marked function as test only |
| 199 | +- Renamed `implicits` to `implicit_vars` |
| 200 | +- Moved `NameInfo` to its own module |
| 201 | +- Improved docs |
| 202 | +- Use single field in `Names` for all one-level data |
| 203 | +- Removed mut methods of `Position` |
| 204 | +- Add comments |
| 205 | +- Instantiate `pre_linter` context with `Default` |
| 206 | +- Removed `unwrap` custom functions in favor of `From` trait |
| 207 | +- Change `ConstantMap` `type` into a `struct` for encapsulation |
| 208 | +- Move `bi_tuple` macro to a new module |
| 209 | +- Implement `AsRef` for `TypedName<T>` |
| 210 | +- Removed `From<Token>` implementation of `BareName` |
| 211 | +- Removed unused code in `type_qualifier` |
| 212 | +- Improve `keyword_enum` macro |
| 213 | +- Removed `AccumulateParser` |
| 214 | +- Removed `AllowNoneIf` parser |
| 215 | +- Removed obscure `ExtractExpression` trait |
| 216 | +- Code readability improvements to `opt_second_expression` |
| 217 | +- Improve naming of `ConstValueResolver` for clarity |
| 218 | +- Reformat code with nightly rustfmt |
| 219 | +- Upgrade packages edition to 2024 |
| 220 | +- Upgraded `rusty_parser` to 2024 edition |
| 221 | +- Re-arrange packages in `rusty_parser` |
| 222 | +- Update `README` |
| 223 | +- Split Windows build on a separate GitHub workflow |
| 224 | +- Migrating GitHub workflows to `dtolnay/rust-toolchain` |
| 225 | +- Unifiy build and build-windows GitHub actions |
| 226 | +- Trying a `windows-latest` GitHub runner instead of cross compilation |
| 227 | +- Experimenting with sharing artifacts between jobs |
| 228 | +- Align build and release GitHub workflows |
| 229 | + |
76 | 230 | ## [0.8.0] - 2022-09-25 |
77 | 231 |
|
78 | 232 | ### 🚜 Refactor |
|
85 | 239 | - Use cliff.toml from instarepo |
86 | 240 | - *(changelog)* Updated changelog |
87 | 241 | - *(changelog)* Updated changelog |
| 242 | + |
88 | 243 | ## [0.7.0] - 2021-12-11 |
89 | 244 |
|
90 | 245 | ### 🚀 Features |
91 | 246 |
|
92 | 247 | - [**breaking**] Use standard PATH_TRANSLATED variable for Apache cgi-script instead of BLR_PROGRAM |
93 | 248 | - Introducing git-cliff and changelog |
| 249 | + |
94 | 250 | ## [0.5.0] - 2020-11-27 |
95 | 251 |
|
96 | | -### 💼 Other |
| 252 | +### Bugfix |
| 253 | + |
| 254 | +- Arguments appearing out of order due to enumerating over HashMap |
| 255 | + |
| 256 | +### Refactoring |
97 | 257 |
|
98 | 258 | - Changed Name::Qualified to use QualifiedName as it used to in the past |
99 | 259 | - Removed HasQualifier trait |
100 | 260 | - Renamed TypeDefinition to ExpressionType |
101 | | -- Arguments appearing out of order due to enumerating over HashMap |
102 | | -## [0.3.0] - 2020-07-29 |
103 | 261 |
|
104 | | -### 💼 Other |
105 | | - |
106 | | -- Strings cannot be used as an if condition |
| 262 | +## [0.3.0] - 2020-07-29 |
107 | 263 |
|
108 | 264 | ### 🚜 Refactor |
109 | 265 |
|
110 | 266 | - Moved numeric casts to separate module |
| 267 | + |
| 268 | +### Bugfix |
| 269 | + |
| 270 | +- Strings cannot be used as an if condition |
| 271 | + |
| 272 | +<!-- generated by git-cliff --> |
0 commit comments