Path to this page:
./
devel/ruby-regexp_parser,
Scanner, lexer, parser for rubys regular expressions
Branch: CURRENT,
Version: 2.9.2,
Package name: ruby32-regexp_parser-2.9.2,
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:
Filesize: 57 KB
Version history: (Expand)
- (2024-05-26) Updated to version: ruby32-regexp_parser-2.9.2
- (2024-05-12) Updated to version: ruby32-regexp_parser-2.9.1
- (2024-02-03) Updated to version: ruby31-regexp_parser-2.9.0
- (2023-12-17) Updated to version: ruby31-regexp_parser-2.8.3
- (2023-11-11) Updated to version: ruby31-regexp_parser-2.8.2
- (2023-06-11) Updated to version: ruby31-regexp_parser-2.8.1
CVS history: (Expand)
2024-02-03 16:36:48 by Takahiro Kambe | Files touched by this commit (3) | |
Log message:
devel/ruby-regexp_parser: update to 2.9.0
2.9.0 (2024-01-07)
Added
* all expressions now respond to #negative? / #negated?
- previously only sets, props, and posix classes did
* implemented #negative? / #negated? for more applicable expressions
- \B, \D, \H, \S, \W, (?!...), (?<!...)
Fixed
* fixed missing support for grapheme cluster break unicode properties
- e.g. /\p{Grapheme_Cluster_Break=Extend}/
|
2023-12-17 15:22:12 by Takahiro Kambe | Files touched by this commit (2) | |
Log message:
devel/ruby-regexp_parser: update to 2.8.3
2.8.3 (2023-12-04)
Fixed
* fixed scanner errors for insignificant leading zeros in numerical group
refs
- e.g. (a)\k<01>, (a)\g<-01>, (a)?(?(01)b|c)
- thanks to Markus Schirp for the report
|
2023-11-11 13:20:33 by Takahiro Kambe | Files touched by this commit (3) | |
Log message:
devel/ruby-regexp_parser: update to 2.8.2
2.8.2 (2023-10-10)
Fixed
* handle a corner case where parsing redundant number escapes raised an error
- e.g. parse(/\99/), which in Ruby is a valid Regexp that matches 99
- thanks to Markus Schirp for the report
|
2023-06-11 16:29:44 by Takahiro Kambe | Files touched by this commit (3) | |
Log message:
devel/ruby-regexp_parser: update to 2.8.1
2.8.1] (2023-06-10)
Fixed
* support for extpict unicode property, added in Ruby 2.6
* support for 10 unicode script/block properties added in Ruby 3.2
|
2023-04-27 16:13:07 by Takahiro Kambe | Files touched by this commit (3) | |
Log message:
devel/ruby-regexp_parser: update to 2.8.0
2.8.0 (2023-04-17)
Added
o Regexp::Expression::Shared#ends_at
* e.g. parse(/a +/x)[0].ends_at # => 3
* e.g. parse(/a +/x)[0].ends_at(include_quantifier = false) # => 1
o Regexp::Expression::Shared#{capturing?,comment?}
* previously only available on capturing and comment groups
o Regexp::Expression::Shared#{decorative?}
* true for decorations: comment groups as well as comments and whitespace
in x-mode
o Regexp::Expression::Shared#parent
o new format argument :original for Regexp::Expression::Base#to_s
* includes decorative elements between node and its quantifier
* e.g. parse(/a (?#comment) +/x)[0].to_s(:original) # => "a \
(?#comment) +"
* using it is not needed when calling Root#to_s as Root can't be
quantified
o support calling Subexpression#{each_expression,flat_map} with a
one-argument block
* in this case, only the expressions are passed to the block, no indices
o support calling test methods at Expression class level
* capturing?, comment?, decorative?, referential?, terminal?
* e.g. Regexp::Expression::CharacterSet.terminal? # => false
Fixed
o Regexp::Expression::Shared#full_length with whitespace before quantifier
* e.g. parse(/a +/x)[0].full_length used to yield 2, now it yields 3
o Subexpression#to_s output with children with whitespace before their
quantifier
* e.g. parse(/a + /x).to_s used to yield "a+ ", now it yields \
"a + "
* calling #to_s on sub-nodes still omits such decorative interludes by
default
- use new #to_s format :original to include it
- e.g. parse(/a + /x)[0].to_s(:original) # => "a +"
o fixed Subexpression#te behaving differently from other expressions
* only Subexpression#te used to include the quantifier
* now #te is the end index without quantifier, as for other expressions
o fixed NoMethodError when calling #starts_at or #ts on empty sequences
* e.g. Regexp::Parser.parse(/|/)[0].starts_at
* e.g. Regexp::Parser.parse(/[&&]/)[0][0].starts_at
o fixed nested comment groups breaking local x-options
* e.g. in /(?x:(?#hello)) /, the x-option wrongly applied to the
whitespace
o fixed nested comment groups breaking conditionals
* e.g. in /(a)(?(1)b|c(?#hello)d)e/, the 2nd conditional branch included
"e"
o fixed quantifiers after comment groups being mis-assigned to that group
* e.g. in /a(?#foo){3}/ (matches 'aaa')
o fixed Scanner accepting two cases of invalid Regexp syntax
* unmatched closing parentheses ()) and k-backrefs with number 0 (\k<0>)
* these are a SyntaxError in Ruby, so could only be passed as a String
* they now raise a Regexp::Scanner::ScannerError
o fixed some scanner errors not inheriting from
Regexp::Scanner::ScannerError
o reduced verbosity of inspect / pretty print output
|
2023-02-11 14:45:25 by Takahiro Kambe | Files touched by this commit (2) | |
Log message:
devel/ruby-regexp_parser: update to 2.7.0
2.7.0 (2023-02-08)
Added
* Regexp::Lexer.lex now streams tokens when called with a block
- it can now take arbitrarily large input, just like Regexp::Scanner
- this also slightly improves Regexp::Parser.parse performance
- note: Regexp::Parser.parse still does not and will not support streaming
* improved performance of Subexpression#each_expression
* minor improvements to Regexp::Scanner performance
* overall improvement of parse performance: about 10% for large Regexps
Fixed
* parsing of octal escape sequences in sets, e.g. [\141]
- thanks to Randy Stauner for the report
|
2023-01-25 14:41:11 by Takahiro Kambe | Files touched by this commit (2) | |
Log message:
devel/ruby-regexp_parser: update to 2.6.2
2.6.2 (2023-01-19)
Fixed
* fixed SystemStackError when cloning recursive subexpression calls
- e.g. Regexp::Parser.parse(/a|b\g<0>/).dup
|
2022-11-29 14:14:52 by Takahiro Kambe | Files touched by this commit (2) | |
Log message:
devel/ruby-regexp_parser: update to 2.6.1
2.6.1 (2022-11-16)
Fixed
* fixed scanning of two negative lookbehind edge cases
o (?<!x)y> used to raise a ScannerError
o (?<!x>)y used to be misinterpreted as a named group
o thanks to Sergio Medina for the report
|