./devel/ruby-regexp_parser, Scanner, lexer, parser for rubys regular expressions

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 2.1.1, Package name: ruby26-regexp_parser-2.1.1, Maintainer: pkgsrc-users

# Regexp::Parser

A Ruby gem for tokenizing, parsing, and transforming regular expressions.

* Multilayered

* A scanner/tokenizer based on [Ragel](http://www.colm.net/open-source/ragel/)
* A lexer that produces a "stream" of token objects.
* A parser that produces a "tree" of Expression objects (OO API)

* Runs on Ruby 1.9, 2.x, and JRuby (1.9 mode) runtimes.

* Recognizes Ruby 1.8, 1.9, and 2.x regular expressions.


Required to run:
[lang/ruby26-base]

Required to build:
[pkgtools/cwrappers]

Master sites:

SHA1: 8d4bc9c7bce8639a78319b0a37d27b9d083bf8f8
RMD160: 0ad4bafd7f0ba87ddd897493492d2e164c49ec27
Filesize: 99 KB

Version history: (Expand)


CVS history: (Expand)


   2021-02-28 16:14:18 by Takahiro Kambe | Files touched by this commit (3) | Package updated
Log message:
devel/ruby-regexp_parser: update to 2.1.1

2.1.1 (2021-02-23)

Fixed

* fixed NameError when requiring only 'regexp_parser/scanner' in v2.1.0
  o thanks to Jared White and Sam Ruby for the report

2.1.0 (2021-02-22)

Added

* common ancestor for all scanning/parsing/lexing errors
  o Regexp::Parser::Error can now be rescued as a catch-all
  o the following errors (and their many descendants) now inherit from it:
	- Regexp::Expression::Conditional::TooManyBranches
	- Regexp::Parser::ParserError
	- Regexp::Scanner::ScannerError
	- Regexp::Scanner::ValidationError
	- Regexp::Syntax::SyntaxError
  o it replaces ArgumentError in some rare cases
    (Regexp::Parser.parse('?'))
  o thanks to sandstrom for the cue

Fixed

* fixed scanning of whole-pattern recursion calls \g<0> and \g'0'
  o a regression in v2.0.1 had caused them to be scanned as literals
* fixed scanning of some backreference and subexpression call edge cases
  o e.g. \k<+1>, \g<x-1>
* fixed tokenization of some escapes in character sets
  o ., |, {, }, (, ), ^, $, ?, +, *
  o all of these correctly emitted #type :literal and #token :literal if
    not escaped
  o if escaped, they emitted e.g. #type :escape and #token :group_open for
    [\(]
  o the escaped versions now correctly emit #type :escape and #token
    :literal
* fixed handling of control/metacontrol escapes in character sets
  o e.g. [\cX], [\M-\C-X]
  o they were misread as bunch of individual literals, escapes, and ranges
* fixed some cases where calling #dup/#clone on expressions led to shared
  state
   2021-01-26 16:10:45 by Takahiro Kambe | Files touched by this commit (3) | Package updated
Log message:
devel/ruby-regexp_parser: update to 2.0.3

[2.0.3] - 2020-12-28 - Janosch Müller

Fixed
* fixed error when scanning some unlikely and redundant but valid charset
  patterns
	- e.g. /[[.a-b.]]/, /[[=e=]]/,
* fixed ancestry of some error classes related to syntax version lookup
	- NotImplementedError, InvalidVersionNameError,
          UnknownSyntaxNameError
	- they now correctly inherit from Regexp::Syntax::SyntaxError
          instead of Rubys ::SyntaxError

[2.0.2] - 2020-12-25 - Janosch Müller

Fixed
* fixed FrozenError when calling #to_s on a frozen Group::Passive
	- thanks to Daniel Gollahon

[2.0.1] - 2020-12-20 - Janosch Müller

Fixed
* fixed error when scanning some group names
	- this affected names containing hyphens, digits or multibyte
          chars, e.g. /(?<a1>a)/
	- thanks to Daniel Gollahon for the report
* fixed error when scanning hex escapes with just one hex digit
	- e.g. /\x0A/ was scanned correctly, but the equivalent /\xA/ was
          not
	- thanks to Daniel Gollahon for the report

[2.0.0] - 2020-11-25 - Janosch Müller

Changed

* some methods that used to return byte-based indices now return
  char-based indices
	- the returned values have only changed for Regexps that contain
          multibyte chars
	- this is only a breaking change if you used such methods directly
          AND relied on them pointing to bytes
	- affected methods:
		Regexp::Token #length, #offset, #te, #ts
		Regexp::Expression::Base #full_length, #offset,
		#starts_at, #te, #ts
	- thanks to Akinori MUSHA for the report
* removed some deprecated methods/signatures
	- these are rarely used and have been showing deprecation warnings
          for a long time
	- Regexp::Expression::Subexpression.new with 3 arguments
	- Regexp::Expression::Root.new without a token argument
	- Regexp::Expression.parsed

Added
* Regexp::Expression::Base#base_length
	- returns the character count of an expression body, ignoring any
          quantifier
* pragmatic, experimental support for chained quantifiers
	- e.g.: /^a{10}{4,6}$/ matches exactly 40, 50 or 60 as
	- successive quantifiers used to be silently dropped by the parser
	- they are now wrapped with passive groups as if they were written
          (?:a{10}){4,6}
	- thanks to calfeld for reporting this a while back

Fixed
* incorrect encoding output for non-ascii comments
	- this led to a crash when calling #to_s on parse results
          containing such comments
	- thanks to Michael Glass for the report

* some crashes when scanning contrived patterns such as '\😋'

[1.8.2] - 2020-10-11 - Janosch Müller

Fixed
* fix FrozenError in Expression::Base#repetitions on Ruby 3.0
	- thanks to Thomas Walpole
* removed "unknown future version" warning on Ruby 3.0

[1.8.1] - 2020-09-28 - Janosch Müller

Fixed
* fixed scanning of comment-like text in normal mode
	- this was an old bug, but had become more prevalent in v1.8.0
	- thanks to Tietew for the report
* specified correct minimum Ruby version in gemspec
	- it said 1.9 but really required 2.0 as of v1.8.0
   2020-06-24 05:00:25 by Takahiro Kambe | Files touched by this commit (1)
Log message:
devel/ruby-regexp_parser: fix PLIST

Fix PLIST to build success.
   2020-06-08 00:13:01 by Takahiro Kambe | Files touched by this commit (2) | Package updated
Log message:
devel/ruby-regexp_parser: update to 1.7.1

Update ruby-regexp_parser to 1.7.1

### [1.7.1] - 2020-06-07 - [Ammar Ali](mailto:ammarabuali@gmail.com)

### Fixed

- Support for literals that include the unescaped delimiters `{`, `}`, and `]`. These
  delimiters are informally supported by various regexp engines.
   2020-03-08 16:12:56 by Takahiro Kambe | Files touched by this commit (2) | Package updated
Log message:
devel/ruby-regexp_parser: update to 1.7.0

Update ruby-regexp_parser to 1.7.0.

### [1.7.0] - 2020-02-23 - [Janosch Müller](mailto:janosch84@gmail.com)

### Added

- `Expression#each_expression` and `1.#traverse` can now be called without a block
  * this returns an `Enumerator` and allows chaining, e.g. `each_expression.select`
  * thanks to [Masataka Kuwabara](https://github.com/pocke)

### Fixed

- `MatchLength#each` no longer ignores the given `limit:` when called without a block
   2019-11-12 16:32:51 by Takahiro Kambe | Files touched by this commit (4)
Log message:
devel/ruby-regexp_parser: add version 1.6.0 package

Add ruby-regexp_parser version 1.6.0 package.

# Regexp::Parser

A Ruby gem for tokenizing, parsing, and transforming regular expressions.

* Multilayered

  * A scanner/tokenizer based on [Ragel](http://www.colm.net/open-source/ragel/)
  * A lexer that produces a "stream" of token objects.
  * A parser that produces a "tree" of Expression objects (OO API)

* Runs on Ruby 1.9, 2.x, and JRuby (1.9 mode) runtimes.

* Recognizes Ruby 1.8, 1.9, and 2.x regular expressions.