head 1.18; access; symbols pkgsrc-2023Q4:1.17.0.2 pkgsrc-2023Q4-base:1.17 pkgsrc-2023Q3:1.15.0.4 pkgsrc-2023Q3-base:1.15 pkgsrc-2023Q2:1.15.0.2 pkgsrc-2023Q2-base:1.15 pkgsrc-2023Q1:1.13.0.2 pkgsrc-2023Q1-base:1.13 pkgsrc-2022Q4:1.11.0.2 pkgsrc-2022Q4-base:1.11 pkgsrc-2022Q3:1.9.0.2 pkgsrc-2022Q3-base:1.9 pkgsrc-2022Q2:1.8.0.4 pkgsrc-2022Q2-base:1.8 pkgsrc-2022Q1:1.8.0.2 pkgsrc-2022Q1-base:1.8 pkgsrc-2021Q4:1.7.0.2 pkgsrc-2021Q4-base:1.7 pkgsrc-2021Q3:1.6.0.6 pkgsrc-2021Q3-base:1.6 pkgsrc-2021Q2:1.6.0.4 pkgsrc-2021Q2-base:1.6 pkgsrc-2021Q1:1.6.0.2 pkgsrc-2021Q1-base:1.6 pkgsrc-2020Q4:1.4.0.4 pkgsrc-2020Q4-base:1.4 pkgsrc-2020Q3:1.4.0.2 pkgsrc-2020Q3-base:1.4 pkgsrc-2020Q2:1.3.0.2 pkgsrc-2020Q2-base:1.3 pkgsrc-2020Q1:1.2.0.2 pkgsrc-2020Q1-base:1.2 pkgsrc-2019Q4:1.1.0.4 pkgsrc-2019Q4-base:1.1; locks; strict; comment @# @; 1.18 date 2024.02.03.15.36.48; author taca; state Exp; branches; next 1.17; commitid 2oIH2FwDCIyC90XE; 1.17 date 2023.12.17.14.22.12; author taca; state Exp; branches; next 1.16; commitid 4szeiogV7qSFhPQE; 1.16 date 2023.11.11.12.20.33; author taca; state Exp; branches; next 1.15; commitid 7eLz0hYJdctHLbME; 1.15 date 2023.06.11.14.29.44; author taca; state Exp; branches; next 1.14; commitid 9nYgb6ahPYSVoxsE; 1.14 date 2023.04.27.14.13.07; author taca; state Exp; branches; next 1.13; commitid hUfSyrDY5KMUKKmE; 1.13 date 2023.02.11.13.45.25; author taca; state Exp; branches; next 1.12; commitid uKeNWM9uCXCS07dE; 1.12 date 2023.01.25.13.41.11; author taca; state Exp; branches; next 1.11; commitid SemQAoDhJKkixVaE; 1.11 date 2022.11.29.13.14.52; author taca; state Exp; branches; next 1.10; commitid VHWGfMxEXoURdB3E; 1.10 date 2022.10.09.07.29.16; author taca; state Exp; branches; next 1.9; commitid fAD9QBBiv3hXW0XD; 1.9 date 2022.08.24.16.31.03; author taca; state Exp; branches; next 1.8; commitid 8paKGlea7e2tq9RD; 1.8 date 2022.02.13.07.16.46; author taca; state Exp; branches; next 1.7; commitid CvypqRSfgIMYwqsD; 1.7 date 2021.12.11.13.32.46; author taca; state Exp; branches; next 1.6; commitid 0U7DwmbTPgKuFekD; 1.6 date 2021.02.28.15.14.18; author taca; state Exp; branches; next 1.5; commitid p8H1BUQ2LaGhquJC; 1.5 date 2021.01.26.15.10.45; author taca; state Exp; branches; next 1.4; commitid PJ2aseuAkJYQsfFC; 1.4 date 2020.09.20.15.42.11; author taca; state Exp; branches; next 1.3; commitid AzmIM0IEC16IKNoC; 1.3 date 2020.06.07.22.13.00; author taca; state Exp; branches; next 1.2; commitid OHxgG6MUIiD2ilbC; 1.2 date 2020.03.08.15.12.55; author taca; state Exp; branches; next 1.1; commitid pZisC23oCooZSBZB; 1.1 date 2019.11.12.15.32.51; author taca; state Exp; branches; next ; commitid F41vNZyR4JBOKzKB; desc @@ 1.18 log @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, (?!...), (?, (a)\g<-01>, (a)?(?(01)b|c) - thanks to Markus Schirp for the report @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.16 2023/11/11 12:20:33 taca Exp $ d3 1 a3 1 DISTNAME= regexp_parser-2.8.3 @ 1.16 log @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 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.15 2023/06/11 14:29:44 taca Exp $ d3 1 a3 1 DISTNAME= regexp_parser-2.8.2 @ 1.15 log @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 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.14 2023/04/27 14:13:07 taca Exp $ d3 1 a3 1 DISTNAME= regexp_parser-2.8.1 @ 1.14 log @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 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.13 2023/02/11 13:45:25 taca Exp $ d3 1 a3 1 DISTNAME= regexp_parser-2.8.0 @ 1.13 log @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 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.12 2023/01/25 13:41:11 taca Exp $ d3 1 a3 1 DISTNAME= regexp_parser-2.7.0 @ 1.12 log @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 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.11 2022/11/29 13:14:52 taca Exp $ d3 1 a3 1 DISTNAME= regexp_parser-2.6.2 @ 1.11 log @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 (? used to raise a ScannerError o (?)y used to be misinterpreted as a named group o thanks to Sergio Medina for the report @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.10 2022/10/09 07:29:16 taca Exp $ d3 1 a3 1 DISTNAME= regexp_parser-2.6.1 @ 1.10 log @devel/ruby-regexp_parser: update to 2.6.0 2.6.0 (2022-09-26) Fixed * fixed #referenced_expression for \g<0> (was nil, is now the Root exp) * fixed #reference, #referenced_expression for recursion level backrefs - e.g. (a)(b)\k<-1+1> - #referenced_expression was nil, now it is the correct Group exp * detect and raise for two more syntax errors when parsing String input - quantification of option switches (e.g. (?i)+) - invalid references (e.g. /\k<1>/) - these are a SyntaxError in Ruby, so could only be passed as a String Added * Regexp::Expression::Base#human_name - returns a nice, human-readable description of the expression * Regexp::Expression::Base#optional? - returns true if the expression is quantified accordingly (e.g. with *, {,n}) * added a deprecation warning when calling #to_re on set members @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.9 2022/08/24 16:31:03 taca Exp $ d3 1 a3 1 DISTNAME= regexp_parser-2.6.0 @ 1.9 log @devel/ruby-regexp_parser: update to 2.5.0 [2.5.0] - 2022-05-27 - Janosch Müller Added * Regexp::Expression::Base.construct and .token_class methods o see the wiki for details [2.4.0] - 2022-05-09 - Janosch Müller Fixed * fixed interpretation of + and ? after interval quantifiers ({n,n}) - they used to be treated as reluctant or possessive mode indicators - however, Ruby does not support these modes for interval quantifiers - they are now treated as chained quantifiers instead, as Ruby does it - c.f. #3 * fixed Expression::Base#nesting_level for some tree rewrite cases - e.g. the alternatives in /a|[b]/ had an inconsistent nesting_level * fixed Scanner accepting invalid posix classes, e.g. [[:foo:]] - they raise a SyntaxError when used in a Regexp, so could only be passed as String - they now raise a Regexp::Scanner::ValidationError in the Scanner Added * added Expression::Base#== for (deep) comparison of expressions * added Expression::Base#parts - returns the text elements and subexpressions of an expression - e.g. parse(/(a)/)[0].parts # => ["(", #, ")"] * added Expression::Base#te (a.k.a. token end index) - Expression::Subexpression always had #te, only terminal nodes lacked it so far * made some Expression::Base methods available on Quantifier instances, too - #type, #type?, #is?, #one_of?, #options, #terminal? - #base_length, #full_length, #starts_at, #te, #ts, #offset - #conditional_level, #level, #nesting_level , #set_level - this allows a more unified handling with Expression::Base instances * allowed Quantifier#initialize to take a token and options Hash like other nodes * added a deprecation warning for initializing Quantifiers with 4+ arguments: Calling Expression::Base#quantify or Quantifier.new with 4+ arguments is deprecated. It will no longer be supported in regexp_parser v3.0.0. Please pass a Regexp::Token instead, e.g. replace token, text, min, max, mode with ::Regexp::Token.new(:quantifier, token, text). min, max, and mode will be derived automatically. Or do exp.quantifier = Quantifier.construct(token: token, text: str). This is consistent with how Expression::Base instances are created. [2.3.1] - 2022-04-24 - Janosch Müller Fixed * removed five inexistent unicode properties from Syntax#features - these were never supported by Ruby or the Regexp::Scanner - thanks to Markus Schirp for the report [2.3.0] - 2022-04-08 - Janosch Müller Added * improved parsing performance through Syntax refactoring - instead of fresh Syntax instances, pre-loaded constants are now re-used - this approximately doubles the parsing speed for simple regexps * added methods to Syntax classes to show relative feature sets - e.g. Regexp::Syntax::V3_2_0.added_features * support for new unicode properties of Ruby 3.2 / Unicode 14.0 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.8 2022/02/13 07:16:46 taca Exp $ d3 1 a3 1 DISTNAME= regexp_parser-2.5.0 @ 1.8 log @devel/ruby-regexp_parser: update to 2.2.1 2.2.1 (2022-02-11) Fixed * fixed Syntax version of absence groups ((?~...)) - the lexer accepted them for any Ruby version - now they are only recognized for Ruby >= 2.4.1 in which they were introduced * reduced gem size by excluding specs from package * removed deprecated test_files gemspec setting * no longer depend on yaml/psych (except for Ruby <= 2.4) * no longer depend on set - set was removed from the stdlib and made a standalone gem as of Ruby 3 - this made it a hidden/undeclared dependency of regexp_parser @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.7 2021/12/11 13:32:46 taca Exp $ d3 1 a3 1 DISTNAME= regexp_parser-2.2.1 @ 1.7 log @devel/ruby-regexp_parser: update to 2.2.0 2.2.0 (2021-12-04) Added * Added support for 13 new unicode properties introduced in Ruby 3.1.0-dev @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.6 2021/02/28 15:14:18 taca Exp $ d3 1 a3 1 DISTNAME= regexp_parser-2.2.0 @ 1.6 log @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 * 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 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.5 2021/01/26 15:10:45 taca Exp $ d3 1 a3 1 DISTNAME= regexp_parser-2.1.1 @ 1.5 log @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. /(?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 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.4 2020/09/20 15:42:11 taca Exp $ d3 1 a3 1 DISTNAME= regexp_parser-2.0.3 @ 1.4 log @devel/ruby-regexp_parser: update to 1.8.0 Update ruby-regexp_parser package to 1.8.0. ### [1.8.0] - 2020-09-20 - [Janosch Mller](mailto:janosch84@@gmail.com) ### Changed - dropped support for running on Ruby 1.9.x ### Added - regexp flags can now be passed when parsing a `String` as regexp body * see the [README](/README.md#usage) for details * thanks to [Owen Stephens](https://github.com/owst) - bare occurrences of `\g` and `\k` are now allowed and scanned as literal escapes * matches Onigmo behavior * thanks for the report to [Marc-Andr Lafortune](https://github.com/marcandre) ### Fixed - fixed parsing comments without preceding space or trailing newline in x-mode * thanks to [Owen Stephens](https://github.com/owst) @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.3 2020/06/07 22:13:00 taca Exp $ d3 1 a3 1 DISTNAME= regexp_parser-1.8.0 @ 1.3 log @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. @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.2 2020/03/08 15:12:55 taca Exp $ d3 1 a3 1 DISTNAME= regexp_parser-1.7.1 d11 1 a11 1 USE_LANGUAGES= # empty @ 1.2 log @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 @ text @d1 1 a1 1 # $NetBSD: Makefile,v 1.1 2019/11/12 15:32:51 taca Exp $ d3 1 a3 1 DISTNAME= regexp_parser-1.7.0 @ 1.1 log @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. @ text @d1 1 a1 1 # $NetBSD$ d3 1 a3 1 DISTNAME= regexp_parser-1.6.0 @