regexp_parser 2.2.0 → 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -2
  3. data/LICENSE +1 -1
  4. data/README.md +2 -2
  5. data/Rakefile +5 -8
  6. data/lib/regexp_parser/expression/classes/escape_sequence.rb +12 -7
  7. data/lib/regexp_parser/expression/methods/strfregexp.rb +1 -1
  8. data/lib/regexp_parser/scanner/properties/long.csv +604 -0
  9. data/lib/regexp_parser/scanner/properties/short.csv +242 -0
  10. data/lib/regexp_parser/scanner/scanner.rl +6 -4
  11. data/lib/regexp_parser/scanner.rb +126 -124
  12. data/lib/regexp_parser/syntax/base.rb +3 -5
  13. data/lib/regexp_parser/syntax/token/backreference.rb +7 -2
  14. data/lib/regexp_parser/syntax/versions/1.8.6.rb +2 -2
  15. data/lib/regexp_parser/syntax/versions/1.9.1.rb +1 -1
  16. data/lib/regexp_parser/version.rb +1 -1
  17. data/regexp_parser.gemspec +20 -22
  18. metadata +11 -143
  19. data/lib/regexp_parser/scanner/properties/long.yml +0 -607
  20. data/lib/regexp_parser/scanner/properties/short.yml +0 -245
  21. data/spec/expression/base_spec.rb +0 -104
  22. data/spec/expression/clone_spec.rb +0 -152
  23. data/spec/expression/conditional_spec.rb +0 -89
  24. data/spec/expression/free_space_spec.rb +0 -27
  25. data/spec/expression/methods/match_length_spec.rb +0 -161
  26. data/spec/expression/methods/match_spec.rb +0 -25
  27. data/spec/expression/methods/strfregexp_spec.rb +0 -224
  28. data/spec/expression/methods/tests_spec.rb +0 -99
  29. data/spec/expression/methods/traverse_spec.rb +0 -161
  30. data/spec/expression/options_spec.rb +0 -128
  31. data/spec/expression/subexpression_spec.rb +0 -50
  32. data/spec/expression/to_h_spec.rb +0 -26
  33. data/spec/expression/to_s_spec.rb +0 -108
  34. data/spec/lexer/all_spec.rb +0 -22
  35. data/spec/lexer/conditionals_spec.rb +0 -53
  36. data/spec/lexer/delimiters_spec.rb +0 -68
  37. data/spec/lexer/escapes_spec.rb +0 -14
  38. data/spec/lexer/keep_spec.rb +0 -10
  39. data/spec/lexer/literals_spec.rb +0 -64
  40. data/spec/lexer/nesting_spec.rb +0 -99
  41. data/spec/lexer/refcalls_spec.rb +0 -60
  42. data/spec/parser/all_spec.rb +0 -43
  43. data/spec/parser/alternation_spec.rb +0 -88
  44. data/spec/parser/anchors_spec.rb +0 -17
  45. data/spec/parser/conditionals_spec.rb +0 -179
  46. data/spec/parser/errors_spec.rb +0 -30
  47. data/spec/parser/escapes_spec.rb +0 -133
  48. data/spec/parser/free_space_spec.rb +0 -130
  49. data/spec/parser/groups_spec.rb +0 -108
  50. data/spec/parser/keep_spec.rb +0 -6
  51. data/spec/parser/options_spec.rb +0 -28
  52. data/spec/parser/posix_classes_spec.rb +0 -8
  53. data/spec/parser/properties_spec.rb +0 -117
  54. data/spec/parser/quantifiers_spec.rb +0 -68
  55. data/spec/parser/refcalls_spec.rb +0 -117
  56. data/spec/parser/set/intersections_spec.rb +0 -127
  57. data/spec/parser/set/ranges_spec.rb +0 -121
  58. data/spec/parser/sets_spec.rb +0 -178
  59. data/spec/parser/types_spec.rb +0 -18
  60. data/spec/scanner/all_spec.rb +0 -18
  61. data/spec/scanner/anchors_spec.rb +0 -21
  62. data/spec/scanner/conditionals_spec.rb +0 -128
  63. data/spec/scanner/delimiters_spec.rb +0 -52
  64. data/spec/scanner/errors_spec.rb +0 -67
  65. data/spec/scanner/escapes_spec.rb +0 -73
  66. data/spec/scanner/free_space_spec.rb +0 -165
  67. data/spec/scanner/groups_spec.rb +0 -61
  68. data/spec/scanner/keep_spec.rb +0 -10
  69. data/spec/scanner/literals_spec.rb +0 -39
  70. data/spec/scanner/meta_spec.rb +0 -18
  71. data/spec/scanner/options_spec.rb +0 -36
  72. data/spec/scanner/properties_spec.rb +0 -64
  73. data/spec/scanner/quantifiers_spec.rb +0 -25
  74. data/spec/scanner/refcalls_spec.rb +0 -55
  75. data/spec/scanner/sets_spec.rb +0 -151
  76. data/spec/scanner/types_spec.rb +0 -14
  77. data/spec/spec_helper.rb +0 -28
  78. data/spec/support/capturing_stderr.rb +0 -9
  79. data/spec/support/shared_examples.rb +0 -77
  80. data/spec/syntax/syntax_spec.rb +0 -48
  81. data/spec/syntax/syntax_token_map_spec.rb +0 -23
  82. data/spec/syntax/versions/1.8.6_spec.rb +0 -17
  83. data/spec/syntax/versions/1.9.1_spec.rb +0 -10
  84. data/spec/syntax/versions/1.9.3_spec.rb +0 -9
  85. data/spec/syntax/versions/2.0.0_spec.rb +0 -13
  86. data/spec/syntax/versions/2.2.0_spec.rb +0 -9
  87. data/spec/syntax/versions/aliases_spec.rb +0 -38
  88. data/spec/token/token_spec.rb +0 -85
@@ -1,5 +1,3 @@
1
- require 'set'
2
-
3
1
  module Regexp::Syntax
4
2
  class NotImplementedError < Regexp::Syntax::SyntaxError
5
3
  def initialize(syntax, type, token)
@@ -23,15 +21,15 @@ module Regexp::Syntax
23
21
  end
24
22
 
25
23
  def implementations(type)
26
- @implements[type] ||= Set.new
24
+ @implements[type] ||= []
27
25
  end
28
26
 
29
27
  def implements(type, tokens)
30
- implementations(type).merge(Array(tokens))
28
+ implementations(type).concat(Array(tokens))
31
29
  end
32
30
 
33
31
  def excludes(type, tokens)
34
- implementations(type).subtract(Array(tokens))
32
+ Array(tokens).each { |tok| implementations(type).delete(tok) }
35
33
  end
36
34
 
37
35
  def implements?(type, token)
@@ -2,12 +2,17 @@ module Regexp::Syntax
2
2
  module Token
3
3
  module Backreference
4
4
  Plain = %i[number]
5
- Number = Plain + %i[number_ref number_rel_ref]
5
+ NumberRef = %i[number_ref number_rel_ref]
6
+ Number = Plain + NumberRef
6
7
  Name = %i[name_ref]
7
8
 
8
9
  RecursionLevel = %i[name_recursion_ref number_recursion_ref]
9
10
 
10
- All = Name + Number + RecursionLevel
11
+ V1_8_6 = Plain
12
+
13
+ V1_9_1 = Name + NumberRef + RecursionLevel
14
+
15
+ All = V1_8_6 + V1_9_1
11
16
  Type = :backref
12
17
  end
13
18
 
@@ -5,9 +5,9 @@ module Regexp::Syntax
5
5
 
6
6
  implements :anchor, Anchor::All
7
7
  implements :assertion, Assertion::Lookahead
8
- implements :backref, Backreference::Plain
8
+ implements :backref, Backreference::V1_8_6
9
9
  implements :posixclass, PosixClass::Standard
10
- implements :group, Group::All
10
+ implements :group, Group::V1_8_6
11
11
  implements :meta, Meta::Extended
12
12
  implements :set, CharacterSet::All
13
13
  implements :type, CharacterType::Extended
@@ -4,7 +4,7 @@ module Regexp::Syntax
4
4
  super
5
5
 
6
6
  implements :assertion, Assertion::Lookbehind
7
- implements :backref, Backreference::All + SubexpressionCall::All
7
+ implements :backref, Backreference::V1_9_1 + SubexpressionCall::All
8
8
  implements :posixclass, PosixClass::Extensions
9
9
  implements :nonposixclass, PosixClass::All
10
10
  implements :escape, Escape::Unicode + Escape::Hex + Escape::Octal
@@ -1,5 +1,5 @@
1
1
  class Regexp
2
2
  class Parser
3
- VERSION = '2.2.0'
3
+ VERSION = '2.2.1'
4
4
  end
5
5
  end
@@ -2,35 +2,33 @@ $:.unshift File.join(File.dirname(__FILE__), 'lib')
2
2
 
3
3
  require 'regexp_parser/version'
4
4
 
5
- Gem::Specification.new do |gem|
6
- gem.name = 'regexp_parser'
7
- gem.version = ::Regexp::Parser::VERSION
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'regexp_parser'
7
+ spec.version = ::Regexp::Parser::VERSION
8
8
 
9
- gem.summary = "Scanner, lexer, parser for ruby's regular expressions"
10
- gem.description = 'A library for tokenizing, lexing, and parsing Ruby regular expressions.'
11
- gem.homepage = 'https://github.com/ammar/regexp_parser'
9
+ spec.summary = "Scanner, lexer, parser for ruby's regular expressions"
10
+ spec.description = 'A library for tokenizing, lexing, and parsing Ruby regular expressions.'
11
+ spec.homepage = 'https://github.com/ammar/regexp_parser'
12
12
 
13
- if gem.respond_to?(:metadata)
14
- gem.metadata = { 'issue_tracker' => 'https://github.com/ammar/regexp_parser/issues' }
15
- end
13
+ spec.metadata['bug_tracker_uri'] = "#{spec.homepage}/issues"
14
+ spec.metadata['changelog_uri'] = "#{spec.homepage}/blob/master/CHANGELOG.md"
15
+ spec.metadata['homepage_uri'] = spec.homepage
16
+ spec.metadata['source_code_uri'] = spec.homepage
17
+ spec.metadata['wiki_uri'] = "#{spec.homepage}/wiki"
16
18
 
17
- gem.authors = ['Ammar Ali']
18
- gem.email = ['ammarabuali@gmail.com']
19
+ spec.authors = ['Ammar Ali']
20
+ spec.email = ['ammarabuali@gmail.com']
19
21
 
20
- gem.license = 'MIT'
22
+ spec.license = 'MIT'
21
23
 
22
- gem.require_paths = ['lib']
24
+ spec.require_paths = ['lib']
23
25
 
24
- gem.files = Dir.glob('{lib,spec}/**/*.rb') +
25
- Dir.glob('lib/**/*.rl') +
26
- Dir.glob('lib/**/*.yml') +
27
- %w(Gemfile Rakefile LICENSE README.md CHANGELOG.md regexp_parser.gemspec)
26
+ spec.files = Dir.glob('lib/**/*.{csv,rb,rl}') +
27
+ %w[Gemfile Rakefile LICENSE README.md CHANGELOG.md regexp_parser.gemspec]
28
28
 
29
- gem.test_files = Dir.glob('spec/**/*.rb')
29
+ spec.rdoc_options = ["--inline-source", "--charset=UTF-8"]
30
30
 
31
- gem.rdoc_options = ["--inline-source", "--charset=UTF-8"]
31
+ spec.platform = Gem::Platform::RUBY
32
32
 
33
- gem.platform = Gem::Platform::RUBY
34
-
35
- gem.required_ruby_version = '>= 2.0.0'
33
+ spec.required_ruby_version = '>= 2.0.0'
36
34
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: regexp_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 2.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ammar Ali
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-04 00:00:00.000000000 Z
11
+ date: 2022-02-11 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A library for tokenizing, lexing, and parsing Ruby regular expressions.
14
14
  email:
@@ -56,8 +56,8 @@ files:
56
56
  - lib/regexp_parser/parser.rb
57
57
  - lib/regexp_parser/scanner.rb
58
58
  - lib/regexp_parser/scanner/char_type.rl
59
- - lib/regexp_parser/scanner/properties/long.yml
60
- - lib/regexp_parser/scanner/properties/short.yml
59
+ - lib/regexp_parser/scanner/properties/long.csv
60
+ - lib/regexp_parser/scanner/properties/short.csv
61
61
  - lib/regexp_parser/scanner/property.rl
62
62
  - lib/regexp_parser/scanner/scanner.rl
63
63
  - lib/regexp_parser/syntax.rb
@@ -95,79 +95,15 @@ files:
95
95
  - lib/regexp_parser/token.rb
96
96
  - lib/regexp_parser/version.rb
97
97
  - regexp_parser.gemspec
98
- - spec/expression/base_spec.rb
99
- - spec/expression/clone_spec.rb
100
- - spec/expression/conditional_spec.rb
101
- - spec/expression/free_space_spec.rb
102
- - spec/expression/methods/match_length_spec.rb
103
- - spec/expression/methods/match_spec.rb
104
- - spec/expression/methods/strfregexp_spec.rb
105
- - spec/expression/methods/tests_spec.rb
106
- - spec/expression/methods/traverse_spec.rb
107
- - spec/expression/options_spec.rb
108
- - spec/expression/subexpression_spec.rb
109
- - spec/expression/to_h_spec.rb
110
- - spec/expression/to_s_spec.rb
111
- - spec/lexer/all_spec.rb
112
- - spec/lexer/conditionals_spec.rb
113
- - spec/lexer/delimiters_spec.rb
114
- - spec/lexer/escapes_spec.rb
115
- - spec/lexer/keep_spec.rb
116
- - spec/lexer/literals_spec.rb
117
- - spec/lexer/nesting_spec.rb
118
- - spec/lexer/refcalls_spec.rb
119
- - spec/parser/all_spec.rb
120
- - spec/parser/alternation_spec.rb
121
- - spec/parser/anchors_spec.rb
122
- - spec/parser/conditionals_spec.rb
123
- - spec/parser/errors_spec.rb
124
- - spec/parser/escapes_spec.rb
125
- - spec/parser/free_space_spec.rb
126
- - spec/parser/groups_spec.rb
127
- - spec/parser/keep_spec.rb
128
- - spec/parser/options_spec.rb
129
- - spec/parser/posix_classes_spec.rb
130
- - spec/parser/properties_spec.rb
131
- - spec/parser/quantifiers_spec.rb
132
- - spec/parser/refcalls_spec.rb
133
- - spec/parser/set/intersections_spec.rb
134
- - spec/parser/set/ranges_spec.rb
135
- - spec/parser/sets_spec.rb
136
- - spec/parser/types_spec.rb
137
- - spec/scanner/all_spec.rb
138
- - spec/scanner/anchors_spec.rb
139
- - spec/scanner/conditionals_spec.rb
140
- - spec/scanner/delimiters_spec.rb
141
- - spec/scanner/errors_spec.rb
142
- - spec/scanner/escapes_spec.rb
143
- - spec/scanner/free_space_spec.rb
144
- - spec/scanner/groups_spec.rb
145
- - spec/scanner/keep_spec.rb
146
- - spec/scanner/literals_spec.rb
147
- - spec/scanner/meta_spec.rb
148
- - spec/scanner/options_spec.rb
149
- - spec/scanner/properties_spec.rb
150
- - spec/scanner/quantifiers_spec.rb
151
- - spec/scanner/refcalls_spec.rb
152
- - spec/scanner/sets_spec.rb
153
- - spec/scanner/types_spec.rb
154
- - spec/spec_helper.rb
155
- - spec/support/capturing_stderr.rb
156
- - spec/support/shared_examples.rb
157
- - spec/syntax/syntax_spec.rb
158
- - spec/syntax/syntax_token_map_spec.rb
159
- - spec/syntax/versions/1.8.6_spec.rb
160
- - spec/syntax/versions/1.9.1_spec.rb
161
- - spec/syntax/versions/1.9.3_spec.rb
162
- - spec/syntax/versions/2.0.0_spec.rb
163
- - spec/syntax/versions/2.2.0_spec.rb
164
- - spec/syntax/versions/aliases_spec.rb
165
- - spec/token/token_spec.rb
166
98
  homepage: https://github.com/ammar/regexp_parser
167
99
  licenses:
168
100
  - MIT
169
101
  metadata:
170
- issue_tracker: https://github.com/ammar/regexp_parser/issues
102
+ bug_tracker_uri: https://github.com/ammar/regexp_parser/issues
103
+ changelog_uri: https://github.com/ammar/regexp_parser/blob/master/CHANGELOG.md
104
+ homepage_uri: https://github.com/ammar/regexp_parser
105
+ source_code_uri: https://github.com/ammar/regexp_parser
106
+ wiki_uri: https://github.com/ammar/regexp_parser/wiki
171
107
  post_install_message:
172
108
  rdoc_options:
173
109
  - "--inline-source"
@@ -185,76 +121,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
121
  - !ruby/object:Gem::Version
186
122
  version: '0'
187
123
  requirements: []
188
- rubygems_version: 3.3.0.dev
124
+ rubygems_version: 3.3.3
189
125
  signing_key:
190
126
  specification_version: 4
191
127
  summary: Scanner, lexer, parser for ruby's regular expressions
192
- test_files:
193
- - spec/expression/base_spec.rb
194
- - spec/expression/clone_spec.rb
195
- - spec/expression/conditional_spec.rb
196
- - spec/expression/free_space_spec.rb
197
- - spec/expression/methods/match_length_spec.rb
198
- - spec/expression/methods/match_spec.rb
199
- - spec/expression/methods/strfregexp_spec.rb
200
- - spec/expression/methods/tests_spec.rb
201
- - spec/expression/methods/traverse_spec.rb
202
- - spec/expression/options_spec.rb
203
- - spec/expression/subexpression_spec.rb
204
- - spec/expression/to_h_spec.rb
205
- - spec/expression/to_s_spec.rb
206
- - spec/lexer/all_spec.rb
207
- - spec/lexer/conditionals_spec.rb
208
- - spec/lexer/delimiters_spec.rb
209
- - spec/lexer/escapes_spec.rb
210
- - spec/lexer/keep_spec.rb
211
- - spec/lexer/literals_spec.rb
212
- - spec/lexer/nesting_spec.rb
213
- - spec/lexer/refcalls_spec.rb
214
- - spec/parser/all_spec.rb
215
- - spec/parser/alternation_spec.rb
216
- - spec/parser/anchors_spec.rb
217
- - spec/parser/conditionals_spec.rb
218
- - spec/parser/errors_spec.rb
219
- - spec/parser/escapes_spec.rb
220
- - spec/parser/free_space_spec.rb
221
- - spec/parser/groups_spec.rb
222
- - spec/parser/keep_spec.rb
223
- - spec/parser/options_spec.rb
224
- - spec/parser/posix_classes_spec.rb
225
- - spec/parser/properties_spec.rb
226
- - spec/parser/quantifiers_spec.rb
227
- - spec/parser/refcalls_spec.rb
228
- - spec/parser/set/intersections_spec.rb
229
- - spec/parser/set/ranges_spec.rb
230
- - spec/parser/sets_spec.rb
231
- - spec/parser/types_spec.rb
232
- - spec/scanner/all_spec.rb
233
- - spec/scanner/anchors_spec.rb
234
- - spec/scanner/conditionals_spec.rb
235
- - spec/scanner/delimiters_spec.rb
236
- - spec/scanner/errors_spec.rb
237
- - spec/scanner/escapes_spec.rb
238
- - spec/scanner/free_space_spec.rb
239
- - spec/scanner/groups_spec.rb
240
- - spec/scanner/keep_spec.rb
241
- - spec/scanner/literals_spec.rb
242
- - spec/scanner/meta_spec.rb
243
- - spec/scanner/options_spec.rb
244
- - spec/scanner/properties_spec.rb
245
- - spec/scanner/quantifiers_spec.rb
246
- - spec/scanner/refcalls_spec.rb
247
- - spec/scanner/sets_spec.rb
248
- - spec/scanner/types_spec.rb
249
- - spec/spec_helper.rb
250
- - spec/support/capturing_stderr.rb
251
- - spec/support/shared_examples.rb
252
- - spec/syntax/syntax_spec.rb
253
- - spec/syntax/syntax_token_map_spec.rb
254
- - spec/syntax/versions/1.8.6_spec.rb
255
- - spec/syntax/versions/1.9.1_spec.rb
256
- - spec/syntax/versions/1.9.3_spec.rb
257
- - spec/syntax/versions/2.0.0_spec.rb
258
- - spec/syntax/versions/2.2.0_spec.rb
259
- - spec/syntax/versions/aliases_spec.rb
260
- - spec/token/token_spec.rb
128
+ test_files: []