regexp-examples 0.2.2 → 0.2.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/README.md +1 -1
- data/coverage/.resultset.json +89 -69
- data/coverage/coverage-badge.png +0 -0
- data/coverage/index.html +481 -361
- data/lib/regexp-examples/parser.rb +9 -1
- data/lib/regexp-examples/repeaters.rb +1 -1
- data/lib/regexp-examples/version.rb +1 -1
- data/spec/regexp-examples_spec.rb +12 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c2f696b21ebbe5164c14d844c44b671b615f1b4e
|
|
4
|
+
data.tar.gz: 0b5dab06bf4adcb6264db9b779e1ea9a23bcc232
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9735ff7a5a375eecbf8221300338a31277ae47721d55cfbe77d27e7e1c6f28528d26d3f759e9a031bcfaf15d45ccc0032bb76c2969226c51efd15c7d8521754e
|
|
7
|
+
data.tar.gz: bf6e52c73c457b070dc91303e9e023e7703e1b3a795ad5fb8f1a6a8c221942f815da29358a53126b026bb5b5c7fa2ef8c1e6e4e9032b21e57aaf7a426c6b4813
|
data/README.md
CHANGED
|
@@ -36,6 +36,7 @@ or a huge number of possible matches, such as `/.\w/`, then only a subset of the
|
|
|
36
36
|
* Including named groups, e.g. `/(?<name>group)/`
|
|
37
37
|
* ...And backreferences(!!!), e.g. `/(this|that) \1/` `/(?<name>foo) \k<name>/`
|
|
38
38
|
* Groups work fine, even if nested! e.g. `/(even(this(works?))) \1 \2 \3/`
|
|
39
|
+
* Control characters, e.g. `/\ca/`, `/\cZ/`, `/\c9/`
|
|
39
40
|
* **Arbitrarily complex combinations of all the above!**
|
|
40
41
|
|
|
41
42
|
## Not-Yet-Supported syntax
|
|
@@ -48,7 +49,6 @@ I plan to add the following features to the gem, but have not yet got round to i
|
|
|
48
49
|
* Escape sequences, e.g. `/\xa1/`
|
|
49
50
|
* Unicode characters, e.g. `/\u06E9/`
|
|
50
51
|
* Named properties, e.g. `/\p{L}/` ("Letter"), `/\p{Arabic}/` ("Arabic character"), `/\p{^Ll}/` ("Not a lowercase letter")
|
|
51
|
-
* Control characters, e.g. `/\cA/` ... `/\cZ/`
|
|
52
52
|
* Subexpression calls, e.g. `/(?<name> ... \g<name>* )/` (Note: These could get _really_ ugly to implement, and may even be impossible, so I highly doubt it's worth the effort!)
|
|
53
53
|
|
|
54
54
|
## Impossible features ("illegal syntax")
|
data/coverage/.resultset.json
CHANGED
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
null,
|
|
24
24
|
null,
|
|
25
25
|
1,
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
278,
|
|
27
|
+
278,
|
|
28
28
|
164,
|
|
29
29
|
237,
|
|
30
30
|
null,
|
|
@@ -45,28 +45,28 @@
|
|
|
45
45
|
1,
|
|
46
46
|
1,
|
|
47
47
|
1,
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
65,
|
|
49
|
+
65,
|
|
50
|
+
65,
|
|
51
51
|
null,
|
|
52
52
|
null,
|
|
53
53
|
1,
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
54
|
+
112,
|
|
55
|
+
112,
|
|
56
|
+
323,
|
|
57
|
+
319,
|
|
58
|
+
278,
|
|
59
|
+
278,
|
|
60
|
+
278,
|
|
61
61
|
null,
|
|
62
|
-
|
|
62
|
+
108,
|
|
63
63
|
null,
|
|
64
64
|
null,
|
|
65
65
|
1,
|
|
66
66
|
null,
|
|
67
67
|
1,
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
323,
|
|
69
|
+
323,
|
|
70
70
|
null,
|
|
71
71
|
45,
|
|
72
72
|
null,
|
|
@@ -78,15 +78,15 @@
|
|
|
78
78
|
null,
|
|
79
79
|
6,
|
|
80
80
|
null,
|
|
81
|
-
|
|
81
|
+
42,
|
|
82
82
|
null,
|
|
83
|
-
|
|
83
|
+
174,
|
|
84
84
|
null,
|
|
85
|
-
|
|
85
|
+
319,
|
|
86
86
|
null,
|
|
87
87
|
null,
|
|
88
88
|
1,
|
|
89
|
-
|
|
89
|
+
42,
|
|
90
90
|
null,
|
|
91
91
|
null,
|
|
92
92
|
19,
|
|
@@ -98,17 +98,20 @@
|
|
|
98
98
|
14,
|
|
99
99
|
null,
|
|
100
100
|
null,
|
|
101
|
+
6,
|
|
102
|
+
6,
|
|
103
|
+
null,
|
|
101
104
|
null,
|
|
102
105
|
null,
|
|
103
106
|
2,
|
|
104
107
|
null,
|
|
105
|
-
|
|
106
|
-
|
|
108
|
+
42,
|
|
109
|
+
42,
|
|
107
110
|
null,
|
|
108
111
|
null,
|
|
109
112
|
1,
|
|
110
|
-
|
|
111
|
-
|
|
113
|
+
278,
|
|
114
|
+
278,
|
|
112
115
|
null,
|
|
113
116
|
5,
|
|
114
117
|
null,
|
|
@@ -116,11 +119,11 @@
|
|
|
116
119
|
null,
|
|
117
120
|
11,
|
|
118
121
|
null,
|
|
119
|
-
|
|
122
|
+
5,
|
|
120
123
|
null,
|
|
121
|
-
|
|
124
|
+
253,
|
|
122
125
|
null,
|
|
123
|
-
|
|
126
|
+
278,
|
|
124
127
|
null,
|
|
125
128
|
null,
|
|
126
129
|
1,
|
|
@@ -184,7 +187,7 @@
|
|
|
184
187
|
null,
|
|
185
188
|
null,
|
|
186
189
|
1,
|
|
187
|
-
|
|
190
|
+
182,
|
|
188
191
|
null,
|
|
189
192
|
null,
|
|
190
193
|
1,
|
|
@@ -192,6 +195,11 @@
|
|
|
192
195
|
null,
|
|
193
196
|
null,
|
|
194
197
|
1,
|
|
198
|
+
null,
|
|
199
|
+
125,
|
|
200
|
+
null,
|
|
201
|
+
null,
|
|
202
|
+
1,
|
|
195
203
|
5,
|
|
196
204
|
5,
|
|
197
205
|
null,
|
|
@@ -207,20 +215,20 @@
|
|
|
207
215
|
null,
|
|
208
216
|
null,
|
|
209
217
|
1,
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
218
|
+
5,
|
|
219
|
+
5,
|
|
220
|
+
5,
|
|
221
|
+
5,
|
|
222
|
+
5,
|
|
223
|
+
5,
|
|
216
224
|
null,
|
|
217
225
|
null,
|
|
218
226
|
1,
|
|
219
|
-
|
|
227
|
+
253,
|
|
220
228
|
null,
|
|
221
229
|
null,
|
|
222
230
|
1,
|
|
223
|
-
|
|
231
|
+
123,
|
|
224
232
|
null,
|
|
225
233
|
null,
|
|
226
234
|
null,
|
|
@@ -274,11 +282,11 @@
|
|
|
274
282
|
1,
|
|
275
283
|
1,
|
|
276
284
|
1,
|
|
277
|
-
|
|
278
|
-
|
|
285
|
+
61,
|
|
286
|
+
157,
|
|
279
287
|
28,
|
|
280
288
|
null,
|
|
281
|
-
|
|
289
|
+
157,
|
|
282
290
|
null,
|
|
283
291
|
null,
|
|
284
292
|
null,
|
|
@@ -298,28 +306,28 @@
|
|
|
298
306
|
1,
|
|
299
307
|
1,
|
|
300
308
|
1,
|
|
301
|
-
|
|
309
|
+
278,
|
|
302
310
|
null,
|
|
303
311
|
null,
|
|
304
312
|
1,
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
313
|
+
278,
|
|
314
|
+
278,
|
|
315
|
+
278,
|
|
316
|
+
308,
|
|
317
|
+
422,
|
|
310
318
|
null,
|
|
311
319
|
null,
|
|
312
|
-
|
|
320
|
+
278,
|
|
313
321
|
null,
|
|
314
322
|
null,
|
|
315
323
|
null,
|
|
316
324
|
1,
|
|
317
325
|
1,
|
|
318
|
-
|
|
326
|
+
253,
|
|
319
327
|
null,
|
|
320
328
|
null,
|
|
321
329
|
1,
|
|
322
|
-
|
|
330
|
+
253,
|
|
323
331
|
null,
|
|
324
332
|
null,
|
|
325
333
|
null,
|
|
@@ -355,10 +363,10 @@
|
|
|
355
363
|
null,
|
|
356
364
|
1,
|
|
357
365
|
1,
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
366
|
+
5,
|
|
367
|
+
5,
|
|
368
|
+
5,
|
|
369
|
+
2,
|
|
362
370
|
3,
|
|
363
371
|
1,
|
|
364
372
|
null,
|
|
@@ -367,7 +375,7 @@
|
|
|
367
375
|
null,
|
|
368
376
|
null,
|
|
369
377
|
1,
|
|
370
|
-
|
|
378
|
+
5,
|
|
371
379
|
null,
|
|
372
380
|
null,
|
|
373
381
|
null,
|
|
@@ -381,12 +389,12 @@
|
|
|
381
389
|
1,
|
|
382
390
|
1,
|
|
383
391
|
1,
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
392
|
+
1649,
|
|
393
|
+
1649,
|
|
394
|
+
1649,
|
|
387
395
|
122,
|
|
388
396
|
null,
|
|
389
|
-
|
|
397
|
+
1649,
|
|
390
398
|
null,
|
|
391
399
|
null,
|
|
392
400
|
1,
|
|
@@ -396,16 +404,16 @@
|
|
|
396
404
|
null,
|
|
397
405
|
null,
|
|
398
406
|
1,
|
|
399
|
-
|
|
407
|
+
422,
|
|
400
408
|
null,
|
|
401
409
|
null,
|
|
402
410
|
null,
|
|
403
411
|
1,
|
|
404
412
|
1,
|
|
405
|
-
|
|
413
|
+
182,
|
|
406
414
|
null,
|
|
407
415
|
1,
|
|
408
|
-
|
|
416
|
+
182,
|
|
409
417
|
null,
|
|
410
418
|
null,
|
|
411
419
|
null,
|
|
@@ -524,12 +532,12 @@
|
|
|
524
532
|
1,
|
|
525
533
|
1,
|
|
526
534
|
1,
|
|
527
|
-
|
|
535
|
+
65,
|
|
528
536
|
null,
|
|
529
537
|
null,
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
538
|
+
121,
|
|
539
|
+
61,
|
|
540
|
+
61,
|
|
533
541
|
null,
|
|
534
542
|
null,
|
|
535
543
|
1,
|
|
@@ -539,11 +547,11 @@
|
|
|
539
547
|
"/home/tom/regexp-examples/spec/regexp-examples_spec.rb": [
|
|
540
548
|
1,
|
|
541
549
|
1,
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
550
|
+
8,
|
|
551
|
+
61,
|
|
552
|
+
61,
|
|
553
|
+
61,
|
|
554
|
+
218,
|
|
547
555
|
null,
|
|
548
556
|
null,
|
|
549
557
|
null,
|
|
@@ -573,6 +581,7 @@
|
|
|
573
581
|
null,
|
|
574
582
|
null,
|
|
575
583
|
null,
|
|
584
|
+
null,
|
|
576
585
|
1,
|
|
577
586
|
1,
|
|
578
587
|
null,
|
|
@@ -660,9 +669,20 @@
|
|
|
660
669
|
null,
|
|
661
670
|
null,
|
|
662
671
|
null,
|
|
672
|
+
1,
|
|
673
|
+
1,
|
|
674
|
+
null,
|
|
675
|
+
null,
|
|
676
|
+
null,
|
|
677
|
+
null,
|
|
678
|
+
null,
|
|
679
|
+
null,
|
|
680
|
+
null,
|
|
681
|
+
null,
|
|
682
|
+
null,
|
|
663
683
|
null
|
|
664
684
|
]
|
|
665
685
|
},
|
|
666
|
-
"timestamp":
|
|
686
|
+
"timestamp": 1421429649
|
|
667
687
|
}
|
|
668
688
|
}
|
data/coverage/coverage-badge.png
CHANGED
|
Binary file
|
data/coverage/index.html
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
<img src="./assets/0.8.0/loading.gif" alt="loading"/>
|
|
15
15
|
</div>
|
|
16
16
|
<div id="wrapper" style="display:none;">
|
|
17
|
-
<div class="timestamp">Generated <abbr class="timeago" title="2015-01-
|
|
17
|
+
<div class="timestamp">Generated <abbr class="timeago" title="2015-01-16T17:34:09+00:00">2015-01-16T17:34:09+00:00</abbr></div>
|
|
18
18
|
<ul class="group_tabs"></ul>
|
|
19
19
|
|
|
20
20
|
<div id="content">
|
|
@@ -25,15 +25,15 @@
|
|
|
25
25
|
covered at
|
|
26
26
|
<span class="covered_strength">
|
|
27
27
|
<span class="green">
|
|
28
|
-
75.
|
|
28
|
+
75.85
|
|
29
29
|
</span>
|
|
30
30
|
</span> hits/line)
|
|
31
31
|
</h2>
|
|
32
32
|
<a name="AllFiles"></a>
|
|
33
33
|
<div>
|
|
34
34
|
<b>10</b> files in total.
|
|
35
|
-
<b>
|
|
36
|
-
<span class="green"><b>
|
|
35
|
+
<b>304</b> relevant lines.
|
|
36
|
+
<span class="green"><b>304</b> lines covered</span> and
|
|
37
37
|
<span class="red"><b>0</b> lines missed </span>
|
|
38
38
|
</div>
|
|
39
39
|
<table class="file_list">
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
<td>11</td>
|
|
68
68
|
<td>11</td>
|
|
69
69
|
<td>0</td>
|
|
70
|
-
<td>
|
|
70
|
+
<td>46.5</td>
|
|
71
71
|
</tr>
|
|
72
72
|
|
|
73
73
|
<tr>
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
<td>77</td>
|
|
98
98
|
<td>77</td>
|
|
99
99
|
<td>0</td>
|
|
100
|
-
<td>
|
|
100
|
+
<td>147.4</td>
|
|
101
101
|
</tr>
|
|
102
102
|
|
|
103
103
|
<tr>
|
|
@@ -107,17 +107,17 @@
|
|
|
107
107
|
<td>10</td>
|
|
108
108
|
<td>10</td>
|
|
109
109
|
<td>0</td>
|
|
110
|
-
<td>
|
|
110
|
+
<td>167.1</td>
|
|
111
111
|
</tr>
|
|
112
112
|
|
|
113
113
|
<tr>
|
|
114
114
|
<td class="strong"><a href="#e013406b8d61f5ad15d0a3ad7ea7e8e96b6d7254" class="src_link" title="lib/regexp-examples/parser.rb">lib/regexp-examples/parser.rb</a></td>
|
|
115
115
|
<td class="green strong">100.0 %</td>
|
|
116
|
-
<td>
|
|
117
|
-
<td>
|
|
118
|
-
<td>
|
|
116
|
+
<td>192</td>
|
|
117
|
+
<td>108</td>
|
|
118
|
+
<td>108</td>
|
|
119
119
|
<td>0</td>
|
|
120
|
-
<td>
|
|
120
|
+
<td>55.2</td>
|
|
121
121
|
</tr>
|
|
122
122
|
|
|
123
123
|
<tr>
|
|
@@ -127,7 +127,7 @@
|
|
|
127
127
|
<td>8</td>
|
|
128
128
|
<td>8</td>
|
|
129
129
|
<td>0</td>
|
|
130
|
-
<td>
|
|
130
|
+
<td>39.0</td>
|
|
131
131
|
</tr>
|
|
132
132
|
|
|
133
133
|
<tr>
|
|
@@ -137,17 +137,17 @@
|
|
|
137
137
|
<td>43</td>
|
|
138
138
|
<td>43</td>
|
|
139
139
|
<td>0</td>
|
|
140
|
-
<td>
|
|
140
|
+
<td>63.1</td>
|
|
141
141
|
</tr>
|
|
142
142
|
|
|
143
143
|
<tr>
|
|
144
144
|
<td class="strong"><a href="#73ece59f571550448cda013ec330081f40e82321" class="src_link" title="spec/regexp-examples_spec.rb">spec/regexp-examples_spec.rb</a></td>
|
|
145
145
|
<td class="green strong">100.0 %</td>
|
|
146
|
-
<td>
|
|
147
|
-
<td>
|
|
148
|
-
<td>
|
|
146
|
+
<td>136</td>
|
|
147
|
+
<td>30</td>
|
|
148
|
+
<td>30</td>
|
|
149
149
|
<td>0</td>
|
|
150
|
-
<td>14.
|
|
150
|
+
<td>14.8</td>
|
|
151
151
|
</tr>
|
|
152
152
|
|
|
153
153
|
</tbody>
|
|
@@ -228,14 +228,14 @@
|
|
|
228
228
|
<code class="ruby"> def substitute_backreferences(full_examples)</code>
|
|
229
229
|
</li>
|
|
230
230
|
|
|
231
|
-
<li class="covered" data-hits="
|
|
232
|
-
<span class="hits">
|
|
231
|
+
<li class="covered" data-hits="61" data-linenumber="4">
|
|
232
|
+
<span class="hits">61</span>
|
|
233
233
|
|
|
234
234
|
<code class="ruby"> full_examples.map do |full_example|</code>
|
|
235
235
|
</li>
|
|
236
236
|
|
|
237
|
-
<li class="covered" data-hits="
|
|
238
|
-
<span class="hits">
|
|
237
|
+
<li class="covered" data-hits="157" data-linenumber="5">
|
|
238
|
+
<span class="hits">157</span>
|
|
239
239
|
|
|
240
240
|
<code class="ruby"> while full_example.match(/__(\w+?)__/)</code>
|
|
241
241
|
</li>
|
|
@@ -252,8 +252,8 @@
|
|
|
252
252
|
<code class="ruby"> end</code>
|
|
253
253
|
</li>
|
|
254
254
|
|
|
255
|
-
<li class="covered" data-hits="
|
|
256
|
-
<span class="hits">
|
|
255
|
+
<li class="covered" data-hits="157" data-linenumber="8">
|
|
256
|
+
<span class="hits">157</span>
|
|
257
257
|
|
|
258
258
|
<code class="ruby"> full_example</code>
|
|
259
259
|
</li>
|
|
@@ -714,20 +714,20 @@
|
|
|
714
714
|
<code class="ruby"> def initialize(result, group_id = nil, subgroups = [])</code>
|
|
715
715
|
</li>
|
|
716
716
|
|
|
717
|
-
<li class="covered" data-hits="
|
|
718
|
-
<span class="hits">
|
|
717
|
+
<li class="covered" data-hits="1649" data-linenumber="8">
|
|
718
|
+
<span class="hits">1649</span>
|
|
719
719
|
|
|
720
720
|
<code class="ruby"> @group_id = group_id</code>
|
|
721
721
|
</li>
|
|
722
722
|
|
|
723
|
-
<li class="covered" data-hits="
|
|
724
|
-
<span class="hits">
|
|
723
|
+
<li class="covered" data-hits="1649" data-linenumber="9">
|
|
724
|
+
<span class="hits">1649</span>
|
|
725
725
|
|
|
726
726
|
<code class="ruby"> @subgroups = subgroups</code>
|
|
727
727
|
</li>
|
|
728
728
|
|
|
729
|
-
<li class="covered" data-hits="
|
|
730
|
-
<span class="hits">
|
|
729
|
+
<li class="covered" data-hits="1649" data-linenumber="10">
|
|
730
|
+
<span class="hits">1649</span>
|
|
731
731
|
|
|
732
732
|
<code class="ruby"> if result.respond_to?(:group_id)</code>
|
|
733
733
|
</li>
|
|
@@ -744,8 +744,8 @@
|
|
|
744
744
|
<code class="ruby"> end</code>
|
|
745
745
|
</li>
|
|
746
746
|
|
|
747
|
-
<li class="covered" data-hits="
|
|
748
|
-
<span class="hits">
|
|
747
|
+
<li class="covered" data-hits="1649" data-linenumber="13">
|
|
748
|
+
<span class="hits">1649</span>
|
|
749
749
|
|
|
750
750
|
<code class="ruby"> super(result)</code>
|
|
751
751
|
</li>
|
|
@@ -804,8 +804,8 @@
|
|
|
804
804
|
<code class="ruby"> def *(int)</code>
|
|
805
805
|
</li>
|
|
806
806
|
|
|
807
|
-
<li class="covered" data-hits="
|
|
808
|
-
<span class="hits">
|
|
807
|
+
<li class="covered" data-hits="422" data-linenumber="23">
|
|
808
|
+
<span class="hits">422</span>
|
|
809
809
|
|
|
810
810
|
<code class="ruby"> self.class.new(super.to_s, group_id, subgroups)</code>
|
|
811
811
|
</li>
|
|
@@ -840,8 +840,8 @@
|
|
|
840
840
|
<code class="ruby"> def initialize(char)</code>
|
|
841
841
|
</li>
|
|
842
842
|
|
|
843
|
-
<li class="covered" data-hits="
|
|
844
|
-
<span class="hits">
|
|
843
|
+
<li class="covered" data-hits="182" data-linenumber="29">
|
|
844
|
+
<span class="hits">182</span>
|
|
845
845
|
|
|
846
846
|
<code class="ruby"> @char = char</code>
|
|
847
847
|
</li>
|
|
@@ -858,8 +858,8 @@
|
|
|
858
858
|
<code class="ruby"> def result</code>
|
|
859
859
|
</li>
|
|
860
860
|
|
|
861
|
-
<li class="covered" data-hits="
|
|
862
|
-
<span class="hits">
|
|
861
|
+
<li class="covered" data-hits="182" data-linenumber="32">
|
|
862
|
+
<span class="hits">182</span>
|
|
863
863
|
|
|
864
864
|
<code class="ruby"> [GroupResult.new(@char)]</code>
|
|
865
865
|
</li>
|
|
@@ -1620,14 +1620,14 @@
|
|
|
1620
1620
|
<code class="ruby"> def self.permutations_of_strings(arrays_of_strings, options={})</code>
|
|
1621
1621
|
</li>
|
|
1622
1622
|
|
|
1623
|
-
<li class="covered" data-hits="
|
|
1624
|
-
<span class="hits">
|
|
1623
|
+
<li class="covered" data-hits="278" data-linenumber="11">
|
|
1624
|
+
<span class="hits">278</span>
|
|
1625
1625
|
|
|
1626
1626
|
<code class="ruby"> first = arrays_of_strings.shift</code>
|
|
1627
1627
|
</li>
|
|
1628
1628
|
|
|
1629
|
-
<li class="covered" data-hits="
|
|
1630
|
-
<span class="hits">
|
|
1629
|
+
<li class="covered" data-hits="278" data-linenumber="12">
|
|
1630
|
+
<span class="hits">278</span>
|
|
1631
1631
|
|
|
1632
1632
|
<code class="ruby"> return first if arrays_of_strings.empty?</code>
|
|
1633
1633
|
</li>
|
|
@@ -1725,8 +1725,8 @@
|
|
|
1725
1725
|
<h3>lib/regexp-examples/parser.rb</h3>
|
|
1726
1726
|
<h4><span class="green">100.0 %</span> covered</h4>
|
|
1727
1727
|
<div>
|
|
1728
|
-
<b>
|
|
1729
|
-
<span class="green"><b>
|
|
1728
|
+
<b>108</b> relevant lines.
|
|
1729
|
+
<span class="green"><b>108</b> lines covered</span> and
|
|
1730
1730
|
<span class="red"><b>0</b> lines missed.</span>
|
|
1731
1731
|
</div>
|
|
1732
1732
|
</div>
|
|
@@ -1758,20 +1758,20 @@
|
|
|
1758
1758
|
<code class="ruby"> def initialize(regexp_string)</code>
|
|
1759
1759
|
</li>
|
|
1760
1760
|
|
|
1761
|
-
<li class="covered" data-hits="
|
|
1762
|
-
<span class="hits">
|
|
1761
|
+
<li class="covered" data-hits="65" data-linenumber="5">
|
|
1762
|
+
<span class="hits">65</span>
|
|
1763
1763
|
|
|
1764
1764
|
<code class="ruby"> @regexp_string = regexp_string</code>
|
|
1765
1765
|
</li>
|
|
1766
1766
|
|
|
1767
|
-
<li class="covered" data-hits="
|
|
1768
|
-
<span class="hits">
|
|
1767
|
+
<li class="covered" data-hits="65" data-linenumber="6">
|
|
1768
|
+
<span class="hits">65</span>
|
|
1769
1769
|
|
|
1770
1770
|
<code class="ruby"> @num_groups = 0</code>
|
|
1771
1771
|
</li>
|
|
1772
1772
|
|
|
1773
|
-
<li class="covered" data-hits="
|
|
1774
|
-
<span class="hits">
|
|
1773
|
+
<li class="covered" data-hits="65" data-linenumber="7">
|
|
1774
|
+
<span class="hits">65</span>
|
|
1775
1775
|
|
|
1776
1776
|
<code class="ruby"> @current_position = 0</code>
|
|
1777
1777
|
</li>
|
|
@@ -1794,44 +1794,44 @@
|
|
|
1794
1794
|
<code class="ruby"> def parse</code>
|
|
1795
1795
|
</li>
|
|
1796
1796
|
|
|
1797
|
-
<li class="covered" data-hits="
|
|
1798
|
-
<span class="hits">
|
|
1797
|
+
<li class="covered" data-hits="112" data-linenumber="11">
|
|
1798
|
+
<span class="hits">112</span>
|
|
1799
1799
|
|
|
1800
1800
|
<code class="ruby"> repeaters = []</code>
|
|
1801
1801
|
</li>
|
|
1802
1802
|
|
|
1803
|
-
<li class="covered" data-hits="
|
|
1804
|
-
<span class="hits">
|
|
1803
|
+
<li class="covered" data-hits="112" data-linenumber="12">
|
|
1804
|
+
<span class="hits">112</span>
|
|
1805
1805
|
|
|
1806
1806
|
<code class="ruby"> while @current_position < regexp_string.length</code>
|
|
1807
1807
|
</li>
|
|
1808
1808
|
|
|
1809
|
-
<li class="covered" data-hits="
|
|
1810
|
-
<span class="hits">
|
|
1809
|
+
<li class="covered" data-hits="323" data-linenumber="13">
|
|
1810
|
+
<span class="hits">323</span>
|
|
1811
1811
|
|
|
1812
1812
|
<code class="ruby"> group = parse_group(repeaters)</code>
|
|
1813
1813
|
</li>
|
|
1814
1814
|
|
|
1815
|
-
<li class="covered" data-hits="
|
|
1816
|
-
<span class="hits">
|
|
1815
|
+
<li class="covered" data-hits="319" data-linenumber="14">
|
|
1816
|
+
<span class="hits">319</span>
|
|
1817
1817
|
|
|
1818
1818
|
<code class="ruby"> break if group.is_a? MultiGroupEnd</code>
|
|
1819
1819
|
</li>
|
|
1820
1820
|
|
|
1821
|
-
<li class="covered" data-hits="
|
|
1822
|
-
<span class="hits">
|
|
1821
|
+
<li class="covered" data-hits="278" data-linenumber="15">
|
|
1822
|
+
<span class="hits">278</span>
|
|
1823
1823
|
|
|
1824
1824
|
<code class="ruby"> repeaters = [] if group.is_a? OrGroup</code>
|
|
1825
1825
|
</li>
|
|
1826
1826
|
|
|
1827
|
-
<li class="covered" data-hits="
|
|
1828
|
-
<span class="hits">
|
|
1827
|
+
<li class="covered" data-hits="278" data-linenumber="16">
|
|
1828
|
+
<span class="hits">278</span>
|
|
1829
1829
|
|
|
1830
1830
|
<code class="ruby"> @current_position += 1</code>
|
|
1831
1831
|
</li>
|
|
1832
1832
|
|
|
1833
|
-
<li class="covered" data-hits="
|
|
1834
|
-
<span class="hits">
|
|
1833
|
+
<li class="covered" data-hits="278" data-linenumber="17">
|
|
1834
|
+
<span class="hits">278</span>
|
|
1835
1835
|
|
|
1836
1836
|
<code class="ruby"> repeaters << parse_repeater(group)</code>
|
|
1837
1837
|
</li>
|
|
@@ -1842,8 +1842,8 @@
|
|
|
1842
1842
|
<code class="ruby"> end</code>
|
|
1843
1843
|
</li>
|
|
1844
1844
|
|
|
1845
|
-
<li class="covered" data-hits="
|
|
1846
|
-
<span class="hits">
|
|
1845
|
+
<li class="covered" data-hits="108" data-linenumber="19">
|
|
1846
|
+
<span class="hits">108</span>
|
|
1847
1847
|
|
|
1848
1848
|
<code class="ruby"> repeaters</code>
|
|
1849
1849
|
</li>
|
|
@@ -1878,14 +1878,14 @@
|
|
|
1878
1878
|
<code class="ruby"> def parse_group(repeaters)</code>
|
|
1879
1879
|
</li>
|
|
1880
1880
|
|
|
1881
|
-
<li class="covered" data-hits="
|
|
1882
|
-
<span class="hits">
|
|
1881
|
+
<li class="covered" data-hits="323" data-linenumber="25">
|
|
1882
|
+
<span class="hits">323</span>
|
|
1883
1883
|
|
|
1884
1884
|
<code class="ruby"> char = regexp_string[@current_position]</code>
|
|
1885
1885
|
</li>
|
|
1886
1886
|
|
|
1887
|
-
<li class="covered" data-hits="
|
|
1888
|
-
<span class="hits">
|
|
1887
|
+
<li class="covered" data-hits="323" data-linenumber="26">
|
|
1888
|
+
<span class="hits">323</span>
|
|
1889
1889
|
|
|
1890
1890
|
<code class="ruby"> case char</code>
|
|
1891
1891
|
</li>
|
|
@@ -1956,8 +1956,8 @@
|
|
|
1956
1956
|
<code class="ruby"> when '\\'</code>
|
|
1957
1957
|
</li>
|
|
1958
1958
|
|
|
1959
|
-
<li class="covered" data-hits="
|
|
1960
|
-
<span class="hits">
|
|
1959
|
+
<li class="covered" data-hits="42" data-linenumber="38">
|
|
1960
|
+
<span class="hits">42</span>
|
|
1961
1961
|
|
|
1962
1962
|
<code class="ruby"> group = parse_after_backslash_group</code>
|
|
1963
1963
|
</li>
|
|
@@ -1968,8 +1968,8 @@
|
|
|
1968
1968
|
<code class="ruby"> else</code>
|
|
1969
1969
|
</li>
|
|
1970
1970
|
|
|
1971
|
-
<li class="covered" data-hits="
|
|
1972
|
-
<span class="hits">
|
|
1971
|
+
<li class="covered" data-hits="174" data-linenumber="40">
|
|
1972
|
+
<span class="hits">174</span>
|
|
1973
1973
|
|
|
1974
1974
|
<code class="ruby"> group = parse_single_char_group(char)</code>
|
|
1975
1975
|
</li>
|
|
@@ -1980,8 +1980,8 @@
|
|
|
1980
1980
|
<code class="ruby"> end</code>
|
|
1981
1981
|
</li>
|
|
1982
1982
|
|
|
1983
|
-
<li class="covered" data-hits="
|
|
1984
|
-
<span class="hits">
|
|
1983
|
+
<li class="covered" data-hits="319" data-linenumber="42">
|
|
1984
|
+
<span class="hits">319</span>
|
|
1985
1985
|
|
|
1986
1986
|
<code class="ruby"> group</code>
|
|
1987
1987
|
</li>
|
|
@@ -2004,8 +2004,8 @@
|
|
|
2004
2004
|
<code class="ruby"> def parse_after_backslash_group</code>
|
|
2005
2005
|
</li>
|
|
2006
2006
|
|
|
2007
|
-
<li class="covered" data-hits="
|
|
2008
|
-
<span class="hits">
|
|
2007
|
+
<li class="covered" data-hits="42" data-linenumber="46">
|
|
2008
|
+
<span class="hits">42</span>
|
|
2009
2009
|
|
|
2010
2010
|
<code class="ruby"> @current_position += 1</code>
|
|
2011
2011
|
</li>
|
|
@@ -2073,766 +2073,814 @@
|
|
|
2073
2073
|
<li class="never" data-hits="" data-linenumber="57">
|
|
2074
2074
|
|
|
2075
2075
|
|
|
2076
|
+
<code class="ruby"> when rest_of_string =~ /\Ac(.)/ # Control character</code>
|
|
2077
|
+
</li>
|
|
2078
|
+
|
|
2079
|
+
<li class="covered" data-hits="6" data-linenumber="58">
|
|
2080
|
+
<span class="hits">6</span>
|
|
2081
|
+
|
|
2082
|
+
<code class="ruby"> @current_position += 1</code>
|
|
2083
|
+
</li>
|
|
2084
|
+
|
|
2085
|
+
<li class="covered" data-hits="6" data-linenumber="59">
|
|
2086
|
+
<span class="hits">6</span>
|
|
2087
|
+
|
|
2088
|
+
<code class="ruby"> group = parse_single_char_group( parse_control_character($1) )</code>
|
|
2089
|
+
</li>
|
|
2090
|
+
|
|
2091
|
+
<li class="never" data-hits="" data-linenumber="60">
|
|
2092
|
+
|
|
2093
|
+
|
|
2076
2094
|
<code class="ruby"> # TODO: There are also a bunch of multi-char matches to watch out for:</code>
|
|
2077
2095
|
</li>
|
|
2078
2096
|
|
|
2079
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2097
|
+
<li class="never" data-hits="" data-linenumber="61">
|
|
2080
2098
|
|
|
2081
2099
|
|
|
2082
2100
|
<code class="ruby"> # http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Literals</code>
|
|
2083
2101
|
</li>
|
|
2084
2102
|
|
|
2085
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2103
|
+
<li class="never" data-hits="" data-linenumber="62">
|
|
2086
2104
|
|
|
2087
2105
|
|
|
2088
2106
|
<code class="ruby"> else</code>
|
|
2089
2107
|
</li>
|
|
2090
2108
|
|
|
2091
|
-
<li class="covered" data-hits="2" data-linenumber="
|
|
2109
|
+
<li class="covered" data-hits="2" data-linenumber="63">
|
|
2092
2110
|
<span class="hits">2</span>
|
|
2093
2111
|
|
|
2094
2112
|
<code class="ruby"> group = parse_single_char_group( regexp_string[@current_position] )</code>
|
|
2095
2113
|
</li>
|
|
2096
2114
|
|
|
2097
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2115
|
+
<li class="never" data-hits="" data-linenumber="64">
|
|
2098
2116
|
|
|
2099
2117
|
|
|
2100
2118
|
<code class="ruby"> # TODO: What about cases like \A, \z, \Z ?</code>
|
|
2101
2119
|
</li>
|
|
2102
2120
|
|
|
2103
|
-
<li class="covered" data-hits="
|
|
2104
|
-
<span class="hits">
|
|
2121
|
+
<li class="covered" data-hits="42" data-linenumber="65">
|
|
2122
|
+
<span class="hits">42</span>
|
|
2105
2123
|
|
|
2106
2124
|
<code class="ruby"> end</code>
|
|
2107
2125
|
</li>
|
|
2108
2126
|
|
|
2109
|
-
<li class="covered" data-hits="
|
|
2110
|
-
<span class="hits">
|
|
2127
|
+
<li class="covered" data-hits="42" data-linenumber="66">
|
|
2128
|
+
<span class="hits">42</span>
|
|
2111
2129
|
|
|
2112
2130
|
<code class="ruby"> group</code>
|
|
2113
2131
|
</li>
|
|
2114
2132
|
|
|
2115
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2133
|
+
<li class="never" data-hits="" data-linenumber="67">
|
|
2116
2134
|
|
|
2117
2135
|
|
|
2118
2136
|
<code class="ruby"> end</code>
|
|
2119
2137
|
</li>
|
|
2120
2138
|
|
|
2121
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2139
|
+
<li class="never" data-hits="" data-linenumber="68">
|
|
2122
2140
|
|
|
2123
2141
|
|
|
2124
2142
|
<code class="ruby"></code>
|
|
2125
2143
|
</li>
|
|
2126
2144
|
|
|
2127
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
2145
|
+
<li class="covered" data-hits="1" data-linenumber="69">
|
|
2128
2146
|
<span class="hits">1</span>
|
|
2129
2147
|
|
|
2130
2148
|
<code class="ruby"> def parse_repeater(group)</code>
|
|
2131
2149
|
</li>
|
|
2132
2150
|
|
|
2133
|
-
<li class="covered" data-hits="
|
|
2134
|
-
<span class="hits">
|
|
2151
|
+
<li class="covered" data-hits="278" data-linenumber="70">
|
|
2152
|
+
<span class="hits">278</span>
|
|
2135
2153
|
|
|
2136
2154
|
<code class="ruby"> char = regexp_string[@current_position]</code>
|
|
2137
2155
|
</li>
|
|
2138
2156
|
|
|
2139
|
-
<li class="covered" data-hits="
|
|
2140
|
-
<span class="hits">
|
|
2157
|
+
<li class="covered" data-hits="278" data-linenumber="71">
|
|
2158
|
+
<span class="hits">278</span>
|
|
2141
2159
|
|
|
2142
2160
|
<code class="ruby"> case char</code>
|
|
2143
2161
|
</li>
|
|
2144
2162
|
|
|
2145
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2163
|
+
<li class="never" data-hits="" data-linenumber="72">
|
|
2146
2164
|
|
|
2147
2165
|
|
|
2148
2166
|
<code class="ruby"> when '*'</code>
|
|
2149
2167
|
</li>
|
|
2150
2168
|
|
|
2151
|
-
<li class="covered" data-hits="5" data-linenumber="
|
|
2169
|
+
<li class="covered" data-hits="5" data-linenumber="73">
|
|
2152
2170
|
<span class="hits">5</span>
|
|
2153
2171
|
|
|
2154
2172
|
<code class="ruby"> repeater = parse_star_repeater(group)</code>
|
|
2155
2173
|
</li>
|
|
2156
2174
|
|
|
2157
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2175
|
+
<li class="never" data-hits="" data-linenumber="74">
|
|
2158
2176
|
|
|
2159
2177
|
|
|
2160
2178
|
<code class="ruby"> when '+'</code>
|
|
2161
2179
|
</li>
|
|
2162
2180
|
|
|
2163
|
-
<li class="covered" data-hits="4" data-linenumber="
|
|
2181
|
+
<li class="covered" data-hits="4" data-linenumber="75">
|
|
2164
2182
|
<span class="hits">4</span>
|
|
2165
2183
|
|
|
2166
2184
|
<code class="ruby"> repeater = parse_plus_repeater(group)</code>
|
|
2167
2185
|
</li>
|
|
2168
2186
|
|
|
2169
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2187
|
+
<li class="never" data-hits="" data-linenumber="76">
|
|
2170
2188
|
|
|
2171
2189
|
|
|
2172
2190
|
<code class="ruby"> when '?'</code>
|
|
2173
2191
|
</li>
|
|
2174
2192
|
|
|
2175
|
-
<li class="covered" data-hits="11" data-linenumber="
|
|
2193
|
+
<li class="covered" data-hits="11" data-linenumber="77">
|
|
2176
2194
|
<span class="hits">11</span>
|
|
2177
2195
|
|
|
2178
2196
|
<code class="ruby"> repeater = parse_question_mark_repeater(group)</code>
|
|
2179
2197
|
</li>
|
|
2180
2198
|
|
|
2181
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2199
|
+
<li class="never" data-hits="" data-linenumber="78">
|
|
2182
2200
|
|
|
2183
2201
|
|
|
2184
2202
|
<code class="ruby"> when '{'</code>
|
|
2185
2203
|
</li>
|
|
2186
2204
|
|
|
2187
|
-
<li class="covered" data-hits="
|
|
2188
|
-
<span class="hits">
|
|
2205
|
+
<li class="covered" data-hits="5" data-linenumber="79">
|
|
2206
|
+
<span class="hits">5</span>
|
|
2189
2207
|
|
|
2190
2208
|
<code class="ruby"> repeater = parse_range_repeater(group)</code>
|
|
2191
2209
|
</li>
|
|
2192
2210
|
|
|
2193
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2211
|
+
<li class="never" data-hits="" data-linenumber="80">
|
|
2194
2212
|
|
|
2195
2213
|
|
|
2196
2214
|
<code class="ruby"> else</code>
|
|
2197
2215
|
</li>
|
|
2198
2216
|
|
|
2199
|
-
<li class="covered" data-hits="
|
|
2200
|
-
<span class="hits">
|
|
2217
|
+
<li class="covered" data-hits="253" data-linenumber="81">
|
|
2218
|
+
<span class="hits">253</span>
|
|
2201
2219
|
|
|
2202
2220
|
<code class="ruby"> repeater = parse_one_time_repeater(group)</code>
|
|
2203
2221
|
</li>
|
|
2204
2222
|
|
|
2205
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2223
|
+
<li class="never" data-hits="" data-linenumber="82">
|
|
2206
2224
|
|
|
2207
2225
|
|
|
2208
2226
|
<code class="ruby"> end</code>
|
|
2209
2227
|
</li>
|
|
2210
2228
|
|
|
2211
|
-
<li class="covered" data-hits="
|
|
2212
|
-
<span class="hits">
|
|
2229
|
+
<li class="covered" data-hits="278" data-linenumber="83">
|
|
2230
|
+
<span class="hits">278</span>
|
|
2213
2231
|
|
|
2214
2232
|
<code class="ruby"> repeater</code>
|
|
2215
2233
|
</li>
|
|
2216
2234
|
|
|
2217
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2235
|
+
<li class="never" data-hits="" data-linenumber="84">
|
|
2218
2236
|
|
|
2219
2237
|
|
|
2220
2238
|
<code class="ruby"> end</code>
|
|
2221
2239
|
</li>
|
|
2222
2240
|
|
|
2223
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2241
|
+
<li class="never" data-hits="" data-linenumber="85">
|
|
2224
2242
|
|
|
2225
2243
|
|
|
2226
2244
|
<code class="ruby"></code>
|
|
2227
2245
|
</li>
|
|
2228
2246
|
|
|
2229
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
2247
|
+
<li class="covered" data-hits="1" data-linenumber="86">
|
|
2230
2248
|
<span class="hits">1</span>
|
|
2231
2249
|
|
|
2232
2250
|
<code class="ruby"> def parse_multi_group</code>
|
|
2233
2251
|
</li>
|
|
2234
2252
|
|
|
2235
|
-
<li class="covered" data-hits="45" data-linenumber="
|
|
2253
|
+
<li class="covered" data-hits="45" data-linenumber="87">
|
|
2236
2254
|
<span class="hits">45</span>
|
|
2237
2255
|
|
|
2238
2256
|
<code class="ruby"> @current_position += 1</code>
|
|
2239
2257
|
</li>
|
|
2240
2258
|
|
|
2241
|
-
<li class="covered" data-hits="45" data-linenumber="
|
|
2259
|
+
<li class="covered" data-hits="45" data-linenumber="88">
|
|
2242
2260
|
<span class="hits">45</span>
|
|
2243
2261
|
|
|
2244
2262
|
<code class="ruby"> @num_groups += 1</code>
|
|
2245
2263
|
</li>
|
|
2246
2264
|
|
|
2247
|
-
<li class="covered" data-hits="45" data-linenumber="
|
|
2265
|
+
<li class="covered" data-hits="45" data-linenumber="89">
|
|
2248
2266
|
<span class="hits">45</span>
|
|
2249
2267
|
|
|
2250
2268
|
<code class="ruby"> group_id = nil # init</code>
|
|
2251
2269
|
</li>
|
|
2252
2270
|
|
|
2253
|
-
<li class="covered" data-hits="45" data-linenumber="
|
|
2271
|
+
<li class="covered" data-hits="45" data-linenumber="90">
|
|
2254
2272
|
<span class="hits">45</span>
|
|
2255
2273
|
|
|
2256
2274
|
<code class="ruby"> rest_of_string.match(/\A(\?)?(:|!|=|<(!|=|[^!=][^>]*))?/) do |match|</code>
|
|
2257
2275
|
</li>
|
|
2258
2276
|
|
|
2259
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2277
|
+
<li class="never" data-hits="" data-linenumber="91">
|
|
2260
2278
|
|
|
2261
2279
|
|
|
2262
2280
|
<code class="ruby"> case</code>
|
|
2263
2281
|
</li>
|
|
2264
2282
|
|
|
2265
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2283
|
+
<li class="never" data-hits="" data-linenumber="92">
|
|
2266
2284
|
|
|
2267
2285
|
|
|
2268
2286
|
<code class="ruby"> when match[1].nil? # e.g. /(normal)/</code>
|
|
2269
2287
|
</li>
|
|
2270
2288
|
|
|
2271
|
-
<li class="covered" data-hits="38" data-linenumber="
|
|
2289
|
+
<li class="covered" data-hits="38" data-linenumber="93">
|
|
2272
2290
|
<span class="hits">38</span>
|
|
2273
2291
|
|
|
2274
2292
|
<code class="ruby"> group_id = @num_groups.to_s</code>
|
|
2275
2293
|
</li>
|
|
2276
2294
|
|
|
2277
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2295
|
+
<li class="never" data-hits="" data-linenumber="94">
|
|
2278
2296
|
|
|
2279
2297
|
|
|
2280
2298
|
<code class="ruby"> when match[2] == ':' # e.g. /(?:nocapture)/</code>
|
|
2281
2299
|
</li>
|
|
2282
2300
|
|
|
2283
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
2301
|
+
<li class="covered" data-hits="1" data-linenumber="95">
|
|
2284
2302
|
<span class="hits">1</span>
|
|
2285
2303
|
|
|
2286
2304
|
<code class="ruby"> @current_position += 2</code>
|
|
2287
2305
|
</li>
|
|
2288
2306
|
|
|
2289
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
2307
|
+
<li class="covered" data-hits="1" data-linenumber="96">
|
|
2290
2308
|
<span class="hits">1</span>
|
|
2291
2309
|
|
|
2292
2310
|
<code class="ruby"> group_id = nil</code>
|
|
2293
2311
|
</li>
|
|
2294
2312
|
|
|
2295
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2313
|
+
<li class="never" data-hits="" data-linenumber="97">
|
|
2296
2314
|
|
|
2297
2315
|
|
|
2298
2316
|
<code class="ruby"> when %w(! =).include?(match[2]) # e.g. /(?=lookahead)/, /(?!neglookahead)/</code>
|
|
2299
2317
|
</li>
|
|
2300
2318
|
|
|
2301
|
-
<li class="covered" data-hits="2" data-linenumber="
|
|
2319
|
+
<li class="covered" data-hits="2" data-linenumber="98">
|
|
2302
2320
|
<span class="hits">2</span>
|
|
2303
2321
|
|
|
2304
2322
|
<code class="ruby"> raise IllegalSyntaxError, "Lookaheads are not regular; cannot generate examples"</code>
|
|
2305
2323
|
</li>
|
|
2306
2324
|
|
|
2307
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2325
|
+
<li class="never" data-hits="" data-linenumber="99">
|
|
2308
2326
|
|
|
2309
2327
|
|
|
2310
2328
|
<code class="ruby"> when %w(! =).include?(match[3]) # e.g. /(?<=lookbehind)/, /(?<!neglookbehind)/</code>
|
|
2311
2329
|
</li>
|
|
2312
2330
|
|
|
2313
|
-
<li class="covered" data-hits="2" data-linenumber="
|
|
2331
|
+
<li class="covered" data-hits="2" data-linenumber="100">
|
|
2314
2332
|
<span class="hits">2</span>
|
|
2315
2333
|
|
|
2316
2334
|
<code class="ruby"> raise IllegalSyntaxError, "Lookbehinds are not regular; cannot generate examples"</code>
|
|
2317
2335
|
</li>
|
|
2318
2336
|
|
|
2319
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2337
|
+
<li class="never" data-hits="" data-linenumber="101">
|
|
2320
2338
|
|
|
2321
2339
|
|
|
2322
2340
|
<code class="ruby"> else # e.g. /(?<name>namedgroup)/</code>
|
|
2323
2341
|
</li>
|
|
2324
2342
|
|
|
2325
|
-
<li class="covered" data-hits="2" data-linenumber="
|
|
2343
|
+
<li class="covered" data-hits="2" data-linenumber="102">
|
|
2326
2344
|
<span class="hits">2</span>
|
|
2327
2345
|
|
|
2328
2346
|
<code class="ruby"> @current_position += (match[3].length + 3)</code>
|
|
2329
2347
|
</li>
|
|
2330
2348
|
|
|
2331
|
-
<li class="covered" data-hits="2" data-linenumber="
|
|
2349
|
+
<li class="covered" data-hits="2" data-linenumber="103">
|
|
2332
2350
|
<span class="hits">2</span>
|
|
2333
2351
|
|
|
2334
2352
|
<code class="ruby"> group_id = match[3]</code>
|
|
2335
2353
|
</li>
|
|
2336
2354
|
|
|
2337
|
-
<li class="covered" data-hits="45" data-linenumber="
|
|
2355
|
+
<li class="covered" data-hits="45" data-linenumber="104">
|
|
2338
2356
|
<span class="hits">45</span>
|
|
2339
2357
|
|
|
2340
2358
|
<code class="ruby"> end</code>
|
|
2341
2359
|
</li>
|
|
2342
2360
|
|
|
2343
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2361
|
+
<li class="never" data-hits="" data-linenumber="105">
|
|
2344
2362
|
|
|
2345
2363
|
|
|
2346
2364
|
<code class="ruby"> end</code>
|
|
2347
2365
|
</li>
|
|
2348
2366
|
|
|
2349
|
-
<li class="covered" data-hits="41" data-linenumber="
|
|
2367
|
+
<li class="covered" data-hits="41" data-linenumber="106">
|
|
2350
2368
|
<span class="hits">41</span>
|
|
2351
2369
|
|
|
2352
2370
|
<code class="ruby"> groups = parse</code>
|
|
2353
2371
|
</li>
|
|
2354
2372
|
|
|
2355
|
-
<li class="covered" data-hits="41" data-linenumber="
|
|
2373
|
+
<li class="covered" data-hits="41" data-linenumber="107">
|
|
2356
2374
|
<span class="hits">41</span>
|
|
2357
2375
|
|
|
2358
2376
|
<code class="ruby"> MultiGroup.new(groups, group_id)</code>
|
|
2359
2377
|
</li>
|
|
2360
2378
|
|
|
2361
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2379
|
+
<li class="never" data-hits="" data-linenumber="108">
|
|
2362
2380
|
|
|
2363
2381
|
|
|
2364
2382
|
<code class="ruby"> end</code>
|
|
2365
2383
|
</li>
|
|
2366
2384
|
|
|
2367
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2385
|
+
<li class="never" data-hits="" data-linenumber="109">
|
|
2368
2386
|
|
|
2369
2387
|
|
|
2370
2388
|
<code class="ruby"></code>
|
|
2371
2389
|
</li>
|
|
2372
2390
|
|
|
2373
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
2391
|
+
<li class="covered" data-hits="1" data-linenumber="110">
|
|
2374
2392
|
<span class="hits">1</span>
|
|
2375
2393
|
|
|
2376
2394
|
<code class="ruby"> def parse_multi_end_group</code>
|
|
2377
2395
|
</li>
|
|
2378
2396
|
|
|
2379
|
-
<li class="covered" data-hits="41" data-linenumber="
|
|
2397
|
+
<li class="covered" data-hits="41" data-linenumber="111">
|
|
2380
2398
|
<span class="hits">41</span>
|
|
2381
2399
|
|
|
2382
2400
|
<code class="ruby"> MultiGroupEnd.new</code>
|
|
2383
2401
|
</li>
|
|
2384
2402
|
|
|
2385
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2403
|
+
<li class="never" data-hits="" data-linenumber="112">
|
|
2386
2404
|
|
|
2387
2405
|
|
|
2388
2406
|
<code class="ruby"> end</code>
|
|
2389
2407
|
</li>
|
|
2390
2408
|
|
|
2391
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2409
|
+
<li class="never" data-hits="" data-linenumber="113">
|
|
2392
2410
|
|
|
2393
2411
|
|
|
2394
2412
|
<code class="ruby"></code>
|
|
2395
2413
|
</li>
|
|
2396
2414
|
|
|
2397
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
2415
|
+
<li class="covered" data-hits="1" data-linenumber="114">
|
|
2398
2416
|
<span class="hits">1</span>
|
|
2399
2417
|
|
|
2400
2418
|
<code class="ruby"> def parse_char_group</code>
|
|
2401
2419
|
</li>
|
|
2402
2420
|
|
|
2403
|
-
<li class="covered" data-hits="14" data-linenumber="
|
|
2421
|
+
<li class="covered" data-hits="14" data-linenumber="115">
|
|
2404
2422
|
<span class="hits">14</span>
|
|
2405
2423
|
|
|
2406
2424
|
<code class="ruby"> chars = []</code>
|
|
2407
2425
|
</li>
|
|
2408
2426
|
|
|
2409
|
-
<li class="covered" data-hits="14" data-linenumber="
|
|
2427
|
+
<li class="covered" data-hits="14" data-linenumber="116">
|
|
2410
2428
|
<span class="hits">14</span>
|
|
2411
2429
|
|
|
2412
2430
|
<code class="ruby"> @current_position += 1</code>
|
|
2413
2431
|
</li>
|
|
2414
2432
|
|
|
2415
|
-
<li class="covered" data-hits="14" data-linenumber="
|
|
2433
|
+
<li class="covered" data-hits="14" data-linenumber="117">
|
|
2416
2434
|
<span class="hits">14</span>
|
|
2417
2435
|
|
|
2418
2436
|
<code class="ruby"> if regexp_string[@current_position] == ']'</code>
|
|
2419
2437
|
</li>
|
|
2420
2438
|
|
|
2421
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2439
|
+
<li class="never" data-hits="" data-linenumber="118">
|
|
2422
2440
|
|
|
2423
2441
|
|
|
2424
2442
|
<code class="ruby"> # Beware of the sneaky edge case:</code>
|
|
2425
2443
|
</li>
|
|
2426
2444
|
|
|
2427
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2445
|
+
<li class="never" data-hits="" data-linenumber="119">
|
|
2428
2446
|
|
|
2429
2447
|
|
|
2430
2448
|
<code class="ruby"> # /[]]/ (match "]")</code>
|
|
2431
2449
|
</li>
|
|
2432
2450
|
|
|
2433
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
2451
|
+
<li class="covered" data-hits="1" data-linenumber="120">
|
|
2434
2452
|
<span class="hits">1</span>
|
|
2435
2453
|
|
|
2436
2454
|
<code class="ruby"> chars << ']'</code>
|
|
2437
2455
|
</li>
|
|
2438
2456
|
|
|
2439
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
2457
|
+
<li class="covered" data-hits="1" data-linenumber="121">
|
|
2440
2458
|
<span class="hits">1</span>
|
|
2441
2459
|
|
|
2442
2460
|
<code class="ruby"> @current_position += 1</code>
|
|
2443
2461
|
</li>
|
|
2444
2462
|
|
|
2445
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2463
|
+
<li class="never" data-hits="" data-linenumber="122">
|
|
2446
2464
|
|
|
2447
2465
|
|
|
2448
2466
|
<code class="ruby"> end</code>
|
|
2449
2467
|
</li>
|
|
2450
2468
|
|
|
2451
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2469
|
+
<li class="never" data-hits="" data-linenumber="123">
|
|
2452
2470
|
|
|
2453
2471
|
|
|
2454
2472
|
<code class="ruby"> until regexp_string[@current_position] == ']' \</code>
|
|
2455
2473
|
</li>
|
|
2456
2474
|
|
|
2457
|
-
<li class="covered" data-hits="14" data-linenumber="
|
|
2475
|
+
<li class="covered" data-hits="14" data-linenumber="124">
|
|
2458
2476
|
<span class="hits">14</span>
|
|
2459
2477
|
|
|
2460
2478
|
<code class="ruby"> && !regexp_string[0..@current_position-1].match(/[^\\](\\{2})*\\\z/)</code>
|
|
2461
2479
|
</li>
|
|
2462
2480
|
|
|
2463
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2481
|
+
<li class="never" data-hits="" data-linenumber="125">
|
|
2464
2482
|
|
|
2465
2483
|
|
|
2466
2484
|
<code class="ruby"> # Beware of having an ODD number of "\" before the "]", e.g.</code>
|
|
2467
2485
|
</li>
|
|
2468
2486
|
|
|
2469
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2487
|
+
<li class="never" data-hits="" data-linenumber="126">
|
|
2470
2488
|
|
|
2471
2489
|
|
|
2472
2490
|
<code class="ruby"> # /[\]]/ (match "]")</code>
|
|
2473
2491
|
</li>
|
|
2474
2492
|
|
|
2475
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2493
|
+
<li class="never" data-hits="" data-linenumber="127">
|
|
2476
2494
|
|
|
2477
2495
|
|
|
2478
2496
|
<code class="ruby"> # /[\\]/ (match "\")</code>
|
|
2479
2497
|
</li>
|
|
2480
2498
|
|
|
2481
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2499
|
+
<li class="never" data-hits="" data-linenumber="128">
|
|
2482
2500
|
|
|
2483
2501
|
|
|
2484
2502
|
<code class="ruby"> # /[\\\]]/ (match "\" or "]")</code>
|
|
2485
2503
|
</li>
|
|
2486
2504
|
|
|
2487
|
-
<li class="covered" data-hits="41" data-linenumber="
|
|
2505
|
+
<li class="covered" data-hits="41" data-linenumber="129">
|
|
2488
2506
|
<span class="hits">41</span>
|
|
2489
2507
|
|
|
2490
2508
|
<code class="ruby"> chars << regexp_string[@current_position]</code>
|
|
2491
2509
|
</li>
|
|
2492
2510
|
|
|
2493
|
-
<li class="covered" data-hits="41" data-linenumber="
|
|
2511
|
+
<li class="covered" data-hits="41" data-linenumber="130">
|
|
2494
2512
|
<span class="hits">41</span>
|
|
2495
2513
|
|
|
2496
2514
|
<code class="ruby"> @current_position += 1</code>
|
|
2497
2515
|
</li>
|
|
2498
2516
|
|
|
2499
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2517
|
+
<li class="never" data-hits="" data-linenumber="131">
|
|
2500
2518
|
|
|
2501
2519
|
|
|
2502
2520
|
<code class="ruby"> end</code>
|
|
2503
2521
|
</li>
|
|
2504
2522
|
|
|
2505
|
-
<li class="covered" data-hits="14" data-linenumber="
|
|
2523
|
+
<li class="covered" data-hits="14" data-linenumber="132">
|
|
2506
2524
|
<span class="hits">14</span>
|
|
2507
2525
|
|
|
2508
2526
|
<code class="ruby"> CharGroup.new(chars)</code>
|
|
2509
2527
|
</li>
|
|
2510
2528
|
|
|
2511
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2529
|
+
<li class="never" data-hits="" data-linenumber="133">
|
|
2512
2530
|
|
|
2513
2531
|
|
|
2514
2532
|
<code class="ruby"> end</code>
|
|
2515
2533
|
</li>
|
|
2516
2534
|
|
|
2517
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2535
|
+
<li class="never" data-hits="" data-linenumber="134">
|
|
2518
2536
|
|
|
2519
2537
|
|
|
2520
2538
|
<code class="ruby"></code>
|
|
2521
2539
|
</li>
|
|
2522
2540
|
|
|
2523
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
2541
|
+
<li class="covered" data-hits="1" data-linenumber="135">
|
|
2524
2542
|
<span class="hits">1</span>
|
|
2525
2543
|
|
|
2526
2544
|
<code class="ruby"> def parse_dot_group</code>
|
|
2527
2545
|
</li>
|
|
2528
2546
|
|
|
2529
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
2547
|
+
<li class="covered" data-hits="1" data-linenumber="136">
|
|
2530
2548
|
<span class="hits">1</span>
|
|
2531
2549
|
|
|
2532
2550
|
<code class="ruby"> DotGroup.new</code>
|
|
2533
2551
|
</li>
|
|
2534
2552
|
|
|
2535
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2553
|
+
<li class="never" data-hits="" data-linenumber="137">
|
|
2536
2554
|
|
|
2537
2555
|
|
|
2538
2556
|
<code class="ruby"> end</code>
|
|
2539
2557
|
</li>
|
|
2540
2558
|
|
|
2541
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2559
|
+
<li class="never" data-hits="" data-linenumber="138">
|
|
2542
2560
|
|
|
2543
2561
|
|
|
2544
2562
|
<code class="ruby"></code>
|
|
2545
2563
|
</li>
|
|
2546
2564
|
|
|
2547
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
2565
|
+
<li class="covered" data-hits="1" data-linenumber="139">
|
|
2548
2566
|
<span class="hits">1</span>
|
|
2549
2567
|
|
|
2550
2568
|
<code class="ruby"> def parse_or_group(left_repeaters)</code>
|
|
2551
2569
|
</li>
|
|
2552
2570
|
|
|
2553
|
-
<li class="covered" data-hits="6" data-linenumber="
|
|
2571
|
+
<li class="covered" data-hits="6" data-linenumber="140">
|
|
2554
2572
|
<span class="hits">6</span>
|
|
2555
2573
|
|
|
2556
2574
|
<code class="ruby"> @current_position += 1</code>
|
|
2557
2575
|
</li>
|
|
2558
2576
|
|
|
2559
|
-
<li class="covered" data-hits="6" data-linenumber="
|
|
2577
|
+
<li class="covered" data-hits="6" data-linenumber="141">
|
|
2560
2578
|
<span class="hits">6</span>
|
|
2561
2579
|
|
|
2562
2580
|
<code class="ruby"> right_repeaters = parse</code>
|
|
2563
2581
|
</li>
|
|
2564
2582
|
|
|
2565
|
-
<li class="covered" data-hits="6" data-linenumber="
|
|
2583
|
+
<li class="covered" data-hits="6" data-linenumber="142">
|
|
2566
2584
|
<span class="hits">6</span>
|
|
2567
2585
|
|
|
2568
2586
|
<code class="ruby"> OrGroup.new(left_repeaters, right_repeaters)</code>
|
|
2569
2587
|
</li>
|
|
2570
2588
|
|
|
2571
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2589
|
+
<li class="never" data-hits="" data-linenumber="143">
|
|
2572
2590
|
|
|
2573
2591
|
|
|
2574
2592
|
<code class="ruby"> end</code>
|
|
2575
2593
|
</li>
|
|
2576
2594
|
|
|
2577
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2595
|
+
<li class="never" data-hits="" data-linenumber="144">
|
|
2578
2596
|
|
|
2579
2597
|
|
|
2580
2598
|
<code class="ruby"></code>
|
|
2581
2599
|
</li>
|
|
2582
2600
|
|
|
2583
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2601
|
+
<li class="never" data-hits="" data-linenumber="145">
|
|
2584
2602
|
|
|
2585
2603
|
|
|
2586
2604
|
<code class="ruby"></code>
|
|
2587
2605
|
</li>
|
|
2588
2606
|
|
|
2589
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
2607
|
+
<li class="covered" data-hits="1" data-linenumber="146">
|
|
2590
2608
|
<span class="hits">1</span>
|
|
2591
2609
|
|
|
2592
2610
|
<code class="ruby"> def parse_single_char_group(char)</code>
|
|
2593
2611
|
</li>
|
|
2594
2612
|
|
|
2595
|
-
<li class="covered" data-hits="
|
|
2596
|
-
<span class="hits">
|
|
2613
|
+
<li class="covered" data-hits="182" data-linenumber="147">
|
|
2614
|
+
<span class="hits">182</span>
|
|
2597
2615
|
|
|
2598
2616
|
<code class="ruby"> SingleCharGroup.new(char)</code>
|
|
2599
2617
|
</li>
|
|
2600
2618
|
|
|
2601
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2619
|
+
<li class="never" data-hits="" data-linenumber="148">
|
|
2602
2620
|
|
|
2603
2621
|
|
|
2604
2622
|
<code class="ruby"> end</code>
|
|
2605
2623
|
</li>
|
|
2606
2624
|
|
|
2607
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2625
|
+
<li class="never" data-hits="" data-linenumber="149">
|
|
2608
2626
|
|
|
2609
2627
|
|
|
2610
2628
|
<code class="ruby"></code>
|
|
2611
2629
|
</li>
|
|
2612
2630
|
|
|
2613
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
2631
|
+
<li class="covered" data-hits="1" data-linenumber="150">
|
|
2614
2632
|
<span class="hits">1</span>
|
|
2615
2633
|
|
|
2616
2634
|
<code class="ruby"> def parse_backreference_group(match)</code>
|
|
2617
2635
|
</li>
|
|
2618
2636
|
|
|
2619
|
-
<li class="covered" data-hits="20" data-linenumber="
|
|
2637
|
+
<li class="covered" data-hits="20" data-linenumber="151">
|
|
2620
2638
|
<span class="hits">20</span>
|
|
2621
2639
|
|
|
2622
2640
|
<code class="ruby"> BackReferenceGroup.new(match)</code>
|
|
2623
2641
|
</li>
|
|
2624
2642
|
|
|
2625
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2643
|
+
<li class="never" data-hits="" data-linenumber="152">
|
|
2626
2644
|
|
|
2627
2645
|
|
|
2628
2646
|
<code class="ruby"> end</code>
|
|
2629
2647
|
</li>
|
|
2630
2648
|
|
|
2631
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2649
|
+
<li class="never" data-hits="" data-linenumber="153">
|
|
2632
2650
|
|
|
2633
2651
|
|
|
2634
2652
|
<code class="ruby"></code>
|
|
2635
2653
|
</li>
|
|
2636
2654
|
|
|
2637
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
2655
|
+
<li class="covered" data-hits="1" data-linenumber="154">
|
|
2656
|
+
<span class="hits">1</span>
|
|
2657
|
+
|
|
2658
|
+
<code class="ruby"> def parse_control_character(char)</code>
|
|
2659
|
+
</li>
|
|
2660
|
+
|
|
2661
|
+
<li class="never" data-hits="" data-linenumber="155">
|
|
2662
|
+
|
|
2663
|
+
|
|
2664
|
+
<code class="ruby"> # TODO: Is there a better way of doing this? I.e. not just brute-force</code>
|
|
2665
|
+
</li>
|
|
2666
|
+
|
|
2667
|
+
<li class="covered" data-hits="125" data-linenumber="156">
|
|
2668
|
+
<span class="hits">125</span>
|
|
2669
|
+
|
|
2670
|
+
<code class="ruby"> (0..255).detect { |x| x.chr =~ Regexp.new("\\c#{char}") }.chr</code>
|
|
2671
|
+
</li>
|
|
2672
|
+
|
|
2673
|
+
<li class="never" data-hits="" data-linenumber="157">
|
|
2674
|
+
|
|
2675
|
+
|
|
2676
|
+
<code class="ruby"> end</code>
|
|
2677
|
+
</li>
|
|
2678
|
+
|
|
2679
|
+
<li class="never" data-hits="" data-linenumber="158">
|
|
2680
|
+
|
|
2681
|
+
|
|
2682
|
+
<code class="ruby"></code>
|
|
2683
|
+
</li>
|
|
2684
|
+
|
|
2685
|
+
<li class="covered" data-hits="1" data-linenumber="159">
|
|
2638
2686
|
<span class="hits">1</span>
|
|
2639
2687
|
|
|
2640
2688
|
<code class="ruby"> def parse_star_repeater(group)</code>
|
|
2641
2689
|
</li>
|
|
2642
2690
|
|
|
2643
|
-
<li class="covered" data-hits="5" data-linenumber="
|
|
2691
|
+
<li class="covered" data-hits="5" data-linenumber="160">
|
|
2644
2692
|
<span class="hits">5</span>
|
|
2645
2693
|
|
|
2646
2694
|
<code class="ruby"> @current_position += 1</code>
|
|
2647
2695
|
</li>
|
|
2648
2696
|
|
|
2649
|
-
<li class="covered" data-hits="5" data-linenumber="
|
|
2697
|
+
<li class="covered" data-hits="5" data-linenumber="161">
|
|
2650
2698
|
<span class="hits">5</span>
|
|
2651
2699
|
|
|
2652
2700
|
<code class="ruby"> StarRepeater.new(group)</code>
|
|
2653
2701
|
</li>
|
|
2654
2702
|
|
|
2655
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2703
|
+
<li class="never" data-hits="" data-linenumber="162">
|
|
2656
2704
|
|
|
2657
2705
|
|
|
2658
2706
|
<code class="ruby"> end</code>
|
|
2659
2707
|
</li>
|
|
2660
2708
|
|
|
2661
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2709
|
+
<li class="never" data-hits="" data-linenumber="163">
|
|
2662
2710
|
|
|
2663
2711
|
|
|
2664
2712
|
<code class="ruby"></code>
|
|
2665
2713
|
</li>
|
|
2666
2714
|
|
|
2667
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
2715
|
+
<li class="covered" data-hits="1" data-linenumber="164">
|
|
2668
2716
|
<span class="hits">1</span>
|
|
2669
2717
|
|
|
2670
2718
|
<code class="ruby"> def parse_plus_repeater(group)</code>
|
|
2671
2719
|
</li>
|
|
2672
2720
|
|
|
2673
|
-
<li class="covered" data-hits="4" data-linenumber="
|
|
2721
|
+
<li class="covered" data-hits="4" data-linenumber="165">
|
|
2674
2722
|
<span class="hits">4</span>
|
|
2675
2723
|
|
|
2676
2724
|
<code class="ruby"> @current_position += 1</code>
|
|
2677
2725
|
</li>
|
|
2678
2726
|
|
|
2679
|
-
<li class="covered" data-hits="4" data-linenumber="
|
|
2727
|
+
<li class="covered" data-hits="4" data-linenumber="166">
|
|
2680
2728
|
<span class="hits">4</span>
|
|
2681
2729
|
|
|
2682
2730
|
<code class="ruby"> PlusRepeater.new(group)</code>
|
|
2683
2731
|
</li>
|
|
2684
2732
|
|
|
2685
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2733
|
+
<li class="never" data-hits="" data-linenumber="167">
|
|
2686
2734
|
|
|
2687
2735
|
|
|
2688
2736
|
<code class="ruby"> end</code>
|
|
2689
2737
|
</li>
|
|
2690
2738
|
|
|
2691
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2739
|
+
<li class="never" data-hits="" data-linenumber="168">
|
|
2692
2740
|
|
|
2693
2741
|
|
|
2694
2742
|
<code class="ruby"></code>
|
|
2695
2743
|
</li>
|
|
2696
2744
|
|
|
2697
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
2745
|
+
<li class="covered" data-hits="1" data-linenumber="169">
|
|
2698
2746
|
<span class="hits">1</span>
|
|
2699
2747
|
|
|
2700
2748
|
<code class="ruby"> def parse_question_mark_repeater(group)</code>
|
|
2701
2749
|
</li>
|
|
2702
2750
|
|
|
2703
|
-
<li class="covered" data-hits="11" data-linenumber="
|
|
2751
|
+
<li class="covered" data-hits="11" data-linenumber="170">
|
|
2704
2752
|
<span class="hits">11</span>
|
|
2705
2753
|
|
|
2706
2754
|
<code class="ruby"> @current_position += 1</code>
|
|
2707
2755
|
</li>
|
|
2708
2756
|
|
|
2709
|
-
<li class="covered" data-hits="11" data-linenumber="
|
|
2757
|
+
<li class="covered" data-hits="11" data-linenumber="171">
|
|
2710
2758
|
<span class="hits">11</span>
|
|
2711
2759
|
|
|
2712
2760
|
<code class="ruby"> QuestionMarkRepeater.new(group)</code>
|
|
2713
2761
|
</li>
|
|
2714
2762
|
|
|
2715
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2763
|
+
<li class="never" data-hits="" data-linenumber="172">
|
|
2716
2764
|
|
|
2717
2765
|
|
|
2718
2766
|
<code class="ruby"> end</code>
|
|
2719
2767
|
</li>
|
|
2720
2768
|
|
|
2721
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2769
|
+
<li class="never" data-hits="" data-linenumber="173">
|
|
2722
2770
|
|
|
2723
2771
|
|
|
2724
2772
|
<code class="ruby"></code>
|
|
2725
2773
|
</li>
|
|
2726
2774
|
|
|
2727
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
2775
|
+
<li class="covered" data-hits="1" data-linenumber="174">
|
|
2728
2776
|
<span class="hits">1</span>
|
|
2729
2777
|
|
|
2730
2778
|
<code class="ruby"> def parse_range_repeater(group)</code>
|
|
2731
2779
|
</li>
|
|
2732
2780
|
|
|
2733
|
-
<li class="covered" data-hits="
|
|
2734
|
-
<span class="hits">
|
|
2781
|
+
<li class="covered" data-hits="5" data-linenumber="175">
|
|
2782
|
+
<span class="hits">5</span>
|
|
2735
2783
|
|
|
2736
|
-
<code class="ruby"> match = rest_of_string.match(/\A\{(\d+)(,)?(\d+)?\}/)</code>
|
|
2784
|
+
<code class="ruby"> match = rest_of_string.match(/\A\{(\d+)?(,)?(\d+)?\}/)</code>
|
|
2737
2785
|
</li>
|
|
2738
2786
|
|
|
2739
|
-
<li class="covered" data-hits="
|
|
2740
|
-
<span class="hits">
|
|
2787
|
+
<li class="covered" data-hits="5" data-linenumber="176">
|
|
2788
|
+
<span class="hits">5</span>
|
|
2741
2789
|
|
|
2742
2790
|
<code class="ruby"> @current_position += match[0].size</code>
|
|
2743
2791
|
</li>
|
|
2744
2792
|
|
|
2745
|
-
<li class="covered" data-hits="
|
|
2746
|
-
<span class="hits">
|
|
2793
|
+
<li class="covered" data-hits="5" data-linenumber="177">
|
|
2794
|
+
<span class="hits">5</span>
|
|
2747
2795
|
|
|
2748
2796
|
<code class="ruby"> min = match[1].to_i if match[1]</code>
|
|
2749
2797
|
</li>
|
|
2750
2798
|
|
|
2751
|
-
<li class="covered" data-hits="
|
|
2752
|
-
<span class="hits">
|
|
2799
|
+
<li class="covered" data-hits="5" data-linenumber="178">
|
|
2800
|
+
<span class="hits">5</span>
|
|
2753
2801
|
|
|
2754
2802
|
<code class="ruby"> has_comma = !match[2].nil?</code>
|
|
2755
2803
|
</li>
|
|
2756
2804
|
|
|
2757
|
-
<li class="covered" data-hits="
|
|
2758
|
-
<span class="hits">
|
|
2805
|
+
<li class="covered" data-hits="5" data-linenumber="179">
|
|
2806
|
+
<span class="hits">5</span>
|
|
2759
2807
|
|
|
2760
2808
|
<code class="ruby"> max = match[3].to_i if match[3]</code>
|
|
2761
2809
|
</li>
|
|
2762
2810
|
|
|
2763
|
-
<li class="covered" data-hits="
|
|
2764
|
-
<span class="hits">
|
|
2811
|
+
<li class="covered" data-hits="5" data-linenumber="180">
|
|
2812
|
+
<span class="hits">5</span>
|
|
2765
2813
|
|
|
2766
2814
|
<code class="ruby"> RangeRepeater.new(group, min, has_comma, max)</code>
|
|
2767
2815
|
</li>
|
|
2768
2816
|
|
|
2769
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2817
|
+
<li class="never" data-hits="" data-linenumber="181">
|
|
2770
2818
|
|
|
2771
2819
|
|
|
2772
2820
|
<code class="ruby"> end</code>
|
|
2773
2821
|
</li>
|
|
2774
2822
|
|
|
2775
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2823
|
+
<li class="never" data-hits="" data-linenumber="182">
|
|
2776
2824
|
|
|
2777
2825
|
|
|
2778
2826
|
<code class="ruby"></code>
|
|
2779
2827
|
</li>
|
|
2780
2828
|
|
|
2781
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
2829
|
+
<li class="covered" data-hits="1" data-linenumber="183">
|
|
2782
2830
|
<span class="hits">1</span>
|
|
2783
2831
|
|
|
2784
2832
|
<code class="ruby"> def parse_one_time_repeater(group)</code>
|
|
2785
2833
|
</li>
|
|
2786
2834
|
|
|
2787
|
-
<li class="covered" data-hits="
|
|
2788
|
-
<span class="hits">
|
|
2835
|
+
<li class="covered" data-hits="253" data-linenumber="184">
|
|
2836
|
+
<span class="hits">253</span>
|
|
2789
2837
|
|
|
2790
2838
|
<code class="ruby"> OneTimeRepeater.new(group)</code>
|
|
2791
2839
|
</li>
|
|
2792
2840
|
|
|
2793
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2841
|
+
<li class="never" data-hits="" data-linenumber="185">
|
|
2794
2842
|
|
|
2795
2843
|
|
|
2796
2844
|
<code class="ruby"> end</code>
|
|
2797
2845
|
</li>
|
|
2798
2846
|
|
|
2799
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2847
|
+
<li class="never" data-hits="" data-linenumber="186">
|
|
2800
2848
|
|
|
2801
2849
|
|
|
2802
2850
|
<code class="ruby"></code>
|
|
2803
2851
|
</li>
|
|
2804
2852
|
|
|
2805
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
2853
|
+
<li class="covered" data-hits="1" data-linenumber="187">
|
|
2806
2854
|
<span class="hits">1</span>
|
|
2807
2855
|
|
|
2808
2856
|
<code class="ruby"> def rest_of_string</code>
|
|
2809
2857
|
</li>
|
|
2810
2858
|
|
|
2811
|
-
<li class="covered" data-hits="
|
|
2812
|
-
<span class="hits">
|
|
2859
|
+
<li class="covered" data-hits="123" data-linenumber="188">
|
|
2860
|
+
<span class="hits">123</span>
|
|
2813
2861
|
|
|
2814
2862
|
<code class="ruby"> regexp_string[@current_position..-1]</code>
|
|
2815
2863
|
</li>
|
|
2816
2864
|
|
|
2817
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2865
|
+
<li class="never" data-hits="" data-linenumber="189">
|
|
2818
2866
|
|
|
2819
2867
|
|
|
2820
2868
|
<code class="ruby"> end</code>
|
|
2821
2869
|
</li>
|
|
2822
2870
|
|
|
2823
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2871
|
+
<li class="never" data-hits="" data-linenumber="190">
|
|
2824
2872
|
|
|
2825
2873
|
|
|
2826
2874
|
<code class="ruby"> end</code>
|
|
2827
2875
|
</li>
|
|
2828
2876
|
|
|
2829
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2877
|
+
<li class="never" data-hits="" data-linenumber="191">
|
|
2830
2878
|
|
|
2831
2879
|
|
|
2832
2880
|
<code class="ruby">end</code>
|
|
2833
2881
|
</li>
|
|
2834
2882
|
|
|
2835
|
-
<li class="never" data-hits="" data-linenumber="
|
|
2883
|
+
<li class="never" data-hits="" data-linenumber="192">
|
|
2836
2884
|
|
|
2837
2885
|
|
|
2838
2886
|
<code class="ruby"></code>
|
|
@@ -2874,8 +2922,8 @@
|
|
|
2874
2922
|
<code class="ruby"> def examples</code>
|
|
2875
2923
|
</li>
|
|
2876
2924
|
|
|
2877
|
-
<li class="covered" data-hits="
|
|
2878
|
-
<span class="hits">
|
|
2925
|
+
<li class="covered" data-hits="65" data-linenumber="4">
|
|
2926
|
+
<span class="hits">65</span>
|
|
2879
2927
|
|
|
2880
2928
|
<code class="ruby"> partial_examples =</code>
|
|
2881
2929
|
</li>
|
|
@@ -2892,20 +2940,20 @@
|
|
|
2892
2940
|
<code class="ruby"> .parse</code>
|
|
2893
2941
|
</li>
|
|
2894
2942
|
|
|
2895
|
-
<li class="covered" data-hits="
|
|
2896
|
-
<span class="hits">
|
|
2943
|
+
<li class="covered" data-hits="121" data-linenumber="7">
|
|
2944
|
+
<span class="hits">121</span>
|
|
2897
2945
|
|
|
2898
2946
|
<code class="ruby"> .map {|repeater| repeater.result}</code>
|
|
2899
2947
|
</li>
|
|
2900
2948
|
|
|
2901
|
-
<li class="covered" data-hits="
|
|
2902
|
-
<span class="hits">
|
|
2949
|
+
<li class="covered" data-hits="61" data-linenumber="8">
|
|
2950
|
+
<span class="hits">61</span>
|
|
2903
2951
|
|
|
2904
2952
|
<code class="ruby"> full_examples = RegexpExamples::permutations_of_strings(partial_examples)</code>
|
|
2905
2953
|
</li>
|
|
2906
2954
|
|
|
2907
|
-
<li class="covered" data-hits="
|
|
2908
|
-
<span class="hits">
|
|
2955
|
+
<li class="covered" data-hits="61" data-linenumber="9">
|
|
2956
|
+
<span class="hits">61</span>
|
|
2909
2957
|
|
|
2910
2958
|
<code class="ruby"> RegexpExamples::BackReferenceReplacer.new.substitute_backreferences(full_examples)</code>
|
|
2911
2959
|
</li>
|
|
@@ -2982,8 +3030,8 @@
|
|
|
2982
3030
|
<code class="ruby"> def initialize(group)</code>
|
|
2983
3031
|
</li>
|
|
2984
3032
|
|
|
2985
|
-
<li class="covered" data-hits="
|
|
2986
|
-
<span class="hits">
|
|
3033
|
+
<li class="covered" data-hits="278" data-linenumber="5">
|
|
3034
|
+
<span class="hits">278</span>
|
|
2987
3035
|
|
|
2988
3036
|
<code class="ruby"> @group = group</code>
|
|
2989
3037
|
</li>
|
|
@@ -3006,32 +3054,32 @@
|
|
|
3006
3054
|
<code class="ruby"> def result(min_repeats, max_repeats)</code>
|
|
3007
3055
|
</li>
|
|
3008
3056
|
|
|
3009
|
-
<li class="covered" data-hits="
|
|
3010
|
-
<span class="hits">
|
|
3057
|
+
<li class="covered" data-hits="278" data-linenumber="9">
|
|
3058
|
+
<span class="hits">278</span>
|
|
3011
3059
|
|
|
3012
3060
|
<code class="ruby"> group_results = @group.result[0 .. MaxGroupResults-1]</code>
|
|
3013
3061
|
</li>
|
|
3014
3062
|
|
|
3015
|
-
<li class="covered" data-hits="
|
|
3016
|
-
<span class="hits">
|
|
3063
|
+
<li class="covered" data-hits="278" data-linenumber="10">
|
|
3064
|
+
<span class="hits">278</span>
|
|
3017
3065
|
|
|
3018
3066
|
<code class="ruby"> results = []</code>
|
|
3019
3067
|
</li>
|
|
3020
3068
|
|
|
3021
|
-
<li class="covered" data-hits="
|
|
3022
|
-
<span class="hits">
|
|
3069
|
+
<li class="covered" data-hits="278" data-linenumber="11">
|
|
3070
|
+
<span class="hits">278</span>
|
|
3023
3071
|
|
|
3024
3072
|
<code class="ruby"> min_repeats.upto(max_repeats) do |repeats|</code>
|
|
3025
3073
|
</li>
|
|
3026
3074
|
|
|
3027
|
-
<li class="covered" data-hits="
|
|
3028
|
-
<span class="hits">
|
|
3075
|
+
<li class="covered" data-hits="308" data-linenumber="12">
|
|
3076
|
+
<span class="hits">308</span>
|
|
3029
3077
|
|
|
3030
3078
|
<code class="ruby"> group_results.each do |group_result|</code>
|
|
3031
3079
|
</li>
|
|
3032
3080
|
|
|
3033
|
-
<li class="covered" data-hits="
|
|
3034
|
-
<span class="hits">
|
|
3081
|
+
<li class="covered" data-hits="422" data-linenumber="13">
|
|
3082
|
+
<span class="hits">422</span>
|
|
3035
3083
|
|
|
3036
3084
|
<code class="ruby"> results << group_result * repeats</code>
|
|
3037
3085
|
</li>
|
|
@@ -3048,8 +3096,8 @@
|
|
|
3048
3096
|
<code class="ruby"> end</code>
|
|
3049
3097
|
</li>
|
|
3050
3098
|
|
|
3051
|
-
<li class="covered" data-hits="
|
|
3052
|
-
<span class="hits">
|
|
3099
|
+
<li class="covered" data-hits="278" data-linenumber="16">
|
|
3100
|
+
<span class="hits">278</span>
|
|
3053
3101
|
|
|
3054
3102
|
<code class="ruby"> results.uniq</code>
|
|
3055
3103
|
</li>
|
|
@@ -3084,8 +3132,8 @@
|
|
|
3084
3132
|
<code class="ruby"> def initialize(group)</code>
|
|
3085
3133
|
</li>
|
|
3086
3134
|
|
|
3087
|
-
<li class="covered" data-hits="
|
|
3088
|
-
<span class="hits">
|
|
3135
|
+
<li class="covered" data-hits="253" data-linenumber="22">
|
|
3136
|
+
<span class="hits">253</span>
|
|
3089
3137
|
|
|
3090
3138
|
<code class="ruby"> super</code>
|
|
3091
3139
|
</li>
|
|
@@ -3108,8 +3156,8 @@
|
|
|
3108
3156
|
<code class="ruby"> def result</code>
|
|
3109
3157
|
</li>
|
|
3110
3158
|
|
|
3111
|
-
<li class="covered" data-hits="
|
|
3112
|
-
<span class="hits">
|
|
3159
|
+
<li class="covered" data-hits="253" data-linenumber="26">
|
|
3160
|
+
<span class="hits">253</span>
|
|
3113
3161
|
|
|
3114
3162
|
<code class="ruby"> super(1, 1)</code>
|
|
3115
3163
|
</li>
|
|
@@ -3324,26 +3372,26 @@
|
|
|
3324
3372
|
<code class="ruby"> def initialize(group, min, has_comma, max)</code>
|
|
3325
3373
|
</li>
|
|
3326
3374
|
|
|
3327
|
-
<li class="covered" data-hits="
|
|
3328
|
-
<span class="hits">
|
|
3375
|
+
<li class="covered" data-hits="5" data-linenumber="62">
|
|
3376
|
+
<span class="hits">5</span>
|
|
3329
3377
|
|
|
3330
3378
|
<code class="ruby"> super(group)</code>
|
|
3331
3379
|
</li>
|
|
3332
3380
|
|
|
3333
|
-
<li class="covered" data-hits="
|
|
3334
|
-
<span class="hits">
|
|
3381
|
+
<li class="covered" data-hits="5" data-linenumber="63">
|
|
3382
|
+
<span class="hits">5</span>
|
|
3335
3383
|
|
|
3336
|
-
<code class="ruby"> @min = min</code>
|
|
3384
|
+
<code class="ruby"> @min = min || 0</code>
|
|
3337
3385
|
</li>
|
|
3338
3386
|
|
|
3339
|
-
<li class="covered" data-hits="
|
|
3340
|
-
<span class="hits">
|
|
3387
|
+
<li class="covered" data-hits="5" data-linenumber="64">
|
|
3388
|
+
<span class="hits">5</span>
|
|
3341
3389
|
|
|
3342
3390
|
<code class="ruby"> if max</code>
|
|
3343
3391
|
</li>
|
|
3344
3392
|
|
|
3345
|
-
<li class="covered" data-hits="
|
|
3346
|
-
<span class="hits">
|
|
3393
|
+
<li class="covered" data-hits="2" data-linenumber="65">
|
|
3394
|
+
<span class="hits">2</span>
|
|
3347
3395
|
|
|
3348
3396
|
<code class="ruby"> @max = max</code>
|
|
3349
3397
|
</li>
|
|
@@ -3396,8 +3444,8 @@
|
|
|
3396
3444
|
<code class="ruby"> def result</code>
|
|
3397
3445
|
</li>
|
|
3398
3446
|
|
|
3399
|
-
<li class="covered" data-hits="
|
|
3400
|
-
<span class="hits">
|
|
3447
|
+
<li class="covered" data-hits="5" data-linenumber="74">
|
|
3448
|
+
<span class="hits">5</span>
|
|
3401
3449
|
|
|
3402
3450
|
<code class="ruby"> super(@min, @max)</code>
|
|
3403
3451
|
</li>
|
|
@@ -3435,8 +3483,8 @@
|
|
|
3435
3483
|
<h3>spec/regexp-examples_spec.rb</h3>
|
|
3436
3484
|
<h4><span class="green">100.0 %</span> covered</h4>
|
|
3437
3485
|
<div>
|
|
3438
|
-
<b>
|
|
3439
|
-
<span class="green"><b>
|
|
3486
|
+
<b>30</b> relevant lines.
|
|
3487
|
+
<span class="green"><b>30</b> lines covered</span> and
|
|
3440
3488
|
<span class="red"><b>0</b> lines missed.</span>
|
|
3441
3489
|
</div>
|
|
3442
3490
|
</div>
|
|
@@ -3456,32 +3504,32 @@
|
|
|
3456
3504
|
<code class="ruby"> def self.examples_exist_and_match(*regexps)</code>
|
|
3457
3505
|
</li>
|
|
3458
3506
|
|
|
3459
|
-
<li class="covered" data-hits="
|
|
3460
|
-
<span class="hits">
|
|
3507
|
+
<li class="covered" data-hits="8" data-linenumber="3">
|
|
3508
|
+
<span class="hits">8</span>
|
|
3461
3509
|
|
|
3462
3510
|
<code class="ruby"> regexps.each do |regexp|</code>
|
|
3463
3511
|
</li>
|
|
3464
3512
|
|
|
3465
|
-
<li class="covered" data-hits="
|
|
3466
|
-
<span class="hits">
|
|
3513
|
+
<li class="covered" data-hits="61" data-linenumber="4">
|
|
3514
|
+
<span class="hits">61</span>
|
|
3467
3515
|
|
|
3468
3516
|
<code class="ruby"> it do</code>
|
|
3469
3517
|
</li>
|
|
3470
3518
|
|
|
3471
|
-
<li class="covered" data-hits="
|
|
3472
|
-
<span class="hits">
|
|
3519
|
+
<li class="covered" data-hits="61" data-linenumber="5">
|
|
3520
|
+
<span class="hits">61</span>
|
|
3473
3521
|
|
|
3474
3522
|
<code class="ruby"> regexp_examples = regexp.examples</code>
|
|
3475
3523
|
</li>
|
|
3476
3524
|
|
|
3477
|
-
<li class="covered" data-hits="
|
|
3478
|
-
<span class="hits">
|
|
3525
|
+
<li class="covered" data-hits="61" data-linenumber="6">
|
|
3526
|
+
<span class="hits">61</span>
|
|
3479
3527
|
|
|
3480
3528
|
<code class="ruby"> expect(regexp_examples).not_to be_empty</code>
|
|
3481
3529
|
</li>
|
|
3482
3530
|
|
|
3483
|
-
<li class="covered" data-hits="
|
|
3484
|
-
<span class="hits">
|
|
3531
|
+
<li class="covered" data-hits="218" data-linenumber="7">
|
|
3532
|
+
<span class="hits">218</span>
|
|
3485
3533
|
|
|
3486
3534
|
<code class="ruby"> regexp_examples.each { |example| expect(example).to match(/\A(?:#{regexp.source})\z/) }</code>
|
|
3487
3535
|
</li>
|
|
@@ -3639,550 +3687,622 @@
|
|
|
3639
3687
|
<li class="never" data-hits="" data-linenumber="33">
|
|
3640
3688
|
|
|
3641
3689
|
|
|
3642
|
-
<code class="ruby"> /a{
|
|
3690
|
+
<code class="ruby"> /a{,2}/,</code>
|
|
3643
3691
|
</li>
|
|
3644
3692
|
|
|
3645
3693
|
<li class="never" data-hits="" data-linenumber="34">
|
|
3646
3694
|
|
|
3647
3695
|
|
|
3648
|
-
<code class="ruby">
|
|
3696
|
+
<code class="ruby"> /a{1,2}/</code>
|
|
3649
3697
|
</li>
|
|
3650
3698
|
|
|
3651
3699
|
<li class="never" data-hits="" data-linenumber="35">
|
|
3652
3700
|
|
|
3653
3701
|
|
|
3654
|
-
<code class="ruby">
|
|
3702
|
+
<code class="ruby"> )</code>
|
|
3655
3703
|
</li>
|
|
3656
3704
|
|
|
3657
3705
|
<li class="never" data-hits="" data-linenumber="36">
|
|
3658
3706
|
|
|
3659
3707
|
|
|
3708
|
+
<code class="ruby"> end</code>
|
|
3709
|
+
</li>
|
|
3710
|
+
|
|
3711
|
+
<li class="never" data-hits="" data-linenumber="37">
|
|
3712
|
+
|
|
3713
|
+
|
|
3660
3714
|
<code class="ruby"></code>
|
|
3661
3715
|
</li>
|
|
3662
3716
|
|
|
3663
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
3717
|
+
<li class="covered" data-hits="1" data-linenumber="38">
|
|
3664
3718
|
<span class="hits">1</span>
|
|
3665
3719
|
|
|
3666
3720
|
<code class="ruby"> context "for basic groups" do</code>
|
|
3667
3721
|
</li>
|
|
3668
3722
|
|
|
3669
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
3723
|
+
<li class="covered" data-hits="1" data-linenumber="39">
|
|
3670
3724
|
<span class="hits">1</span>
|
|
3671
3725
|
|
|
3672
3726
|
<code class="ruby"> examples_exist_and_match(</code>
|
|
3673
3727
|
</li>
|
|
3674
3728
|
|
|
3675
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3729
|
+
<li class="never" data-hits="" data-linenumber="40">
|
|
3676
3730
|
|
|
3677
3731
|
|
|
3678
3732
|
<code class="ruby"> /[a]/,</code>
|
|
3679
3733
|
</li>
|
|
3680
3734
|
|
|
3681
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3735
|
+
<li class="never" data-hits="" data-linenumber="41">
|
|
3682
3736
|
|
|
3683
3737
|
|
|
3684
3738
|
<code class="ruby"> /(a)/,</code>
|
|
3685
3739
|
</li>
|
|
3686
3740
|
|
|
3687
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3741
|
+
<li class="never" data-hits="" data-linenumber="42">
|
|
3688
3742
|
|
|
3689
3743
|
|
|
3690
3744
|
<code class="ruby"> /a|b/,</code>
|
|
3691
3745
|
</li>
|
|
3692
3746
|
|
|
3693
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3747
|
+
<li class="never" data-hits="" data-linenumber="43">
|
|
3694
3748
|
|
|
3695
3749
|
|
|
3696
3750
|
<code class="ruby"> /./</code>
|
|
3697
3751
|
</li>
|
|
3698
3752
|
|
|
3699
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3753
|
+
<li class="never" data-hits="" data-linenumber="44">
|
|
3700
3754
|
|
|
3701
3755
|
|
|
3702
3756
|
<code class="ruby"> )</code>
|
|
3703
3757
|
</li>
|
|
3704
3758
|
|
|
3705
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3759
|
+
<li class="never" data-hits="" data-linenumber="45">
|
|
3706
3760
|
|
|
3707
3761
|
|
|
3708
3762
|
<code class="ruby"> end</code>
|
|
3709
3763
|
</li>
|
|
3710
3764
|
|
|
3711
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3765
|
+
<li class="never" data-hits="" data-linenumber="46">
|
|
3712
3766
|
|
|
3713
3767
|
|
|
3714
3768
|
<code class="ruby"></code>
|
|
3715
3769
|
</li>
|
|
3716
3770
|
|
|
3717
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
3771
|
+
<li class="covered" data-hits="1" data-linenumber="47">
|
|
3718
3772
|
<span class="hits">1</span>
|
|
3719
3773
|
|
|
3720
3774
|
<code class="ruby"> context "for complex char groups (square brackets)" do</code>
|
|
3721
3775
|
</li>
|
|
3722
3776
|
|
|
3723
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
3777
|
+
<li class="covered" data-hits="1" data-linenumber="48">
|
|
3724
3778
|
<span class="hits">1</span>
|
|
3725
3779
|
|
|
3726
3780
|
<code class="ruby"> examples_exist_and_match(</code>
|
|
3727
3781
|
</li>
|
|
3728
3782
|
|
|
3729
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3783
|
+
<li class="never" data-hits="" data-linenumber="49">
|
|
3730
3784
|
|
|
3731
3785
|
|
|
3732
3786
|
<code class="ruby"> /[abc]/,</code>
|
|
3733
3787
|
</li>
|
|
3734
3788
|
|
|
3735
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3789
|
+
<li class="never" data-hits="" data-linenumber="50">
|
|
3736
3790
|
|
|
3737
3791
|
|
|
3738
3792
|
<code class="ruby"> /[a-c]/,</code>
|
|
3739
3793
|
</li>
|
|
3740
3794
|
|
|
3741
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3795
|
+
<li class="never" data-hits="" data-linenumber="51">
|
|
3742
3796
|
|
|
3743
3797
|
|
|
3744
3798
|
<code class="ruby"> /[abc-e]/,</code>
|
|
3745
3799
|
</li>
|
|
3746
3800
|
|
|
3747
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3801
|
+
<li class="never" data-hits="" data-linenumber="52">
|
|
3748
3802
|
|
|
3749
3803
|
|
|
3750
3804
|
<code class="ruby"> /[^a-zA-Z]/,</code>
|
|
3751
3805
|
</li>
|
|
3752
3806
|
|
|
3753
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3807
|
+
<li class="never" data-hits="" data-linenumber="53">
|
|
3754
3808
|
|
|
3755
3809
|
|
|
3756
3810
|
<code class="ruby"> /[\w]/,</code>
|
|
3757
3811
|
</li>
|
|
3758
3812
|
|
|
3759
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3813
|
+
<li class="never" data-hits="" data-linenumber="54">
|
|
3760
3814
|
|
|
3761
3815
|
|
|
3762
3816
|
<code class="ruby"> /[]]/, # TODO: How to suppress annoying warnings on this test?</code>
|
|
3763
3817
|
</li>
|
|
3764
3818
|
|
|
3765
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3819
|
+
<li class="never" data-hits="" data-linenumber="55">
|
|
3766
3820
|
|
|
3767
3821
|
|
|
3768
3822
|
<code class="ruby"> /[\]]/,</code>
|
|
3769
3823
|
</li>
|
|
3770
3824
|
|
|
3771
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3825
|
+
<li class="never" data-hits="" data-linenumber="56">
|
|
3772
3826
|
|
|
3773
3827
|
|
|
3774
3828
|
<code class="ruby"> /[\\]/,</code>
|
|
3775
3829
|
</li>
|
|
3776
3830
|
|
|
3777
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3831
|
+
<li class="never" data-hits="" data-linenumber="57">
|
|
3778
3832
|
|
|
3779
3833
|
|
|
3780
3834
|
<code class="ruby"> /[\\\]]/,</code>
|
|
3781
3835
|
</li>
|
|
3782
3836
|
|
|
3783
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3837
|
+
<li class="never" data-hits="" data-linenumber="58">
|
|
3784
3838
|
|
|
3785
3839
|
|
|
3786
3840
|
<code class="ruby"> /[\n-\r]/,</code>
|
|
3787
3841
|
</li>
|
|
3788
3842
|
|
|
3789
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3843
|
+
<li class="never" data-hits="" data-linenumber="59">
|
|
3790
3844
|
|
|
3791
3845
|
|
|
3792
3846
|
<code class="ruby"> /[\-]/,</code>
|
|
3793
3847
|
</li>
|
|
3794
3848
|
|
|
3795
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3849
|
+
<li class="never" data-hits="" data-linenumber="60">
|
|
3796
3850
|
|
|
3797
3851
|
|
|
3798
3852
|
<code class="ruby"> /[%-+]/ # This regex is "supposed to" match some surprising things!!!</code>
|
|
3799
3853
|
</li>
|
|
3800
3854
|
|
|
3801
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3855
|
+
<li class="never" data-hits="" data-linenumber="61">
|
|
3802
3856
|
|
|
3803
3857
|
|
|
3804
3858
|
<code class="ruby"> )</code>
|
|
3805
3859
|
</li>
|
|
3806
3860
|
|
|
3807
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3861
|
+
<li class="never" data-hits="" data-linenumber="62">
|
|
3808
3862
|
|
|
3809
3863
|
|
|
3810
3864
|
<code class="ruby"> end</code>
|
|
3811
3865
|
</li>
|
|
3812
3866
|
|
|
3813
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3867
|
+
<li class="never" data-hits="" data-linenumber="63">
|
|
3814
3868
|
|
|
3815
3869
|
|
|
3816
3870
|
<code class="ruby"></code>
|
|
3817
3871
|
</li>
|
|
3818
3872
|
|
|
3819
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
3873
|
+
<li class="covered" data-hits="1" data-linenumber="64">
|
|
3820
3874
|
<span class="hits">1</span>
|
|
3821
3875
|
|
|
3822
3876
|
<code class="ruby"> context "for complex multi groups" do</code>
|
|
3823
3877
|
</li>
|
|
3824
3878
|
|
|
3825
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
3879
|
+
<li class="covered" data-hits="1" data-linenumber="65">
|
|
3826
3880
|
<span class="hits">1</span>
|
|
3827
3881
|
|
|
3828
3882
|
<code class="ruby"> examples_exist_and_match(</code>
|
|
3829
3883
|
</li>
|
|
3830
3884
|
|
|
3831
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3885
|
+
<li class="never" data-hits="" data-linenumber="66">
|
|
3832
3886
|
|
|
3833
3887
|
|
|
3834
3888
|
<code class="ruby"> /(normal)/,</code>
|
|
3835
3889
|
</li>
|
|
3836
3890
|
|
|
3837
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3891
|
+
<li class="never" data-hits="" data-linenumber="67">
|
|
3838
3892
|
|
|
3839
3893
|
|
|
3840
3894
|
<code class="ruby"> /(?:nocapture)/,</code>
|
|
3841
3895
|
</li>
|
|
3842
3896
|
|
|
3843
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3897
|
+
<li class="never" data-hits="" data-linenumber="68">
|
|
3844
3898
|
|
|
3845
3899
|
|
|
3846
3900
|
<code class="ruby"> /(?<name>namedgroup)/,</code>
|
|
3847
3901
|
</li>
|
|
3848
3902
|
|
|
3849
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3903
|
+
<li class="never" data-hits="" data-linenumber="69">
|
|
3850
3904
|
|
|
3851
3905
|
|
|
3852
3906
|
<code class="ruby"> /(?<name>namedgroup) \k<name>/</code>
|
|
3853
3907
|
</li>
|
|
3854
3908
|
|
|
3855
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3909
|
+
<li class="never" data-hits="" data-linenumber="70">
|
|
3856
3910
|
|
|
3857
3911
|
|
|
3858
3912
|
<code class="ruby"> )</code>
|
|
3859
3913
|
</li>
|
|
3860
3914
|
|
|
3861
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3915
|
+
<li class="never" data-hits="" data-linenumber="71">
|
|
3862
3916
|
|
|
3863
3917
|
|
|
3864
3918
|
<code class="ruby"> end</code>
|
|
3865
3919
|
</li>
|
|
3866
3920
|
|
|
3867
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3921
|
+
<li class="never" data-hits="" data-linenumber="72">
|
|
3868
3922
|
|
|
3869
3923
|
|
|
3870
3924
|
<code class="ruby"></code>
|
|
3871
3925
|
</li>
|
|
3872
3926
|
|
|
3873
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
3927
|
+
<li class="covered" data-hits="1" data-linenumber="73">
|
|
3874
3928
|
<span class="hits">1</span>
|
|
3875
3929
|
|
|
3876
3930
|
<code class="ruby"> context "for escaped characters" do</code>
|
|
3877
3931
|
</li>
|
|
3878
3932
|
|
|
3879
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
3933
|
+
<li class="covered" data-hits="1" data-linenumber="74">
|
|
3880
3934
|
<span class="hits">1</span>
|
|
3881
3935
|
|
|
3882
3936
|
<code class="ruby"> examples_exist_and_match(</code>
|
|
3883
3937
|
</li>
|
|
3884
3938
|
|
|
3885
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3939
|
+
<li class="never" data-hits="" data-linenumber="75">
|
|
3886
3940
|
|
|
3887
3941
|
|
|
3888
3942
|
<code class="ruby"> /\w/,</code>
|
|
3889
3943
|
</li>
|
|
3890
3944
|
|
|
3891
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3945
|
+
<li class="never" data-hits="" data-linenumber="76">
|
|
3892
3946
|
|
|
3893
3947
|
|
|
3894
3948
|
<code class="ruby"> /\W/,</code>
|
|
3895
3949
|
</li>
|
|
3896
3950
|
|
|
3897
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3951
|
+
<li class="never" data-hits="" data-linenumber="77">
|
|
3898
3952
|
|
|
3899
3953
|
|
|
3900
3954
|
<code class="ruby"> /\s/,</code>
|
|
3901
3955
|
</li>
|
|
3902
3956
|
|
|
3903
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3957
|
+
<li class="never" data-hits="" data-linenumber="78">
|
|
3904
3958
|
|
|
3905
3959
|
|
|
3906
3960
|
<code class="ruby"> /\S/,</code>
|
|
3907
3961
|
</li>
|
|
3908
3962
|
|
|
3909
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3963
|
+
<li class="never" data-hits="" data-linenumber="79">
|
|
3910
3964
|
|
|
3911
3965
|
|
|
3912
3966
|
<code class="ruby"> /\d/,</code>
|
|
3913
3967
|
</li>
|
|
3914
3968
|
|
|
3915
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3969
|
+
<li class="never" data-hits="" data-linenumber="80">
|
|
3916
3970
|
|
|
3917
3971
|
|
|
3918
3972
|
<code class="ruby"> /\D/,</code>
|
|
3919
3973
|
</li>
|
|
3920
3974
|
|
|
3921
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3975
|
+
<li class="never" data-hits="" data-linenumber="81">
|
|
3922
3976
|
|
|
3923
3977
|
|
|
3924
3978
|
<code class="ruby"> /\h/,</code>
|
|
3925
3979
|
</li>
|
|
3926
3980
|
|
|
3927
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3981
|
+
<li class="never" data-hits="" data-linenumber="82">
|
|
3928
3982
|
|
|
3929
3983
|
|
|
3930
3984
|
<code class="ruby"> /\H/,</code>
|
|
3931
3985
|
</li>
|
|
3932
3986
|
|
|
3933
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3987
|
+
<li class="never" data-hits="" data-linenumber="83">
|
|
3934
3988
|
|
|
3935
3989
|
|
|
3936
3990
|
<code class="ruby"> /\t/,</code>
|
|
3937
3991
|
</li>
|
|
3938
3992
|
|
|
3939
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3993
|
+
<li class="never" data-hits="" data-linenumber="84">
|
|
3940
3994
|
|
|
3941
3995
|
|
|
3942
3996
|
<code class="ruby"> /\n/,</code>
|
|
3943
3997
|
</li>
|
|
3944
3998
|
|
|
3945
|
-
<li class="never" data-hits="" data-linenumber="
|
|
3999
|
+
<li class="never" data-hits="" data-linenumber="85">
|
|
3946
4000
|
|
|
3947
4001
|
|
|
3948
4002
|
<code class="ruby"> /\f/,</code>
|
|
3949
4003
|
</li>
|
|
3950
4004
|
|
|
3951
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4005
|
+
<li class="never" data-hits="" data-linenumber="86">
|
|
3952
4006
|
|
|
3953
4007
|
|
|
3954
4008
|
<code class="ruby"> /\a/,</code>
|
|
3955
4009
|
</li>
|
|
3956
4010
|
|
|
3957
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4011
|
+
<li class="never" data-hits="" data-linenumber="87">
|
|
3958
4012
|
|
|
3959
4013
|
|
|
3960
4014
|
<code class="ruby"> /\v/,</code>
|
|
3961
4015
|
</li>
|
|
3962
4016
|
|
|
3963
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4017
|
+
<li class="never" data-hits="" data-linenumber="88">
|
|
3964
4018
|
|
|
3965
4019
|
|
|
3966
4020
|
<code class="ruby"> /\e/</code>
|
|
3967
4021
|
</li>
|
|
3968
4022
|
|
|
3969
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4023
|
+
<li class="never" data-hits="" data-linenumber="89">
|
|
3970
4024
|
|
|
3971
4025
|
|
|
3972
4026
|
<code class="ruby"> )</code>
|
|
3973
4027
|
</li>
|
|
3974
4028
|
|
|
3975
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4029
|
+
<li class="never" data-hits="" data-linenumber="90">
|
|
3976
4030
|
|
|
3977
4031
|
|
|
3978
4032
|
<code class="ruby"> end</code>
|
|
3979
4033
|
</li>
|
|
3980
4034
|
|
|
3981
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4035
|
+
<li class="never" data-hits="" data-linenumber="91">
|
|
3982
4036
|
|
|
3983
4037
|
|
|
3984
4038
|
<code class="ruby"></code>
|
|
3985
4039
|
</li>
|
|
3986
4040
|
|
|
3987
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
4041
|
+
<li class="covered" data-hits="1" data-linenumber="92">
|
|
3988
4042
|
<span class="hits">1</span>
|
|
3989
4043
|
|
|
3990
4044
|
<code class="ruby"> context "for backreferences" do</code>
|
|
3991
4045
|
</li>
|
|
3992
4046
|
|
|
3993
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
4047
|
+
<li class="covered" data-hits="1" data-linenumber="93">
|
|
3994
4048
|
<span class="hits">1</span>
|
|
3995
4049
|
|
|
3996
4050
|
<code class="ruby"> examples_exist_and_match(</code>
|
|
3997
4051
|
</li>
|
|
3998
4052
|
|
|
3999
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4053
|
+
<li class="never" data-hits="" data-linenumber="94">
|
|
4000
4054
|
|
|
4001
4055
|
|
|
4002
4056
|
<code class="ruby"> /(repeat) \1/,</code>
|
|
4003
4057
|
</li>
|
|
4004
4058
|
|
|
4005
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4059
|
+
<li class="never" data-hits="" data-linenumber="95">
|
|
4006
4060
|
|
|
4007
4061
|
|
|
4008
4062
|
<code class="ruby"> /(ref1) (ref2) \1 \2/,</code>
|
|
4009
4063
|
</li>
|
|
4010
4064
|
|
|
4011
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4065
|
+
<li class="never" data-hits="" data-linenumber="96">
|
|
4012
4066
|
|
|
4013
4067
|
|
|
4014
4068
|
<code class="ruby"> /((ref2)ref1) \1 \2/,</code>
|
|
4015
4069
|
</li>
|
|
4016
4070
|
|
|
4017
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4071
|
+
<li class="never" data-hits="" data-linenumber="97">
|
|
4018
4072
|
|
|
4019
4073
|
|
|
4020
4074
|
<code class="ruby"> /((ref1and2)) \1 \2/,</code>
|
|
4021
4075
|
</li>
|
|
4022
4076
|
|
|
4023
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4077
|
+
<li class="never" data-hits="" data-linenumber="98">
|
|
4024
4078
|
|
|
4025
4079
|
|
|
4026
4080
|
<code class="ruby"> /(one)(two)(three)(four)(five)(six)(seven)(eight)(nine)(ten) \10\9\8\7\6\5\4\3\2\1/,</code>
|
|
4027
4081
|
</li>
|
|
4028
4082
|
|
|
4029
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4083
|
+
<li class="never" data-hits="" data-linenumber="99">
|
|
4030
4084
|
|
|
4031
4085
|
|
|
4032
4086
|
<code class="ruby"> /(a?(b?(c?(d?(e?)))))/</code>
|
|
4033
4087
|
</li>
|
|
4034
4088
|
|
|
4035
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4089
|
+
<li class="never" data-hits="" data-linenumber="100">
|
|
4036
4090
|
|
|
4037
4091
|
|
|
4038
4092
|
<code class="ruby"> )</code>
|
|
4039
4093
|
</li>
|
|
4040
4094
|
|
|
4041
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4095
|
+
<li class="never" data-hits="" data-linenumber="101">
|
|
4042
4096
|
|
|
4043
4097
|
|
|
4044
4098
|
<code class="ruby"> end</code>
|
|
4045
4099
|
</li>
|
|
4046
4100
|
|
|
4047
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4101
|
+
<li class="never" data-hits="" data-linenumber="102">
|
|
4048
4102
|
|
|
4049
4103
|
|
|
4050
4104
|
<code class="ruby"></code>
|
|
4051
4105
|
</li>
|
|
4052
4106
|
|
|
4053
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
4107
|
+
<li class="covered" data-hits="1" data-linenumber="103">
|
|
4054
4108
|
<span class="hits">1</span>
|
|
4055
4109
|
|
|
4056
4110
|
<code class="ruby"> context "for complex patterns" do</code>
|
|
4057
4111
|
</li>
|
|
4058
4112
|
|
|
4059
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4113
|
+
<li class="never" data-hits="" data-linenumber="104">
|
|
4060
4114
|
|
|
4061
4115
|
|
|
4062
4116
|
<code class="ruby"> # Longer combinations of the above</code>
|
|
4063
4117
|
</li>
|
|
4064
4118
|
|
|
4065
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
4119
|
+
<li class="covered" data-hits="1" data-linenumber="105">
|
|
4066
4120
|
<span class="hits">1</span>
|
|
4067
4121
|
|
|
4068
4122
|
<code class="ruby"> examples_exist_and_match(</code>
|
|
4069
4123
|
</li>
|
|
4070
4124
|
|
|
4071
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4125
|
+
<li class="never" data-hits="" data-linenumber="106">
|
|
4072
4126
|
|
|
4073
4127
|
|
|
4074
4128
|
<code class="ruby"> /https?:\/\/(www\.)github\.com/,</code>
|
|
4075
4129
|
</li>
|
|
4076
4130
|
|
|
4077
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4131
|
+
<li class="never" data-hits="" data-linenumber="107">
|
|
4078
4132
|
|
|
4079
4133
|
|
|
4080
4134
|
<code class="ruby"> /(I(N(C(E(P(T(I(O(N)))))))))*/,</code>
|
|
4081
4135
|
</li>
|
|
4082
4136
|
|
|
4083
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4137
|
+
<li class="never" data-hits="" data-linenumber="108">
|
|
4084
4138
|
|
|
4085
4139
|
|
|
4086
4140
|
<code class="ruby"> /[\w]{1}/,</code>
|
|
4087
4141
|
</li>
|
|
4088
4142
|
|
|
4089
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4143
|
+
<li class="never" data-hits="" data-linenumber="109">
|
|
4090
4144
|
|
|
4091
4145
|
|
|
4092
4146
|
<code class="ruby"> /((a?b*c+)) \1/,</code>
|
|
4093
4147
|
</li>
|
|
4094
4148
|
|
|
4095
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4149
|
+
<li class="never" data-hits="" data-linenumber="110">
|
|
4096
4150
|
|
|
4097
4151
|
|
|
4098
4152
|
<code class="ruby"> /((a?b*c+)?) \1/,</code>
|
|
4099
4153
|
</li>
|
|
4100
4154
|
|
|
4101
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4155
|
+
<li class="never" data-hits="" data-linenumber="111">
|
|
4102
4156
|
|
|
4103
4157
|
|
|
4104
4158
|
<code class="ruby"> /a|b|c|d/,</code>
|
|
4105
4159
|
</li>
|
|
4106
4160
|
|
|
4107
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4161
|
+
<li class="never" data-hits="" data-linenumber="112">
|
|
4108
4162
|
|
|
4109
4163
|
|
|
4110
4164
|
<code class="ruby"> /a+|b*|c?/</code>
|
|
4111
4165
|
</li>
|
|
4112
4166
|
|
|
4113
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4167
|
+
<li class="never" data-hits="" data-linenumber="113">
|
|
4114
4168
|
|
|
4115
4169
|
|
|
4116
4170
|
<code class="ruby"> )</code>
|
|
4117
4171
|
</li>
|
|
4118
4172
|
|
|
4119
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4173
|
+
<li class="never" data-hits="" data-linenumber="114">
|
|
4120
4174
|
|
|
4121
4175
|
|
|
4122
4176
|
<code class="ruby"> end</code>
|
|
4123
4177
|
</li>
|
|
4124
4178
|
|
|
4125
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4179
|
+
<li class="never" data-hits="" data-linenumber="115">
|
|
4126
4180
|
|
|
4127
4181
|
|
|
4128
4182
|
<code class="ruby"></code>
|
|
4129
4183
|
</li>
|
|
4130
4184
|
|
|
4131
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
4185
|
+
<li class="covered" data-hits="1" data-linenumber="116">
|
|
4132
4186
|
<span class="hits">1</span>
|
|
4133
4187
|
|
|
4134
4188
|
<code class="ruby"> context "for illegal syntax" do</code>
|
|
4135
4189
|
</li>
|
|
4136
4190
|
|
|
4137
|
-
<li class="covered" data-hits="1" data-linenumber="
|
|
4191
|
+
<li class="covered" data-hits="1" data-linenumber="117">
|
|
4138
4192
|
<span class="hits">1</span>
|
|
4139
4193
|
|
|
4140
4194
|
<code class="ruby"> examples_raise_illegal_syntax_error(</code>
|
|
4141
4195
|
</li>
|
|
4142
4196
|
|
|
4143
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4197
|
+
<li class="never" data-hits="" data-linenumber="118">
|
|
4144
4198
|
|
|
4145
4199
|
|
|
4146
4200
|
<code class="ruby"> /(?=lookahead)/,</code>
|
|
4147
4201
|
</li>
|
|
4148
4202
|
|
|
4149
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4203
|
+
<li class="never" data-hits="" data-linenumber="119">
|
|
4150
4204
|
|
|
4151
4205
|
|
|
4152
4206
|
<code class="ruby"> /(?!neglookahead)/,</code>
|
|
4153
4207
|
</li>
|
|
4154
4208
|
|
|
4155
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4209
|
+
<li class="never" data-hits="" data-linenumber="120">
|
|
4156
4210
|
|
|
4157
4211
|
|
|
4158
4212
|
<code class="ruby"> /(?<=lookbehind)/,</code>
|
|
4159
4213
|
</li>
|
|
4160
4214
|
|
|
4161
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4215
|
+
<li class="never" data-hits="" data-linenumber="121">
|
|
4162
4216
|
|
|
4163
4217
|
|
|
4164
4218
|
<code class="ruby"> /(?<!neglookbehind)/</code>
|
|
4165
4219
|
</li>
|
|
4166
4220
|
|
|
4167
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4221
|
+
<li class="never" data-hits="" data-linenumber="122">
|
|
4168
4222
|
|
|
4169
4223
|
|
|
4170
4224
|
<code class="ruby"> )</code>
|
|
4171
4225
|
</li>
|
|
4172
4226
|
|
|
4173
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4227
|
+
<li class="never" data-hits="" data-linenumber="123">
|
|
4174
4228
|
|
|
4175
4229
|
|
|
4176
4230
|
<code class="ruby"> end</code>
|
|
4177
4231
|
</li>
|
|
4178
4232
|
|
|
4179
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4233
|
+
<li class="never" data-hits="" data-linenumber="124">
|
|
4234
|
+
|
|
4235
|
+
|
|
4236
|
+
<code class="ruby"></code>
|
|
4237
|
+
</li>
|
|
4238
|
+
|
|
4239
|
+
<li class="covered" data-hits="1" data-linenumber="125">
|
|
4240
|
+
<span class="hits">1</span>
|
|
4241
|
+
|
|
4242
|
+
<code class="ruby"> context "for control characters" do</code>
|
|
4243
|
+
</li>
|
|
4244
|
+
|
|
4245
|
+
<li class="covered" data-hits="1" data-linenumber="126">
|
|
4246
|
+
<span class="hits">1</span>
|
|
4247
|
+
|
|
4248
|
+
<code class="ruby"> examples_exist_and_match(</code>
|
|
4249
|
+
</li>
|
|
4250
|
+
|
|
4251
|
+
<li class="never" data-hits="" data-linenumber="127">
|
|
4252
|
+
|
|
4253
|
+
|
|
4254
|
+
<code class="ruby"> /\ca/,</code>
|
|
4255
|
+
</li>
|
|
4256
|
+
|
|
4257
|
+
<li class="never" data-hits="" data-linenumber="128">
|
|
4258
|
+
|
|
4259
|
+
|
|
4260
|
+
<code class="ruby"> /\cZ/,</code>
|
|
4261
|
+
</li>
|
|
4262
|
+
|
|
4263
|
+
<li class="never" data-hits="" data-linenumber="129">
|
|
4264
|
+
|
|
4265
|
+
|
|
4266
|
+
<code class="ruby"> /\c9/,</code>
|
|
4267
|
+
</li>
|
|
4268
|
+
|
|
4269
|
+
<li class="never" data-hits="" data-linenumber="130">
|
|
4270
|
+
|
|
4271
|
+
|
|
4272
|
+
<code class="ruby"> /\c[/,</code>
|
|
4273
|
+
</li>
|
|
4274
|
+
|
|
4275
|
+
<li class="never" data-hits="" data-linenumber="131">
|
|
4276
|
+
|
|
4277
|
+
|
|
4278
|
+
<code class="ruby"> /\c#/,</code>
|
|
4279
|
+
</li>
|
|
4280
|
+
|
|
4281
|
+
<li class="never" data-hits="" data-linenumber="132">
|
|
4282
|
+
|
|
4283
|
+
|
|
4284
|
+
<code class="ruby"> /\c?/</code>
|
|
4285
|
+
</li>
|
|
4286
|
+
|
|
4287
|
+
<li class="never" data-hits="" data-linenumber="133">
|
|
4288
|
+
|
|
4289
|
+
|
|
4290
|
+
<code class="ruby"> )</code>
|
|
4291
|
+
</li>
|
|
4292
|
+
|
|
4293
|
+
<li class="never" data-hits="" data-linenumber="134">
|
|
4294
|
+
|
|
4295
|
+
|
|
4296
|
+
<code class="ruby"> end</code>
|
|
4297
|
+
</li>
|
|
4298
|
+
|
|
4299
|
+
<li class="never" data-hits="" data-linenumber="135">
|
|
4180
4300
|
|
|
4181
4301
|
|
|
4182
4302
|
<code class="ruby"> end</code>
|
|
4183
4303
|
</li>
|
|
4184
4304
|
|
|
4185
|
-
<li class="never" data-hits="" data-linenumber="
|
|
4305
|
+
<li class="never" data-hits="" data-linenumber="136">
|
|
4186
4306
|
|
|
4187
4307
|
|
|
4188
4308
|
<code class="ruby">end</code>
|