regexp_parser 2.9.0 → 2.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/regexp_parser/expression/classes/keep.rb +1 -1
- data/lib/regexp_parser/expression.rb +34 -34
- data/lib/regexp_parser/parser.rb +5 -5
- data/lib/regexp_parser/scanner/errors/scanner_error.rb +1 -1
- data/lib/regexp_parser/scanner/scanner.rl +5 -5
- data/lib/regexp_parser/scanner.rb +728 -771
- data/lib/regexp_parser/syntax/token.rb +13 -13
- data/lib/regexp_parser/syntax/versions.rb +1 -1
- data/lib/regexp_parser/syntax.rb +1 -1
- data/lib/regexp_parser/version.rb +1 -1
- data/lib/regexp_parser.rb +6 -6
- data/regexp_parser.gemspec +2 -0
- metadata +4 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: e429c2cc03b2c9c31e3bf5c3dc71ffc15c5032a35f52c3abae9134d02c45496f
         | 
| 4 | 
            +
              data.tar.gz: 6a89f8618748c8ab479c4d81ff44c9fabfb461337993fcc641da23d6c349a1ec
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 8f9cb8133b24db6f8bb2199356101c234960839ae1251a77da6fe4faeaafc2ab1d6f679f5a6e081860d4a9137a91aeb7793dbc617f04c9747b9110d64134d45f
         | 
| 7 | 
            +
              data.tar.gz: bdfe1c9a13fef4f891c28787588c92be37c1c8a61e0d473d05482a67207675be090ec5a74d12b46cf93c8d2565388c6680acd89ad65bc63454514ee720181c82
         | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            module Regexp::Expression
         | 
| 2 2 | 
             
              module Keep
         | 
| 3 | 
            -
                #  | 
| 3 | 
            +
                # TODO: in regexp_parser v3.0.0 this should possibly be a Subexpression
         | 
| 4 4 | 
             
                #       that contains all expressions to its left.
         | 
| 5 5 | 
             
                class Mark < Regexp::Expression::Base; end
         | 
| 6 6 | 
             
              end
         | 
| @@ -1,37 +1,37 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            require_relative 'error'
         | 
| 2 2 |  | 
| 3 | 
            -
             | 
| 4 | 
            -
             | 
| 5 | 
            -
             | 
| 6 | 
            -
             | 
| 7 | 
            -
             | 
| 8 | 
            -
             | 
| 3 | 
            +
            require_relative 'expression/shared'
         | 
| 4 | 
            +
            require_relative 'expression/base'
         | 
| 5 | 
            +
            require_relative 'expression/quantifier'
         | 
| 6 | 
            +
            require_relative 'expression/subexpression'
         | 
| 7 | 
            +
            require_relative 'expression/sequence'
         | 
| 8 | 
            +
            require_relative 'expression/sequence_operation'
         | 
| 9 9 |  | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 24 | 
            -
             | 
| 25 | 
            -
             | 
| 10 | 
            +
            require_relative 'expression/classes/alternation'
         | 
| 11 | 
            +
            require_relative 'expression/classes/anchor'
         | 
| 12 | 
            +
            require_relative 'expression/classes/backreference'
         | 
| 13 | 
            +
            require_relative 'expression/classes/character_set'
         | 
| 14 | 
            +
            require_relative 'expression/classes/character_set/intersection'
         | 
| 15 | 
            +
            require_relative 'expression/classes/character_set/range'
         | 
| 16 | 
            +
            require_relative 'expression/classes/character_type'
         | 
| 17 | 
            +
            require_relative 'expression/classes/conditional'
         | 
| 18 | 
            +
            require_relative 'expression/classes/escape_sequence'
         | 
| 19 | 
            +
            require_relative 'expression/classes/free_space'
         | 
| 20 | 
            +
            require_relative 'expression/classes/group'
         | 
| 21 | 
            +
            require_relative 'expression/classes/keep'
         | 
| 22 | 
            +
            require_relative 'expression/classes/literal'
         | 
| 23 | 
            +
            require_relative 'expression/classes/posix_class'
         | 
| 24 | 
            +
            require_relative 'expression/classes/root'
         | 
| 25 | 
            +
            require_relative 'expression/classes/unicode_property'
         | 
| 26 26 |  | 
| 27 | 
            -
             | 
| 28 | 
            -
             | 
| 29 | 
            -
             | 
| 30 | 
            -
             | 
| 31 | 
            -
             | 
| 32 | 
            -
             | 
| 33 | 
            -
             | 
| 34 | 
            -
             | 
| 35 | 
            -
             | 
| 36 | 
            -
             | 
| 37 | 
            -
             | 
| 27 | 
            +
            require_relative 'expression/methods/construct'
         | 
| 28 | 
            +
            require_relative 'expression/methods/human_name'
         | 
| 29 | 
            +
            require_relative 'expression/methods/match'
         | 
| 30 | 
            +
            require_relative 'expression/methods/match_length'
         | 
| 31 | 
            +
            require_relative 'expression/methods/negative'
         | 
| 32 | 
            +
            require_relative 'expression/methods/options'
         | 
| 33 | 
            +
            require_relative 'expression/methods/parts'
         | 
| 34 | 
            +
            require_relative 'expression/methods/printing'
         | 
| 35 | 
            +
            require_relative 'expression/methods/strfregexp'
         | 
| 36 | 
            +
            require_relative 'expression/methods/tests'
         | 
| 37 | 
            +
            require_relative 'expression/methods/traverse'
         | 
    
        data/lib/regexp_parser/parser.rb
    CHANGED
    
    | @@ -1,5 +1,5 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
             | 
| 1 | 
            +
            require_relative 'error'
         | 
| 2 | 
            +
            require_relative 'expression'
         | 
| 3 3 |  | 
| 4 4 | 
             
            class Regexp::Parser
         | 
| 5 5 | 
             
              include Regexp::Expression
         | 
| @@ -575,18 +575,18 @@ class Regexp::Parser | |
| 575 575 | 
             
                options_stack.last
         | 
| 576 576 | 
             
              end
         | 
| 577 577 |  | 
| 578 | 
            -
              # Assigns referenced expressions to  | 
| 578 | 
            +
              # Assigns referenced expressions to referring expressions, e.g. if there is
         | 
| 579 579 | 
             
              # an instance of Backreference::Number, its #referenced_expression is set to
         | 
| 580 580 | 
             
              # the instance of Group::Capture that it refers to via its number.
         | 
| 581 581 | 
             
              def assign_referenced_expressions
         | 
| 582 | 
            -
                # find all  | 
| 582 | 
            +
                # find all referenceable and referring expressions
         | 
| 583 583 | 
             
                targets = { 0 => root }
         | 
| 584 584 | 
             
                referrers = []
         | 
| 585 585 | 
             
                root.each_expression do |exp|
         | 
| 586 586 | 
             
                  exp.is_a?(Group::Capture) && targets[exp.identifier] = exp
         | 
| 587 587 | 
             
                  referrers << exp if exp.referential?
         | 
| 588 588 | 
             
                end
         | 
| 589 | 
            -
                # assign reference expression to  | 
| 589 | 
            +
                # assign reference expression to referring expressions
         | 
| 590 590 | 
             
                # (in a second iteration because there might be forward references)
         | 
| 591 591 | 
             
                referrers.each do |exp|
         | 
| 592 592 | 
             
                  exp.referenced_expression = targets[exp.reference] ||
         | 
| @@ -78,8 +78,8 @@ | |
| 78 78 | 
             
              # try to treat every other group head as options group, like Ruby
         | 
| 79 79 | 
             
              group_options         = '?' . ( [^!#'():<=>~]+ . ':'? ) ?;
         | 
| 80 80 |  | 
| 81 | 
            -
              group_name_id_ab      = ([ | 
| 82 | 
            -
              group_name_id_sq      = ([^0-9\-'] | 
| 81 | 
            +
              group_name_id_ab      = ([^!=0-9\->] | utf8_multibyte) . ([^>] | utf8_multibyte)*;
         | 
| 82 | 
            +
              group_name_id_sq      = ([^0-9\-']   | utf8_multibyte) . ([^'] | utf8_multibyte)*;
         | 
| 83 83 | 
             
              group_number          = '-'? . [0-9]+;
         | 
| 84 84 | 
             
              group_level           = [+\-] . [0-9]+;
         | 
| 85 85 |  | 
| @@ -640,9 +640,9 @@ | |
| 640 640 | 
             
              *|;
         | 
| 641 641 | 
             
            }%%
         | 
| 642 642 |  | 
| 643 | 
            -
             | 
| 644 | 
            -
             | 
| 645 | 
            -
             | 
| 643 | 
            +
            require_relative 'scanner/errors/scanner_error'
         | 
| 644 | 
            +
            require_relative 'scanner/errors/premature_end_error'
         | 
| 645 | 
            +
            require_relative 'scanner/errors/validation_error'
         | 
| 646 646 |  | 
| 647 647 | 
             
            class Regexp::Scanner
         | 
| 648 648 | 
             
              # Scans the given regular expression text, or Regexp object and collects the
         |