regexp_parser 1.5.0 → 1.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +14 -0
  3. data/lib/regexp_parser/expression.rb +6 -43
  4. data/lib/regexp_parser/expression/classes/conditional.rb +3 -2
  5. data/lib/regexp_parser/expression/classes/escape.rb +0 -4
  6. data/lib/regexp_parser/expression/methods/match.rb +13 -0
  7. data/lib/regexp_parser/expression/methods/options.rb +35 -0
  8. data/lib/regexp_parser/expression/methods/strfregexp.rb +0 -1
  9. data/lib/regexp_parser/expression/methods/tests.rb +6 -15
  10. data/lib/regexp_parser/expression/sequence.rb +3 -2
  11. data/lib/regexp_parser/expression/sequence_operation.rb +2 -6
  12. data/lib/regexp_parser/lexer.rb +0 -21
  13. data/lib/regexp_parser/parser.rb +22 -21
  14. data/lib/regexp_parser/scanner.rb +1159 -1329
  15. data/lib/regexp_parser/scanner/char_type.rl +0 -3
  16. data/lib/regexp_parser/scanner/scanner.rl +82 -190
  17. data/lib/regexp_parser/version.rb +1 -1
  18. data/spec/expression/base_spec.rb +14 -0
  19. data/spec/expression/methods/match_length_spec.rb +13 -0
  20. data/spec/expression/methods/match_spec.rb +25 -0
  21. data/spec/expression/methods/tests_spec.rb +2 -0
  22. data/spec/expression/options_spec.rb +128 -0
  23. data/spec/expression/root_spec.rb +9 -0
  24. data/spec/expression/sequence_spec.rb +9 -0
  25. data/spec/lexer/conditionals_spec.rb +49 -119
  26. data/spec/lexer/escapes_spec.rb +8 -32
  27. data/spec/lexer/keep_spec.rb +5 -17
  28. data/spec/lexer/literals_spec.rb +73 -110
  29. data/spec/lexer/nesting_spec.rb +86 -117
  30. data/spec/lexer/refcalls_spec.rb +51 -50
  31. data/spec/parser/all_spec.rb +13 -1
  32. data/spec/parser/anchors_spec.rb +9 -23
  33. data/spec/parser/conditionals_spec.rb +9 -9
  34. data/spec/parser/errors_spec.rb +22 -43
  35. data/spec/parser/escapes_spec.rb +33 -44
  36. data/spec/parser/groups_spec.rb +98 -257
  37. data/spec/parser/keep_spec.rb +2 -15
  38. data/spec/parser/posix_classes_spec.rb +5 -24
  39. data/spec/parser/properties_spec.rb +42 -54
  40. data/spec/parser/quantifiers_spec.rb +41 -283
  41. data/spec/parser/refcalls_spec.rb +60 -185
  42. data/spec/parser/set/intersections_spec.rb +17 -17
  43. data/spec/parser/set/ranges_spec.rb +17 -17
  44. data/spec/parser/sets_spec.rb +5 -5
  45. data/spec/parser/types_spec.rb +11 -36
  46. data/spec/scanner/anchors_spec.rb +13 -28
  47. data/spec/scanner/conditionals_spec.rb +121 -173
  48. data/spec/scanner/errors_spec.rb +65 -87
  49. data/spec/scanner/escapes_spec.rb +49 -50
  50. data/spec/scanner/free_space_spec.rb +102 -165
  51. data/spec/scanner/groups_spec.rb +45 -64
  52. data/spec/scanner/keep_spec.rb +5 -28
  53. data/spec/scanner/literals_spec.rb +45 -81
  54. data/spec/scanner/meta_spec.rb +13 -33
  55. data/spec/scanner/properties_spec.rb +43 -286
  56. data/spec/scanner/quantifiers_spec.rb +13 -28
  57. data/spec/scanner/refcalls_spec.rb +32 -48
  58. data/spec/scanner/sets_spec.rb +88 -102
  59. data/spec/scanner/types_spec.rb +10 -25
  60. data/spec/spec_helper.rb +1 -0
  61. data/spec/support/shared_examples.rb +77 -0
  62. data/spec/syntax/syntax_spec.rb +4 -0
  63. data/spec/syntax/versions/1.8.6_spec.rb +12 -33
  64. data/spec/syntax/versions/1.9.1_spec.rb +5 -18
  65. data/spec/syntax/versions/1.9.3_spec.rb +4 -17
  66. data/spec/syntax/versions/2.0.0_spec.rb +8 -23
  67. data/spec/syntax/versions/2.2.0_spec.rb +4 -17
  68. data/spec/syntax/versions/aliases_spec.rb +25 -109
  69. metadata +14 -6
  70. data/spec/scanner/scripts_spec.rb +0 -49
  71. data/spec/scanner/unicode_blocks_spec.rb +0 -28
@@ -1,61 +1,66 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  RSpec.describe('Refcall parsing') do
4
- specify('parse traditional number backref') do
5
- root = RP.parse('(abc)\\1', 'ruby/1.9')
6
- exp = root[1]
7
-
8
- expect(exp).to be_instance_of(Backreference::Number)
9
- expect(exp.number).to eq 1
10
- end
11
-
12
- specify('parse backref named ab') do
13
- root = RP.parse('(?<X>abc)\\k<X>', 'ruby/1.9')
14
- exp = root[1]
15
-
16
- expect(exp).to be_instance_of(Backreference::Name)
17
- expect(exp.name).to eq 'X'
18
- end
19
-
20
- specify('parse backref named sq') do
21
- root = RP.parse("(?<X>abc)\\k'X'", 'ruby/1.9')
22
- exp = root[1]
23
-
24
- expect(exp).to be_instance_of(Backreference::Name)
25
- expect(exp.name).to eq 'X'
26
- end
27
-
28
- specify('parse backref number ab') do
29
- root = RP.parse('(abc)\\k<1>', 'ruby/1.9')
30
- exp = root[1]
31
-
32
- expect(exp).to be_instance_of(Backreference::Number)
33
- expect(exp.number).to eq 1
34
- end
35
-
36
- specify('parse backref number sq') do
37
- root = RP.parse("(abc)\\k'1'", 'ruby/1.9')
38
- exp = root[1]
39
-
40
- expect(exp).to be_instance_of(Backreference::Number)
41
- expect(exp.number).to eq 1
42
- end
43
-
44
- specify('parse backref number relative ab') do
45
- root = RP.parse('(abc)\\k<-1>', 'ruby/1.9')
46
- exp = root[1]
47
-
48
- expect(exp).to be_instance_of(Backreference::NumberRelative)
49
- expect(exp.number).to eq(-1)
50
- end
51
-
52
- specify('parse backref number relative sq') do
53
- root = RP.parse("(abc)\\k'-1'", 'ruby/1.9')
54
- exp = root[1]
55
-
56
- expect(exp).to be_instance_of(Backreference::NumberRelative)
57
- expect(exp.number).to eq(-1)
58
- end
4
+ include_examples 'parse', /(abc)\1/,
5
+ 1 => [:backref, :number, Backreference::Number, number: 1]
6
+
7
+ include_examples 'parse', /(?<X>abc)\k<X>/,
8
+ 1 => [:backref, :name_ref, Backreference::Name, name: 'X']
9
+ include_examples 'parse', /(?<X>abc)\k'X'/,
10
+ 1 => [:backref, :name_ref, Backreference::Name, name: 'X']
11
+
12
+ include_examples 'parse', /(abc)\k<1>/,
13
+ 1 => [:backref, :number_ref, Backreference::Number, number: 1]
14
+ include_examples 'parse', /(abc)\k'1'/,
15
+ 1 => [:backref, :number_ref, Backreference::Number, number: 1]
16
+
17
+ include_examples 'parse', /(abc)\k<-1>/,
18
+ 1 => [:backref, :number_rel_ref, Backreference::NumberRelative, number: -1]
19
+ include_examples 'parse', /(abc)\k'-1'/,
20
+ 1 => [:backref, :number_rel_ref, Backreference::NumberRelative, number: -1]
21
+
22
+ include_examples 'parse', /(?<X>abc)\g<X>/,
23
+ 1 => [:backref, :name_call, Backreference::NameCall, name: 'X']
24
+ include_examples 'parse', /(?<X>abc)\g'X'/,
25
+ 1 => [:backref, :name_call, Backreference::NameCall, name: 'X']
26
+
27
+ include_examples 'parse', /(abc)\g<1>/,
28
+ 1 => [:backref, :number_call, Backreference::NumberCall, number: 1]
29
+ include_examples 'parse', /(abc)\g'1'/,
30
+ 1 => [:backref, :number_call, Backreference::NumberCall, number: 1]
31
+
32
+ include_examples 'parse', /(abc)\g<-1>/,
33
+ 1 => [:backref, :number_rel_call, Backreference::NumberCallRelative, number: -1]
34
+ include_examples 'parse', /(abc)\g'-1'/,
35
+ 1 => [:backref, :number_rel_call, Backreference::NumberCallRelative, number: -1]
36
+
37
+ include_examples 'parse', /\g<+1>(abc)/,
38
+ 0 => [:backref, :number_rel_call, Backreference::NumberCallRelative, number: 1]
39
+ include_examples 'parse', /\g'+1'(abc)/,
40
+ 0 => [:backref, :number_rel_call, Backreference::NumberCallRelative, number: 1]
41
+
42
+ include_examples 'parse', /(?<X>abc)\k<X-0>/,
43
+ 1 => [:backref, :name_recursion_ref, Backreference::NameRecursionLevel,
44
+ name: 'X', recursion_level: 0]
45
+ include_examples 'parse', /(?<X>abc)\k'X-0'/,
46
+ 1 => [:backref, :name_recursion_ref, Backreference::NameRecursionLevel,
47
+ name: 'X', recursion_level: 0]
48
+
49
+ include_examples 'parse', /(abc)\k<1-0>/,
50
+ 1 => [:backref, :number_recursion_ref, Backreference::NumberRecursionLevel,
51
+ number: 1, recursion_level: 0]
52
+ include_examples 'parse', /(abc)\k'1-0'/,
53
+ 1 => [:backref, :number_recursion_ref, Backreference::NumberRecursionLevel,
54
+ number: 1, recursion_level: 0]
55
+ include_examples 'parse', /(abc)\k'-1+0'/,
56
+ 1 => [:backref, :number_recursion_ref, Backreference::NumberRecursionLevel,
57
+ number: -1, recursion_level: 0]
58
+ include_examples 'parse', /(abc)\k'1+1'/,
59
+ 1 => [:backref, :number_recursion_ref, Backreference::NumberRecursionLevel,
60
+ number: 1, recursion_level: 1]
61
+ include_examples 'parse', /(abc)\k'1-1'/,
62
+ 1 => [:backref, :number_recursion_ref, Backreference::NumberRecursionLevel,
63
+ number: 1, recursion_level: -1]
59
64
 
60
65
  specify('parse backref effective_number') do
61
66
  root = RP.parse('(abc)(def)\\k<-1>(ghi)\\k<-3>\\k<-1>', 'ruby/1.9')
@@ -76,76 +81,11 @@ RSpec.describe('Refcall parsing') do
76
81
  exp3 = root[5]
77
82
 
78
83
  expect([exp1, exp2, exp3]).to all be_instance_of(Backreference::NumberRelative)
79
-
80
84
  expect(exp1.referenced_expression.to_s).to eq '(def)'
81
85
  expect(exp2.referenced_expression.to_s).to eq '(abc)'
82
86
  expect(exp3.referenced_expression.to_s).to eq '(ghi)'
83
87
  end
84
88
 
85
- specify('parse backref name call ab') do
86
- root = RP.parse('(?<X>abc)\\g<X>', 'ruby/1.9')
87
- exp = root[1]
88
-
89
- expect(exp).to be_instance_of(Backreference::NameCall)
90
- expect(exp.name).to eq 'X'
91
- end
92
-
93
- specify('parse backref name call sq') do
94
- root = RP.parse("(?<X>abc)\\g'X'", 'ruby/1.9')
95
- exp = root[1]
96
-
97
- expect(exp).to be_instance_of(Backreference::NameCall)
98
- expect(exp.name).to eq 'X'
99
- end
100
-
101
- specify('parse backref number call ab') do
102
- root = RP.parse('(abc)\\g<1>', 'ruby/1.9')
103
- exp = root[1]
104
-
105
- expect(exp).to be_instance_of(Backreference::NumberCall)
106
- expect(exp.number).to eq 1
107
- end
108
-
109
- specify('parse backref number call sq') do
110
- root = RP.parse("(abc)\\g'1'", 'ruby/1.9')
111
- exp = root[1]
112
-
113
- expect(exp).to be_instance_of(Backreference::NumberCall)
114
- expect(exp.number).to eq 1
115
- end
116
-
117
- specify('parse backref number relative call ab') do
118
- root = RP.parse('(abc)\\g<-1>', 'ruby/1.9')
119
- exp = root[1]
120
-
121
- expect(exp).to be_instance_of(Backreference::NumberCallRelative)
122
- expect(exp.number).to eq(-1)
123
- end
124
-
125
- specify('parse backref number relative call sq') do
126
- root = RP.parse("(abc)\\g'-1'", 'ruby/1.9')
127
- exp = root[1]
128
-
129
- expect(exp).to be_instance_of(Backreference::NumberCallRelative)
130
- expect(exp.number).to eq(-1)
131
- end
132
-
133
- specify('parse backref number relative forward call ab') do
134
- root = RP.parse('\\g<+1>(abc)', 'ruby/1.9')
135
- exp = root[0]
136
-
137
- expect(exp).to be_instance_of(Backreference::NumberCallRelative)
138
- expect(exp.number).to eq 1
139
- end
140
-
141
- specify('parse backref number relative forward call sq') do
142
- root = RP.parse("\\g'+1'(abc)", 'ruby/1.9')
143
- exp = root[0]
144
-
145
- expect(exp).to be_instance_of(Backreference::NumberCallRelative)
146
- expect(exp.number).to eq 1
147
- end
148
-
149
89
  specify('parse backref call effective_number') do
150
90
  root = RP.parse('\\g<+1>(abc)\\g<+2>(def)(ghi)\\g<-2>', 'ruby/1.9')
151
91
  exp1 = root[0]
@@ -153,7 +93,6 @@ RSpec.describe('Refcall parsing') do
153
93
  exp3 = root[5]
154
94
 
155
95
  expect([exp1, exp2, exp3]).to all be_instance_of(Backreference::NumberCallRelative)
156
-
157
96
  expect(exp1.effective_number).to eq 1
158
97
  expect(exp2.effective_number).to eq 3
159
98
  expect(exp3.effective_number).to eq 2
@@ -166,72 +105,8 @@ RSpec.describe('Refcall parsing') do
166
105
  exp3 = root[5]
167
106
 
168
107
  expect([exp1, exp2, exp3]).to all be_instance_of(Backreference::NumberCallRelative)
169
-
170
108
  expect(exp1.referenced_expression.to_s).to eq '(abc)'
171
109
  expect(exp2.referenced_expression.to_s).to eq '(ghi)'
172
110
  expect(exp3.referenced_expression.to_s).to eq '(def)'
173
111
  end
174
-
175
- specify('parse backref name recursion level ab') do
176
- root = RP.parse('(?<X>abc)\\k<X-0>', 'ruby/1.9')
177
- exp = root[1]
178
-
179
- expect(exp).to be_instance_of(Backreference::NameRecursionLevel)
180
- expect(exp.name).to eq 'X'
181
- expect(exp.recursion_level).to eq 0
182
- end
183
-
184
- specify('parse backref name recursion level sq') do
185
- root = RP.parse("(?<X>abc)\\k'X-0'", 'ruby/1.9')
186
- exp = root[1]
187
-
188
- expect(exp).to be_instance_of(Backreference::NameRecursionLevel)
189
- expect(exp.name).to eq 'X'
190
- expect(exp.recursion_level).to eq 0
191
- end
192
-
193
- specify('parse backref number recursion level ab') do
194
- root = RP.parse('(abc)\\k<1-0>', 'ruby/1.9')
195
- exp = root[1]
196
-
197
- expect(exp).to be_instance_of(Backreference::NumberRecursionLevel)
198
- expect(exp.number).to eq 1
199
- expect(exp.recursion_level).to eq 0
200
- end
201
-
202
- specify('parse backref number recursion level sq') do
203
- root = RP.parse("(abc)\\k'1-0'", 'ruby/1.9')
204
- exp = root[1]
205
-
206
- expect(exp).to be_instance_of(Backreference::NumberRecursionLevel)
207
- expect(exp.number).to eq 1
208
- expect(exp.recursion_level).to eq 0
209
- end
210
-
211
- specify('parse backref negative number recursion level') do
212
- root = RP.parse("(abc)\\k'-1+0'", 'ruby/1.9')
213
- exp = root[1]
214
-
215
- expect(exp).to be_instance_of(Backreference::NumberRecursionLevel)
216
- expect(exp.number).to eq(-1)
217
- expect(exp.recursion_level).to eq 0
218
- end
219
-
220
- specify('parse backref number positive recursion level') do
221
- root = RP.parse("(abc)\\k'1+1'", 'ruby/1.9')
222
- exp = root[1]
223
-
224
- expect(exp).to be_instance_of(Backreference::NumberRecursionLevel)
225
- expect(exp.number).to eq 1
226
- expect(exp.recursion_level).to eq 1
227
- end
228
-
229
- specify('parse backref number negative recursion level') do
230
- root = RP.parse("(abc)\\k'1-1'", 'ruby/1.9')
231
- exp = root[1]
232
-
233
- expect(exp).to be_instance_of(Backreference::NumberRecursionLevel)
234
- expect(exp.number).to eq 1
235
- expect(exp.recursion_level).to eq(-1)
236
- end
237
112
  end
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  # edge cases with `...-&&...` and `...&&-...` are checked in test_ranges.rb
4
4
 
5
- RSpec.describe('SetIntersection parsing') do
5
+ RSpec.describe('CharacterSet::Intersection parsing') do
6
6
  specify('parse set intersection') do
7
7
  root = RP.parse('[a&&z]')
8
8
  set = root[0]
@@ -22,9 +22,9 @@ RSpec.describe('SetIntersection parsing') do
22
22
  expect(seq2.first.to_s).to eq 'z'
23
23
  expect(seq2.first).to be_instance_of(Literal)
24
24
 
25
- expect(set.matches?('a')).to be false
26
- expect(set.matches?('&')).to be false
27
- expect(set.matches?('z')).to be false
25
+ expect(set).not_to match 'a'
26
+ expect(set).not_to match '&'
27
+ expect(set).not_to match 'z'
28
28
  end
29
29
 
30
30
  specify('parse set intersection range and subset') do
@@ -46,9 +46,9 @@ RSpec.describe('SetIntersection parsing') do
46
46
  expect(seq2.first.to_s).to eq '[^a]'
47
47
  expect(seq2.first).to be_instance_of(CharacterSet)
48
48
 
49
- expect(set.matches?('a')).to be false
50
- expect(set.matches?('&')).to be false
51
- expect(set.matches?('b')).to be true
49
+ expect(set).not_to match 'a'
50
+ expect(set).not_to match '&'
51
+ expect(set).to match 'b'
52
52
  end
53
53
 
54
54
  specify('parse set intersection trailing range') do
@@ -70,9 +70,9 @@ RSpec.describe('SetIntersection parsing') do
70
70
  expect(seq2.first.to_s).to eq 'a-z'
71
71
  expect(seq2.first).to be_instance_of(CharacterSet::Range)
72
72
 
73
- expect(set.matches?('a')).to be true
74
- expect(set.matches?('&')).to be false
75
- expect(set.matches?('b')).to be false
73
+ expect(set).to match 'a'
74
+ expect(set).not_to match '&'
75
+ expect(set).not_to match 'b'
76
76
  end
77
77
 
78
78
  specify('parse set intersection type') do
@@ -94,9 +94,9 @@ RSpec.describe('SetIntersection parsing') do
94
94
  expect(seq2.first.to_s).to eq '\\w'
95
95
  expect(seq2.first).to be_instance_of(CharacterType::Word)
96
96
 
97
- expect(set.matches?('a')).to be true
98
- expect(set.matches?('&')).to be false
99
- expect(set.matches?('b')).to be false
97
+ expect(set).to match 'a'
98
+ expect(set).not_to match '&'
99
+ expect(set).not_to match 'b'
100
100
  end
101
101
 
102
102
  specify('parse set intersection multipart') do
@@ -119,9 +119,9 @@ RSpec.describe('SetIntersection parsing') do
119
119
  expect(seq3.count).to eq 3
120
120
  expect(seq3.to_s).to eq 'efg'
121
121
 
122
- expect(set.matches?('e')).to be true
123
- expect(set.matches?('f')).to be true
124
- expect(set.matches?('a')).to be false
125
- expect(set.matches?('g')).to be false
122
+ expect(set).to match 'e'
123
+ expect(set).to match 'f'
124
+ expect(set).not_to match 'a'
125
+ expect(set).not_to match 'g'
126
126
  end
127
127
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- RSpec.describe('SetRang parsing') do
3
+ RSpec.describe('CharacterSet::Range parsing') do
4
4
  specify('parse set range') do
5
5
  root = RP.parse('[a-z]')
6
6
  set = root[0]
@@ -13,7 +13,7 @@ RSpec.describe('SetRang parsing') do
13
13
  expect(range.first).to be_instance_of(Literal)
14
14
  expect(range.last.to_s).to eq 'z'
15
15
  expect(range.last).to be_instance_of(Literal)
16
- expect(set.matches?('m')).to be true
16
+ expect(set).to match 'm'
17
17
  end
18
18
 
19
19
  specify('parse set range hex') do
@@ -28,7 +28,7 @@ RSpec.describe('SetRang parsing') do
28
28
  expect(range.first).to be_instance_of(EscapeSequence::Hex)
29
29
  expect(range.last.to_s).to eq '\\x99'
30
30
  expect(range.last).to be_instance_of(EscapeSequence::Hex)
31
- expect(set.matches?('\\x50')).to be true
31
+ expect(set).to match '\\x50'
32
32
  end
33
33
 
34
34
  specify('parse set range unicode') do
@@ -43,7 +43,7 @@ RSpec.describe('SetRang parsing') do
43
43
  expect(range.first).to be_instance_of(EscapeSequence::CodepointList)
44
44
  expect(range.last.to_s).to eq '\\u1234'
45
45
  expect(range.last).to be_instance_of(EscapeSequence::Codepoint)
46
- expect(set.matches?('\\u600')).to be true
46
+ expect(set).to match '\\u600'
47
47
  end
48
48
 
49
49
  specify('parse set range edge case leading dash') do
@@ -53,7 +53,7 @@ RSpec.describe('SetRang parsing') do
53
53
 
54
54
  expect(set.count).to eq 1
55
55
  expect(range.count).to eq 2
56
- expect(set.matches?('a')).to be true
56
+ expect(set).to match 'a'
57
57
  end
58
58
 
59
59
  specify('parse set range edge case trailing dash') do
@@ -63,7 +63,7 @@ RSpec.describe('SetRang parsing') do
63
63
 
64
64
  expect(set.count).to eq 1
65
65
  expect(range.count).to eq 2
66
- expect(set.matches?('$')).to be true
66
+ expect(set).to match '$'
67
67
  end
68
68
 
69
69
  specify('parse set range edge case leading negate') do
@@ -71,8 +71,8 @@ RSpec.describe('SetRang parsing') do
71
71
  set = root[0]
72
72
 
73
73
  expect(set.count).to eq 2
74
- expect(set.matches?('a')).to be true
75
- expect(set.matches?('z')).to be false
74
+ expect(set).to match 'a'
75
+ expect(set).not_to match 'z'
76
76
  end
77
77
 
78
78
  specify('parse set range edge case trailing negate') do
@@ -82,7 +82,7 @@ RSpec.describe('SetRang parsing') do
82
82
 
83
83
  expect(set.count).to eq 1
84
84
  expect(range.count).to eq 2
85
- expect(set.matches?('$')).to be true
85
+ expect(set).to match '$'
86
86
  end
87
87
 
88
88
  specify('parse set range edge case leading intersection') do
@@ -91,10 +91,10 @@ RSpec.describe('SetRang parsing') do
91
91
 
92
92
  expect(set.count).to eq 1
93
93
  expect(set.first.last.to_s).to eq '-bc'
94
- expect(set.matches?('-')).to be true
95
- expect(set.matches?('b')).to be true
96
- expect(set.matches?('a')).to be false
97
- expect(set.matches?('c')).to be false
94
+ expect(set).to match '-'
95
+ expect(set).to match 'b'
96
+ expect(set).not_to match 'a'
97
+ expect(set).not_to match 'c'
98
98
  end
99
99
 
100
100
  specify('parse set range edge case trailing intersection') do
@@ -103,9 +103,9 @@ RSpec.describe('SetRang parsing') do
103
103
 
104
104
  expect(set.count).to eq 1
105
105
  expect(set.first.first.to_s).to eq 'bc-'
106
- expect(set.matches?('-')).to be true
107
- expect(set.matches?('b')).to be true
108
- expect(set.matches?('a')).to be false
109
- expect(set.matches?('c')).to be false
106
+ expect(set).to match '-'
107
+ expect(set).to match 'b'
108
+ expect(set).not_to match 'a'
109
+ expect(set).not_to match 'c'
110
110
  end
111
111
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- RSpec.describe('Set parsing') do
3
+ RSpec.describe('CharacterSet parsing') do
4
4
  specify('parse set basic') do
5
5
  root = RP.parse('[ab]+')
6
6
  exp = root[0]
@@ -39,10 +39,10 @@ RSpec.describe('Set parsing') do
39
39
  expect(exp[1]).to be_instance_of(EscapeSequence::Backspace)
40
40
  expect(exp[1].text).to eq '\\b'
41
41
 
42
- expect(exp.matches?('a')).to be true
43
- expect(exp.matches?("\b")).to be true
44
- expect(exp.matches?('b')).to be false
45
- expect(exp.matches?('c')).to be true
42
+ expect(exp).to match 'a'
43
+ expect(exp).to match "\b"
44
+ expect(exp).not_to match 'b'
45
+ expect(exp).to match 'c'
46
46
  end
47
47
 
48
48
  specify('parse set escape sequence hex') do