Skip to content

Commit 55aad3d

Browse files
committed
Update CHANGELOG.md ...
- add header - use consistent list style - remove non-code changes
1 parent 93a11b4 commit 55aad3d

File tree

1 file changed

+40
-45
lines changed

1 file changed

+40
-45
lines changed

CHANGELOG.md

Lines changed: 40 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,58 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7+
18
## [Unreleased]
29

310
### Fixed
411

512
- fixed `#referenced_expression` for `\g<0>` (was `nil`, is now the `Root` exp)
613
- fixed `#reference`, `#referenced_expression` for recursion level backrefs
7-
- e.g. `(a)(b)\k<-1+1>`
8-
- `#referenced_expression` was `nil`, now it is the correct `Group` exp
14+
* e.g. `(a)(b)\k<-1+1>`
15+
* `#referenced_expression` was `nil`, now it is the correct `Group` exp
916
- detect and raise for two more syntax errors when parsing String input
10-
- quantification of option switches (e.g. `(?i)+`)
11-
- invalid references (e.g. `/\k<1>/`)
12-
- these are a `SyntaxError` in Ruby, so could only be passed as a String
17+
* quantification of option switches (e.g. `(?i)+`)
18+
* invalid references (e.g. `/\k<1>/`)
19+
* these are a `SyntaxError` in Ruby, so could only be passed as a String
1320

1421
## [2.5.0] - 2022-05-27 - [Janosch Müller](mailto:janosch84@gmail.com)
1522

1623
### Added
1724

1825
- `Regexp::Expression::Base.construct` and `.token_class` methods
19-
- see the [wiki](https://github.com/ammar/regexp_parser/wiki) for details
26+
* see the [wiki](https://github.com/ammar/regexp_parser/wiki) for details
2027

2128
## [2.4.0] - 2022-05-09 - [Janosch Müller](mailto:janosch84@gmail.com)
2229

2330
### Fixed
2431

2532
- fixed interpretation of `+` and `?` after interval quantifiers (`{n,n}`)
26-
- they used to be treated as reluctant or possessive mode indicators
27-
- however, Ruby does not support these modes for interval quantifiers
28-
- they are now treated as chained quantifiers instead, as Ruby does it
29-
- c.f. [#3](https://github.com/ammar/regexp_parser/issues/3)
33+
* they used to be treated as reluctant or possessive mode indicators
34+
* however, Ruby does not support these modes for interval quantifiers
35+
* they are now treated as chained quantifiers instead, as Ruby does it
36+
* c.f. [#3](https://github.com/ammar/regexp_parser/issues/3)
3037
- fixed `Expression::Base#nesting_level` for some tree rewrite cases
31-
- e.g. the alternatives in `/a|[b]/` had an inconsistent nesting_level
38+
* e.g. the alternatives in `/a|[b]/` had an inconsistent nesting_level
3239
- fixed `Scanner` accepting invalid posix classes, e.g. `[[:foo:]]`
33-
- they raise a `SyntaxError` when used in a Regexp, so could only be passed as String
34-
- they now raise a `Regexp::Scanner::ValidationError` in the `Scanner`
40+
* they raise a `SyntaxError` when used in a Regexp, so could only be passed as String
41+
* they now raise a `Regexp::Scanner::ValidationError` in the `Scanner`
3542

3643
### Added
3744

3845
- added `Expression::Base#==` for (deep) comparison of expressions
3946
- added `Expression::Base#parts`
40-
- returns the text elements and subexpressions of an expression
41-
- e.g. `parse(/(a)/)[0].parts # => ["(", #<Literal @text="a"...>, ")"]`
47+
* returns the text elements and subexpressions of an expression
48+
* e.g. `parse(/(a)/)[0].parts # => ["(", #<Literal @text="a"...>, ")"]`
4249
- added `Expression::Base#te` (a.k.a. token end index)
43-
- `Expression::Subexpression` always had `#te`, only terminal nodes lacked it so far
50+
* `Expression::Subexpression` always had `#te`, only terminal nodes lacked it so far
4451
- made some `Expression::Base` methods available on `Quantifier` instances, too
45-
- `#type`, `#type?`, `#is?`, `#one_of?`, `#options`, `#terminal?`
46-
- `#base_length`, `#full_length`, `#starts_at`, `#te`, `#ts`, `#offset`
47-
- `#conditional_level`, `#level`, `#nesting_level` , `#set_level`
48-
- this allows a more unified handling with `Expression::Base` instances
52+
* `#type`, `#type?`, `#is?`, `#one_of?`, `#options`, `#terminal?`
53+
* `#base_length`, `#full_length`, `#starts_at`, `#te`, `#ts`, `#offset`
54+
* `#conditional_level`, `#level`, `#nesting_level` , `#set_level`
55+
* this allows a more unified handling with `Expression::Base` instances
4956
- allowed `Quantifier#initialize` to take a token and options Hash like other nodes
5057
- added a deprecation warning for initializing Quantifiers with 4+ arguments:
5158

@@ -68,33 +75,33 @@
6875
### Fixed
6976

7077
- removed five inexistent unicode properties from `Syntax#features`
71-
- these were never supported by Ruby or the `Regexp::Scanner`
72-
- thanks to [Markus Schirp](https://github.com/mbj) for the report
78+
* these were never supported by Ruby or the `Regexp::Scanner`
79+
* thanks to [Markus Schirp](https://github.com/mbj) for the report
7380

7481
## [2.3.0] - 2022-04-08 - [Janosch Müller](mailto:janosch84@gmail.com)
7582

7683
### Added
7784

7885
- improved parsing performance through `Syntax` refactoring
79-
- instead of fresh `Syntax` instances, pre-loaded constants are now re-used
80-
- this approximately doubles the parsing speed for simple regexps
86+
* instead of fresh `Syntax` instances, pre-loaded constants are now re-used
87+
* this approximately doubles the parsing speed for simple regexps
8188
- added methods to `Syntax` classes to show relative feature sets
82-
- e.g. `Regexp::Syntax::V3_2_0.added_features`
89+
* e.g. `Regexp::Syntax::V3_2_0.added_features`
8390
- support for new unicode properties of Ruby 3.2 / Unicode 14.0
8491

8592
## [2.2.1] - 2022-02-11 - [Janosch Müller](mailto:janosch84@gmail.com)
8693

8794
### Fixed
8895

8996
- fixed Syntax version of absence groups (`(?~...)`)
90-
- the lexer accepted them for any Ruby version
91-
- now they are only recognized for Ruby >= 2.4.1 in which they were introduced
97+
* the lexer accepted them for any Ruby version
98+
* now they are only recognized for Ruby >= 2.4.1 in which they were introduced
9299
- reduced gem size by excluding specs from package
93100
- removed deprecated `test_files` gemspec setting
94101
- no longer depend on `yaml`/`psych` (except for Ruby <= 2.4)
95102
- no longer depend on `set`
96-
- `set` was removed from the stdlib and made a standalone gem as of Ruby 3
97-
- this made it a hidden/undeclared dependency of `regexp_parser`
103+
* `set` was removed from the stdlib and made a standalone gem as of Ruby 3
104+
* this made it a hidden/undeclared dependency of `regexp_parser`
98105

99106
## [2.2.0] - 2021-12-04 - [Janosch Müller](mailto:janosch84@gmail.com)
100107

@@ -332,17 +339,17 @@
332339

333340
- Fixed missing quantifier in `Conditional::Expression` methods `#to_s`, `#to_re`
334341
- `Conditional::Condition` no longer lives outside the recursive `#expressions` tree
335-
- it used to be the only expression stored in a custom ivar, complicating traversal
336-
- its setter and getter (`#condition=`, `#condition`) still work as before
342+
* it used to be the only expression stored in a custom ivar, complicating traversal
343+
* its setter and getter (`#condition=`, `#condition`) still work as before
337344

338345
## [1.1.0] - 2018-09-17 - [Janosch Müller](mailto:janosch84@gmail.com)
339346

340347
### Added
341348

342349
- Added `Quantifier` methods `#greedy?`, `#possessive?`, `#reluctant?`/`#lazy?`
343350
- Added `Group::Options#option_changes`
344-
- shows the options enabled or disabled by the given options group
345-
- as with all other expressions, `#options` shows the overall active options
351+
* shows the options enabled or disabled by the given options group
352+
* as with all other expressions, `#options` shows the overall active options
346353
- Added `Conditional#reference` and `Condition#reference`, indicating the determinative group
347354
- Added `Subexpression#dig`, acts like [`Array#dig`](http://ruby-doc.org/core-2.5.0/Array.html#method-i-dig)
348355

@@ -526,7 +533,6 @@ This release includes several breaking changes, mostly to character sets, #map a
526533
* Fixed scanning of zero length comments (PR #12)
527534
* Fixed missing escape:codepoint_list syntax token (PR #14)
528535
* Fixed to_s for modified interval quantifiers (PR #17)
529-
- Added a note about MRI implementation quirks to Scanner section
530536

531537
## [0.3.2] - 2016-01-01 - [Ammar Ali](mailto:ammarabuali@gmail.com)
532538

@@ -552,7 +558,6 @@ This release includes several breaking changes, mostly to character sets, #map a
552558
- Renamed Lexer's method to lex, added an alias to the old name (scan)
553559
- Use #map instead of #each to run the block in Lexer.lex.
554560
- Replaced VERSION.yml file with a constant.
555-
- Updated README
556561
- Update tokens and scanner with new additions in Unicode 7.0.
557562

558563
## [0.1.6] - 2014-10-06 - [Ammar Ali](mailto:ammarabuali@gmail.com)
@@ -562,20 +567,11 @@ This release includes several breaking changes, mostly to character sets, #map a
562567
- Added syntax files for missing ruby 2.x versions. These do not add
563568
extra syntax support, they just make the gem work with the newer
564569
ruby versions.
565-
- Added .travis.yml to project root.
566-
- README:
567-
- Removed note purporting runtime support for ruby 1.8.6.
568-
- Added a section identifying the main unsupported syntax features.
569-
- Added sections for Testing and Building
570-
- Added badges for gem version, Travis CI, and code climate.
571-
- Updated README, fixing broken examples, and converting it from a rdoc file to Github's flavor of Markdown.
572570
- Fixed a parser bug where an alternation sequence that contained nested expressions was incorrectly being appended to the parent expression when the nesting was exited. e.g. in /a|(b)c/, c was appended to the root.
573-
574571
- Fixed a bug where character types were not being correctly scanned within character sets. e.g. in [\d], two tokens were scanned; one for the backslash '\' and one for the 'd'
575572

576573
## [0.1.5] - 2014-01-14 - [Ammar Ali](mailto:ammarabuali@gmail.com)
577574

578-
- Correct ChangeLog.
579575
- Added syntax stubs for ruby versions 2.0 and 2.1
580576
- Added clone methods for deep copying expressions.
581577
- Added optional format argument for to_s on expressions to return the text of the expression with (:full, the default) or without (:base) its quantifier.
@@ -584,7 +580,6 @@ This release includes several breaking changes, mostly to character sets, #map a
584580
- Improved EOF handling in general and especially from sequences like hex and control escapes.
585581
- Fixed a bug where named groups with an empty name would return a blank token [].
586582
- Fixed a bug where member of a parent set where being added to its last subset.
587-
- Various code cleanups in scanner.rl
588583
- Fixed a few mutable string bugs by calling dup on the originals.
589584
- Made ruby 1.8.6 the base for all 1.8 syntax, and the 1.8 name a pointer to the latest (1.8.7 at this time)
590585
- Removed look-behind assertions (positive and negative) from 1.8 syntax

0 commit comments

Comments
 (0)