regexp_parser 2.8.1 → 2.12.0
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/Gemfile +6 -4
- data/LICENSE +1 -1
- data/Rakefile +5 -3
- data/lib/regexp_parser/error.rb +2 -0
- data/lib/regexp_parser/expression/base.rb +2 -0
- data/lib/regexp_parser/expression/classes/alternation.rb +2 -0
- data/lib/regexp_parser/expression/classes/anchor.rb +2 -0
- data/lib/regexp_parser/expression/classes/backreference.rb +3 -20
- data/lib/regexp_parser/expression/classes/character_set/intersection.rb +2 -0
- data/lib/regexp_parser/expression/classes/character_set/range.rb +2 -0
- data/lib/regexp_parser/expression/classes/character_set.rb +3 -4
- data/lib/regexp_parser/expression/classes/character_type.rb +2 -0
- data/lib/regexp_parser/expression/classes/conditional.rb +2 -14
- data/lib/regexp_parser/expression/classes/escape_sequence.rb +26 -95
- data/lib/regexp_parser/expression/classes/free_space.rb +2 -0
- data/lib/regexp_parser/expression/classes/group.rb +2 -0
- data/lib/regexp_parser/expression/classes/keep.rb +3 -1
- data/lib/regexp_parser/expression/classes/literal.rb +2 -0
- data/lib/regexp_parser/expression/classes/posix_class.rb +2 -4
- data/lib/regexp_parser/expression/classes/root.rb +2 -0
- data/lib/regexp_parser/expression/classes/unicode_property.rb +8 -9
- data/lib/regexp_parser/expression/methods/construct.rb +2 -0
- data/lib/regexp_parser/expression/methods/escape_sequence_char.rb +7 -0
- data/lib/regexp_parser/expression/methods/escape_sequence_codepoint.rb +76 -0
- data/lib/regexp_parser/expression/methods/human_name.rb +2 -0
- data/lib/regexp_parser/expression/methods/match.rb +2 -0
- data/lib/regexp_parser/expression/methods/match_length.rb +2 -0
- data/lib/regexp_parser/expression/methods/negative.rb +22 -0
- data/lib/regexp_parser/expression/methods/options.rb +2 -0
- data/lib/regexp_parser/expression/methods/parts.rb +2 -0
- data/lib/regexp_parser/expression/methods/printing.rb +2 -0
- data/lib/regexp_parser/expression/methods/referenced_expressions.rb +30 -0
- data/lib/regexp_parser/expression/methods/strfregexp.rb +2 -0
- data/lib/regexp_parser/expression/methods/tests.rb +2 -0
- data/lib/regexp_parser/expression/methods/traverse.rb +2 -0
- data/lib/regexp_parser/expression/quantifier.rb +3 -1
- data/lib/regexp_parser/expression/sequence.rb +2 -0
- data/lib/regexp_parser/expression/sequence_operation.rb +2 -0
- data/lib/regexp_parser/expression/shared.rb +6 -3
- data/lib/regexp_parser/expression/subexpression.rb +2 -0
- data/lib/regexp_parser/expression.rb +39 -33
- data/lib/regexp_parser/lexer.rb +2 -0
- data/lib/regexp_parser/parser.rb +16 -9
- data/lib/regexp_parser/scanner/errors/premature_end_error.rb +2 -0
- data/lib/regexp_parser/scanner/errors/scanner_error.rb +3 -1
- data/lib/regexp_parser/scanner/errors/validation_error.rb +2 -0
- data/lib/regexp_parser/scanner/properties/long.csv +50 -0
- data/lib/regexp_parser/scanner/properties/short.csv +13 -0
- data/lib/regexp_parser/scanner/scanner.rl +62 -18
- data/lib/regexp_parser/scanner.rb +1041 -936
- data/lib/regexp_parser/syntax/any.rb +2 -0
- data/lib/regexp_parser/syntax/base.rb +2 -0
- data/lib/regexp_parser/syntax/token/anchor.rb +5 -3
- data/lib/regexp_parser/syntax/token/assertion.rb +4 -2
- data/lib/regexp_parser/syntax/token/backreference.rb +8 -6
- data/lib/regexp_parser/syntax/token/character_set.rb +3 -1
- data/lib/regexp_parser/syntax/token/character_type.rb +6 -4
- data/lib/regexp_parser/syntax/token/conditional.rb +5 -3
- data/lib/regexp_parser/syntax/token/escape.rb +9 -7
- data/lib/regexp_parser/syntax/token/group.rb +8 -6
- data/lib/regexp_parser/syntax/token/keep.rb +3 -1
- data/lib/regexp_parser/syntax/token/meta.rb +4 -2
- data/lib/regexp_parser/syntax/token/posix_class.rb +4 -2
- data/lib/regexp_parser/syntax/token/quantifier.rb +8 -6
- data/lib/regexp_parser/syntax/token/unicode_property.rb +149 -71
- data/lib/regexp_parser/syntax/token/virtual.rb +5 -3
- data/lib/regexp_parser/syntax/token.rb +18 -16
- data/lib/regexp_parser/syntax/version_lookup.rb +4 -2
- data/lib/regexp_parser/syntax/versions/1.8.6.rb +2 -0
- data/lib/regexp_parser/syntax/versions/1.9.1.rb +2 -0
- data/lib/regexp_parser/syntax/versions/1.9.3.rb +2 -0
- data/lib/regexp_parser/syntax/versions/2.0.0.rb +2 -0
- data/lib/regexp_parser/syntax/versions/2.2.0.rb +2 -0
- data/lib/regexp_parser/syntax/versions/2.3.0.rb +2 -0
- data/lib/regexp_parser/syntax/versions/2.4.0.rb +2 -0
- data/lib/regexp_parser/syntax/versions/2.4.1.rb +2 -0
- data/lib/regexp_parser/syntax/versions/2.5.0.rb +2 -0
- data/lib/regexp_parser/syntax/versions/2.6.0.rb +2 -0
- data/lib/regexp_parser/syntax/versions/2.6.2.rb +2 -0
- data/lib/regexp_parser/syntax/versions/2.6.3.rb +2 -0
- data/lib/regexp_parser/syntax/versions/3.1.0.rb +2 -0
- data/lib/regexp_parser/syntax/versions/3.2.0.rb +2 -0
- data/lib/regexp_parser/syntax/versions/3.5.0.rb +4 -0
- data/lib/regexp_parser/syntax/versions/4.0.0.rb +4 -0
- data/lib/regexp_parser/syntax/versions.rb +3 -1
- data/lib/regexp_parser/syntax.rb +3 -1
- data/lib/regexp_parser/token.rb +2 -0
- data/lib/regexp_parser/version.rb +3 -1
- data/lib/regexp_parser.rb +8 -6
- data/regexp_parser.gemspec +7 -5
- metadata +13 -11
- data/CHANGELOG.md +0 -691
- data/README.md +0 -506
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Regexp::Syntax
|
|
2
4
|
module Token
|
|
3
5
|
module Virtual
|
|
4
|
-
Root = %i[root]
|
|
5
|
-
Sequence = %i[sequence]
|
|
6
|
+
Root = %i[root].freeze
|
|
7
|
+
Sequence = %i[sequence].freeze
|
|
6
8
|
|
|
7
|
-
All = %i[root sequence]
|
|
9
|
+
All = %i[root sequence].freeze
|
|
8
10
|
Type = :expression
|
|
9
11
|
end
|
|
10
12
|
end
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
# Define the base module and the simplest of tokens.
|
|
2
4
|
module Regexp::Syntax
|
|
3
5
|
module Token
|
|
4
|
-
Map =
|
|
6
|
+
Map = Hash.new
|
|
5
7
|
|
|
6
8
|
module Literal
|
|
7
|
-
All = %i[literal]
|
|
9
|
+
All = %i[literal].freeze
|
|
8
10
|
Type = :literal
|
|
9
11
|
end
|
|
10
12
|
|
|
11
13
|
module FreeSpace
|
|
12
|
-
All = %i[comment whitespace]
|
|
14
|
+
All = %i[comment whitespace].freeze
|
|
13
15
|
Type = :free_space
|
|
14
16
|
end
|
|
15
17
|
|
|
@@ -20,19 +22,19 @@ end
|
|
|
20
22
|
|
|
21
23
|
|
|
22
24
|
# Load all the token files, they will populate the Map constant.
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
25
|
+
require_relative 'token/anchor'
|
|
26
|
+
require_relative 'token/assertion'
|
|
27
|
+
require_relative 'token/backreference'
|
|
28
|
+
require_relative 'token/posix_class'
|
|
29
|
+
require_relative 'token/character_set'
|
|
30
|
+
require_relative 'token/character_type'
|
|
31
|
+
require_relative 'token/conditional'
|
|
32
|
+
require_relative 'token/escape'
|
|
33
|
+
require_relative 'token/group'
|
|
34
|
+
require_relative 'token/keep'
|
|
35
|
+
require_relative 'token/meta'
|
|
36
|
+
require_relative 'token/quantifier'
|
|
37
|
+
require_relative 'token/unicode_property'
|
|
36
38
|
|
|
37
39
|
|
|
38
40
|
# After loading all the tokens the map is full. Extract all tokens and types
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
module Regexp::Syntax
|
|
2
4
|
VERSION_FORMAT = '\Aruby/\d+\.\d+(\.\d+)?\z'
|
|
3
|
-
VERSION_REGEXP = /#{VERSION_FORMAT}
|
|
4
|
-
VERSION_CONST_REGEXP = /\AV\d+_\d+(?:_\d+)?\z
|
|
5
|
+
VERSION_REGEXP = /#{VERSION_FORMAT}/.freeze
|
|
6
|
+
VERSION_CONST_REGEXP = /\AV\d+_\d+(?:_\d+)?\z/.freeze
|
|
5
7
|
|
|
6
8
|
class InvalidVersionNameError < Regexp::Syntax::SyntaxError
|
|
7
9
|
def initialize(name)
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
# Ruby 1.x is no longer a supported runtime,
|
|
2
4
|
# but its regex features are still recognized.
|
|
3
5
|
#
|
|
4
6
|
# Aliases for the latest patch version are provided as 'ruby/n.n',
|
|
5
7
|
# e.g. 'ruby/1.9' refers to Ruby v1.9.3.
|
|
6
|
-
Dir[File.expand_path('../versions/*.rb', __FILE__)].sort.each { |f|
|
|
8
|
+
Dir[File.expand_path('../versions/*.rb', __FILE__)].sort.each { |f| require_relative f }
|
|
7
9
|
|
|
8
10
|
Regexp::Syntax::CURRENT = Regexp::Syntax.for("ruby/#{RUBY_VERSION}")
|
data/lib/regexp_parser/syntax.rb
CHANGED
data/lib/regexp_parser/token.rb
CHANGED
data/lib/regexp_parser.rb
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'regexp_parser/version'
|
|
4
|
+
require_relative 'regexp_parser/token'
|
|
5
|
+
require_relative 'regexp_parser/scanner'
|
|
6
|
+
require_relative 'regexp_parser/syntax'
|
|
7
|
+
require_relative 'regexp_parser/lexer'
|
|
8
|
+
require_relative 'regexp_parser/parser'
|
data/regexp_parser.gemspec
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
$:.unshift File.join(File.dirname(__FILE__), 'lib')
|
|
2
4
|
|
|
3
5
|
require 'regexp_parser/version'
|
|
@@ -16,17 +18,17 @@ Gem::Specification.new do |spec|
|
|
|
16
18
|
spec.metadata['source_code_uri'] = spec.homepage
|
|
17
19
|
spec.metadata['wiki_uri'] = "#{spec.homepage}/wiki"
|
|
18
20
|
|
|
19
|
-
spec.
|
|
20
|
-
|
|
21
|
+
spec.metadata['rubygems_mfa_required'] = 'true'
|
|
22
|
+
|
|
23
|
+
spec.authors = ['Ammar Ali', 'Janosch Müller']
|
|
24
|
+
spec.email = ['ammarabuali@gmail.com', 'janosch84@gmail.com']
|
|
21
25
|
|
|
22
26
|
spec.license = 'MIT'
|
|
23
27
|
|
|
24
28
|
spec.require_paths = ['lib']
|
|
25
29
|
|
|
26
30
|
spec.files = Dir.glob('lib/**/*.{csv,rb,rl}') +
|
|
27
|
-
%w[Gemfile Rakefile LICENSE
|
|
28
|
-
|
|
29
|
-
spec.rdoc_options = ["--inline-source", "--charset=UTF-8"]
|
|
31
|
+
%w[Gemfile Rakefile LICENSE regexp_parser.gemspec]
|
|
30
32
|
|
|
31
33
|
spec.platform = Gem::Platform::RUBY
|
|
32
34
|
|
metadata
CHANGED
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: regexp_parser
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.12.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ammar Ali
|
|
8
|
-
|
|
8
|
+
- Janosch Müller
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: A library for tokenizing, lexing, and parsing Ruby regular expressions.
|
|
14
14
|
email:
|
|
15
15
|
- ammarabuali@gmail.com
|
|
16
|
+
- janosch84@gmail.com
|
|
16
17
|
executables: []
|
|
17
18
|
extensions: []
|
|
18
19
|
extra_rdoc_files: []
|
|
19
20
|
files:
|
|
20
|
-
- CHANGELOG.md
|
|
21
21
|
- Gemfile
|
|
22
22
|
- LICENSE
|
|
23
|
-
- README.md
|
|
24
23
|
- Rakefile
|
|
25
24
|
- lib/regexp_parser.rb
|
|
26
25
|
- lib/regexp_parser/error.rb
|
|
@@ -43,12 +42,16 @@ files:
|
|
|
43
42
|
- lib/regexp_parser/expression/classes/root.rb
|
|
44
43
|
- lib/regexp_parser/expression/classes/unicode_property.rb
|
|
45
44
|
- lib/regexp_parser/expression/methods/construct.rb
|
|
45
|
+
- lib/regexp_parser/expression/methods/escape_sequence_char.rb
|
|
46
|
+
- lib/regexp_parser/expression/methods/escape_sequence_codepoint.rb
|
|
46
47
|
- lib/regexp_parser/expression/methods/human_name.rb
|
|
47
48
|
- lib/regexp_parser/expression/methods/match.rb
|
|
48
49
|
- lib/regexp_parser/expression/methods/match_length.rb
|
|
50
|
+
- lib/regexp_parser/expression/methods/negative.rb
|
|
49
51
|
- lib/regexp_parser/expression/methods/options.rb
|
|
50
52
|
- lib/regexp_parser/expression/methods/parts.rb
|
|
51
53
|
- lib/regexp_parser/expression/methods/printing.rb
|
|
54
|
+
- lib/regexp_parser/expression/methods/referenced_expressions.rb
|
|
52
55
|
- lib/regexp_parser/expression/methods/strfregexp.rb
|
|
53
56
|
- lib/regexp_parser/expression/methods/tests.rb
|
|
54
57
|
- lib/regexp_parser/expression/methods/traverse.rb
|
|
@@ -102,6 +105,8 @@ files:
|
|
|
102
105
|
- lib/regexp_parser/syntax/versions/2.6.3.rb
|
|
103
106
|
- lib/regexp_parser/syntax/versions/3.1.0.rb
|
|
104
107
|
- lib/regexp_parser/syntax/versions/3.2.0.rb
|
|
108
|
+
- lib/regexp_parser/syntax/versions/3.5.0.rb
|
|
109
|
+
- lib/regexp_parser/syntax/versions/4.0.0.rb
|
|
105
110
|
- lib/regexp_parser/token.rb
|
|
106
111
|
- lib/regexp_parser/version.rb
|
|
107
112
|
- regexp_parser.gemspec
|
|
@@ -114,10 +119,8 @@ metadata:
|
|
|
114
119
|
homepage_uri: https://github.com/ammar/regexp_parser
|
|
115
120
|
source_code_uri: https://github.com/ammar/regexp_parser
|
|
116
121
|
wiki_uri: https://github.com/ammar/regexp_parser/wiki
|
|
117
|
-
|
|
118
|
-
rdoc_options:
|
|
119
|
-
- "--inline-source"
|
|
120
|
-
- "--charset=UTF-8"
|
|
122
|
+
rubygems_mfa_required: 'true'
|
|
123
|
+
rdoc_options: []
|
|
121
124
|
require_paths:
|
|
122
125
|
- lib
|
|
123
126
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
@@ -131,8 +134,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
131
134
|
- !ruby/object:Gem::Version
|
|
132
135
|
version: '0'
|
|
133
136
|
requirements: []
|
|
134
|
-
rubygems_version:
|
|
135
|
-
signing_key:
|
|
137
|
+
rubygems_version: 4.0.3
|
|
136
138
|
specification_version: 4
|
|
137
139
|
summary: Scanner, lexer, parser for ruby's regular expressions
|
|
138
140
|
test_files: []
|