email_address_validator 1.0.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +1 -1
- data/Gemfile.lock +9 -13
- data/grammars/rfc2822.kpeg +1 -1
- data/grammars/rfc822.kpeg +4 -4
- data/lib/email_address_validator.rb +6 -2
- data/lib/email_address_validator/domain-parser.rb +185 -144
- data/lib/email_address_validator/rfc2822-parser.rb +1593 -1552
- data/lib/email_address_validator/rfc822-parser.rb +669 -629
- data/lib/email_address_validator/version.rb +1 -1
- data/spec/email_address_validator_spec.rb +4 -0
- metadata +2 -2
@@ -1,8 +1,19 @@
|
|
1
1
|
class EmailAddressValidator::RFC2822Parser
|
2
|
-
#
|
2
|
+
# :stopdoc:
|
3
|
+
|
4
|
+
# This is distinct from setup_parser so that a standalone parser
|
5
|
+
# can redefine #initialize and still have access to the proper
|
6
|
+
# parser setup code.
|
7
|
+
def initialize(str, debug=false)
|
8
|
+
setup_parser(str, debug)
|
9
|
+
end
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
# Prepares for parsing +str+. If you define a custom initialize you must
|
14
|
+
# call this method before #parse
|
3
15
|
def setup_parser(str, debug=false)
|
4
|
-
|
5
|
-
@pos = 0
|
16
|
+
set_string str, 0
|
6
17
|
@memoizations = Hash.new { |h,k| h[k] = {} }
|
7
18
|
@result = nil
|
8
19
|
@failed_rule = nil
|
@@ -11,22 +22,10 @@ class EmailAddressValidator::RFC2822Parser
|
|
11
22
|
setup_foreign_grammar
|
12
23
|
end
|
13
24
|
|
14
|
-
def setup_foreign_grammar
|
15
|
-
end
|
16
|
-
|
17
|
-
# This is distinct from setup_parser so that a standalone parser
|
18
|
-
# can redefine #initialize and still have access to the proper
|
19
|
-
# parser setup code.
|
20
|
-
#
|
21
|
-
def initialize(str, debug=false)
|
22
|
-
setup_parser(str, debug)
|
23
|
-
end
|
24
|
-
|
25
25
|
attr_reader :string
|
26
|
-
attr_reader :
|
27
|
-
attr_accessor :pos
|
26
|
+
attr_reader :failing_rule_offset
|
27
|
+
attr_accessor :result, :pos
|
28
28
|
|
29
|
-
# STANDALONE START
|
30
29
|
def current_column(target=pos)
|
31
30
|
if c = string.rindex("\n", target-1)
|
32
31
|
return target - c - 1
|
@@ -54,12 +53,19 @@ class EmailAddressValidator::RFC2822Parser
|
|
54
53
|
lines
|
55
54
|
end
|
56
55
|
|
57
|
-
|
56
|
+
|
58
57
|
|
59
58
|
def get_text(start)
|
60
59
|
@string[start..@pos-1]
|
61
60
|
end
|
62
61
|
|
62
|
+
# Sets the string and current parsing position for the parser.
|
63
|
+
def set_string string, pos
|
64
|
+
@string = string
|
65
|
+
@string_size = string ? string.size : 0
|
66
|
+
@pos = pos
|
67
|
+
end
|
68
|
+
|
63
69
|
def show_pos
|
64
70
|
width = 10
|
65
71
|
if @pos < width
|
@@ -166,19 +172,19 @@ class EmailAddressValidator::RFC2822Parser
|
|
166
172
|
return nil
|
167
173
|
end
|
168
174
|
|
169
|
-
if "".respond_to? :
|
175
|
+
if "".respond_to? :ord
|
170
176
|
def get_byte
|
171
|
-
if @pos >= @
|
177
|
+
if @pos >= @string_size
|
172
178
|
return nil
|
173
179
|
end
|
174
180
|
|
175
|
-
s = @string
|
181
|
+
s = @string[@pos].ord
|
176
182
|
@pos += 1
|
177
183
|
s
|
178
184
|
end
|
179
185
|
else
|
180
186
|
def get_byte
|
181
|
-
if @pos >= @
|
187
|
+
if @pos >= @string_size
|
182
188
|
return nil
|
183
189
|
end
|
184
190
|
|
@@ -189,41 +195,37 @@ class EmailAddressValidator::RFC2822Parser
|
|
189
195
|
end
|
190
196
|
|
191
197
|
def parse(rule=nil)
|
198
|
+
# We invoke the rules indirectly via apply
|
199
|
+
# instead of by just calling them as methods because
|
200
|
+
# if the rules use left recursion, apply needs to
|
201
|
+
# manage that.
|
202
|
+
|
192
203
|
if !rule
|
193
|
-
_root
|
204
|
+
apply(:_root)
|
194
205
|
else
|
195
|
-
# This is not shared with code_generator.rb so this can be standalone
|
196
206
|
method = rule.gsub("-","_hyphen_")
|
197
|
-
|
198
|
-
end
|
199
|
-
end
|
200
|
-
|
201
|
-
class LeftRecursive
|
202
|
-
def initialize(detected=false)
|
203
|
-
@detected = detected
|
207
|
+
apply :"_#{method}"
|
204
208
|
end
|
205
|
-
|
206
|
-
attr_accessor :detected
|
207
209
|
end
|
208
210
|
|
209
211
|
class MemoEntry
|
210
212
|
def initialize(ans, pos)
|
211
213
|
@ans = ans
|
212
214
|
@pos = pos
|
213
|
-
@uses = 1
|
214
215
|
@result = nil
|
216
|
+
@set = false
|
217
|
+
@left_rec = false
|
215
218
|
end
|
216
219
|
|
217
|
-
attr_reader :ans, :pos, :
|
218
|
-
|
219
|
-
def inc!
|
220
|
-
@uses += 1
|
221
|
-
end
|
220
|
+
attr_reader :ans, :pos, :result, :set
|
221
|
+
attr_accessor :left_rec
|
222
222
|
|
223
223
|
def move!(ans, pos, result)
|
224
224
|
@ans = ans
|
225
225
|
@pos = pos
|
226
226
|
@result = result
|
227
|
+
@set = true
|
228
|
+
@left_rec = false
|
227
229
|
end
|
228
230
|
end
|
229
231
|
|
@@ -231,30 +233,61 @@ class EmailAddressValidator::RFC2822Parser
|
|
231
233
|
old_pos = @pos
|
232
234
|
old_string = @string
|
233
235
|
|
234
|
-
|
235
|
-
@string = other.string
|
236
|
+
set_string other.string, other.pos
|
236
237
|
|
237
238
|
begin
|
238
239
|
if val = __send__(rule, *args)
|
239
240
|
other.pos = @pos
|
241
|
+
other.result = @result
|
240
242
|
else
|
241
243
|
other.set_failed_rule "#{self.class}##{rule}"
|
242
244
|
end
|
243
245
|
val
|
244
246
|
ensure
|
245
|
-
|
246
|
-
|
247
|
+
set_string old_string, old_pos
|
248
|
+
end
|
249
|
+
end
|
250
|
+
|
251
|
+
def apply_with_args(rule, *args)
|
252
|
+
memo_key = [rule, args]
|
253
|
+
if m = @memoizations[memo_key][@pos]
|
254
|
+
@pos = m.pos
|
255
|
+
if !m.set
|
256
|
+
m.left_rec = true
|
257
|
+
return nil
|
258
|
+
end
|
259
|
+
|
260
|
+
@result = m.result
|
261
|
+
|
262
|
+
return m.ans
|
263
|
+
else
|
264
|
+
m = MemoEntry.new(nil, @pos)
|
265
|
+
@memoizations[memo_key][@pos] = m
|
266
|
+
start_pos = @pos
|
267
|
+
|
268
|
+
ans = __send__ rule, *args
|
269
|
+
|
270
|
+
lr = m.left_rec
|
271
|
+
|
272
|
+
m.move! ans, @pos, @result
|
273
|
+
|
274
|
+
# Don't bother trying to grow the left recursion
|
275
|
+
# if it's failing straight away (thus there is no seed)
|
276
|
+
if ans and lr
|
277
|
+
return grow_lr(rule, args, start_pos, m)
|
278
|
+
else
|
279
|
+
return ans
|
280
|
+
end
|
281
|
+
|
282
|
+
return ans
|
247
283
|
end
|
248
284
|
end
|
249
285
|
|
250
286
|
def apply(rule)
|
251
287
|
if m = @memoizations[rule][@pos]
|
252
|
-
m.inc!
|
253
|
-
|
254
|
-
prev = @pos
|
255
288
|
@pos = m.pos
|
256
|
-
if m.
|
257
|
-
m.
|
289
|
+
if !m.set
|
290
|
+
m.left_rec = true
|
258
291
|
return nil
|
259
292
|
end
|
260
293
|
|
@@ -262,19 +295,20 @@ class EmailAddressValidator::RFC2822Parser
|
|
262
295
|
|
263
296
|
return m.ans
|
264
297
|
else
|
265
|
-
|
266
|
-
m = MemoEntry.new(lr, @pos)
|
298
|
+
m = MemoEntry.new(nil, @pos)
|
267
299
|
@memoizations[rule][@pos] = m
|
268
300
|
start_pos = @pos
|
269
301
|
|
270
302
|
ans = __send__ rule
|
271
303
|
|
304
|
+
lr = m.left_rec
|
305
|
+
|
272
306
|
m.move! ans, @pos, @result
|
273
307
|
|
274
308
|
# Don't bother trying to grow the left recursion
|
275
309
|
# if it's failing straight away (thus there is no seed)
|
276
|
-
if ans and lr
|
277
|
-
return grow_lr(rule, start_pos, m)
|
310
|
+
if ans and lr
|
311
|
+
return grow_lr(rule, nil, start_pos, m)
|
278
312
|
else
|
279
313
|
return ans
|
280
314
|
end
|
@@ -283,12 +317,16 @@ class EmailAddressValidator::RFC2822Parser
|
|
283
317
|
end
|
284
318
|
end
|
285
319
|
|
286
|
-
def grow_lr(rule, start_pos, m)
|
320
|
+
def grow_lr(rule, args, start_pos, m)
|
287
321
|
while true
|
288
322
|
@pos = start_pos
|
289
323
|
@result = m.result
|
290
324
|
|
291
|
-
|
325
|
+
if args
|
326
|
+
ans = __send__ rule, *args
|
327
|
+
else
|
328
|
+
ans = __send__ rule
|
329
|
+
end
|
292
330
|
return nil unless ans
|
293
331
|
|
294
332
|
break if @pos <= m.pos
|
@@ -314,10 +352,12 @@ class EmailAddressValidator::RFC2822Parser
|
|
314
352
|
RuleInfo.new(name, rendered)
|
315
353
|
end
|
316
354
|
|
317
|
-
|
355
|
+
|
356
|
+
# :startdoc:
|
318
357
|
|
319
358
|
attr_accessor :validate_domain
|
320
359
|
|
360
|
+
# :stopdoc:
|
321
361
|
def setup_foreign_grammar; end
|
322
362
|
|
323
363
|
# d = < . > &{ text[0] == num }
|
@@ -325,49 +365,49 @@ class EmailAddressValidator::RFC2822Parser
|
|
325
365
|
|
326
366
|
_save = self.pos
|
327
367
|
while true # sequence
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
368
|
+
_text_start = self.pos
|
369
|
+
_tmp = get_byte
|
370
|
+
if _tmp
|
371
|
+
text = get_text(_text_start)
|
372
|
+
end
|
373
|
+
unless _tmp
|
374
|
+
self.pos = _save
|
375
|
+
break
|
376
|
+
end
|
377
|
+
_save1 = self.pos
|
378
|
+
_tmp = begin; text[0] == num ; end
|
379
|
+
self.pos = _save1
|
380
|
+
unless _tmp
|
381
|
+
self.pos = _save
|
382
|
+
end
|
335
383
|
break
|
336
|
-
end
|
337
|
-
_save1 = self.pos
|
338
|
-
_tmp = begin; text[0] == num ; end
|
339
|
-
self.pos = _save1
|
340
|
-
unless _tmp
|
341
|
-
self.pos = _save
|
342
|
-
end
|
343
|
-
break
|
344
384
|
end # end sequence
|
345
385
|
|
346
386
|
set_failed_rule :_d unless _tmp
|
347
387
|
return _tmp
|
348
388
|
end
|
349
389
|
|
350
|
-
# d_btw = < . > &{ t = text[0]; t >= start && t <= fin }
|
390
|
+
# d_btw = < . > &{ t = text[0].chr; t >= start && t <= fin }
|
351
391
|
def _d_btw(start,fin)
|
352
392
|
|
353
393
|
_save = self.pos
|
354
394
|
while true # sequence
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
395
|
+
_text_start = self.pos
|
396
|
+
_tmp = get_byte
|
397
|
+
if _tmp
|
398
|
+
text = get_text(_text_start)
|
399
|
+
end
|
400
|
+
unless _tmp
|
401
|
+
self.pos = _save
|
402
|
+
break
|
403
|
+
end
|
404
|
+
_save1 = self.pos
|
405
|
+
_tmp = begin; t = text[0].ord; t >= start && t <= fin ; end
|
406
|
+
self.pos = _save1
|
407
|
+
unless _tmp
|
408
|
+
self.pos = _save
|
409
|
+
end
|
362
410
|
break
|
363
|
-
end
|
364
|
-
_save1 = self.pos
|
365
|
-
_tmp = begin; t = text[0]; t >= start && t <= fin ; end
|
366
|
-
self.pos = _save1
|
367
|
-
unless _tmp
|
368
|
-
self.pos = _save
|
369
|
-
end
|
370
|
-
break
|
371
411
|
end # end sequence
|
372
412
|
|
373
413
|
set_failed_rule :_d_btw unless _tmp
|
@@ -379,13 +419,13 @@ class EmailAddressValidator::RFC2822Parser
|
|
379
419
|
|
380
420
|
_save = self.pos
|
381
421
|
while true # choice
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
422
|
+
_tmp = match_string(" ")
|
423
|
+
break if _tmp
|
424
|
+
self.pos = _save
|
425
|
+
_tmp = apply_with_args(:_d, 9)
|
426
|
+
break if _tmp
|
427
|
+
self.pos = _save
|
428
|
+
break
|
389
429
|
end # end choice
|
390
430
|
|
391
431
|
set_failed_rule :_WSP unless _tmp
|
@@ -411,16 +451,16 @@ class EmailAddressValidator::RFC2822Parser
|
|
411
451
|
|
412
452
|
_save = self.pos
|
413
453
|
while true # sequence
|
414
|
-
|
415
|
-
|
416
|
-
|
454
|
+
_tmp = apply(:_CR)
|
455
|
+
unless _tmp
|
456
|
+
self.pos = _save
|
457
|
+
break
|
458
|
+
end
|
459
|
+
_tmp = apply(:_LF)
|
460
|
+
unless _tmp
|
461
|
+
self.pos = _save
|
462
|
+
end
|
417
463
|
break
|
418
|
-
end
|
419
|
-
_tmp = apply(:_LF)
|
420
|
-
unless _tmp
|
421
|
-
self.pos = _save
|
422
|
-
end
|
423
|
-
break
|
424
464
|
end # end sequence
|
425
465
|
|
426
466
|
set_failed_rule :_CRLF unless _tmp
|
@@ -446,22 +486,22 @@ class EmailAddressValidator::RFC2822Parser
|
|
446
486
|
|
447
487
|
_save = self.pos
|
448
488
|
while true # choice
|
449
|
-
|
450
|
-
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
489
|
+
_tmp = apply_with_args(:_d_btw, 1,8)
|
490
|
+
break if _tmp
|
491
|
+
self.pos = _save
|
492
|
+
_tmp = apply_with_args(:_d, 11)
|
493
|
+
break if _tmp
|
494
|
+
self.pos = _save
|
495
|
+
_tmp = apply_with_args(:_d, 12)
|
496
|
+
break if _tmp
|
497
|
+
self.pos = _save
|
498
|
+
_tmp = apply_with_args(:_d_btw, 14,31)
|
499
|
+
break if _tmp
|
500
|
+
self.pos = _save
|
501
|
+
_tmp = apply_with_args(:_d, 127)
|
502
|
+
break if _tmp
|
503
|
+
self.pos = _save
|
504
|
+
break
|
465
505
|
end # end choice
|
466
506
|
|
467
507
|
set_failed_rule :_NO_hyphen_WS_hyphen_CTL unless _tmp
|
@@ -473,22 +513,22 @@ class EmailAddressValidator::RFC2822Parser
|
|
473
513
|
|
474
514
|
_save = self.pos
|
475
515
|
while true # choice
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
516
|
+
_tmp = apply_with_args(:_d_btw, 1,9)
|
517
|
+
break if _tmp
|
518
|
+
self.pos = _save
|
519
|
+
_tmp = apply_with_args(:_d, 11)
|
520
|
+
break if _tmp
|
521
|
+
self.pos = _save
|
522
|
+
_tmp = apply_with_args(:_d, 12)
|
523
|
+
break if _tmp
|
524
|
+
self.pos = _save
|
525
|
+
_tmp = apply_with_args(:_d_btw, 14,127)
|
526
|
+
break if _tmp
|
527
|
+
self.pos = _save
|
528
|
+
_tmp = apply(:_obs_hyphen_text)
|
529
|
+
break if _tmp
|
530
|
+
self.pos = _save
|
531
|
+
break
|
492
532
|
end # end choice
|
493
533
|
|
494
534
|
set_failed_rule :_text unless _tmp
|
@@ -501,26 +541,26 @@ class EmailAddressValidator::RFC2822Parser
|
|
501
541
|
_save = self.pos
|
502
542
|
while true # choice
|
503
543
|
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
544
|
+
_save1 = self.pos
|
545
|
+
while true # sequence
|
546
|
+
_tmp = match_string("\\")
|
547
|
+
unless _tmp
|
548
|
+
self.pos = _save1
|
549
|
+
break
|
550
|
+
end
|
551
|
+
_tmp = apply(:_text)
|
552
|
+
unless _tmp
|
553
|
+
self.pos = _save1
|
554
|
+
end
|
555
|
+
break
|
556
|
+
end # end sequence
|
517
557
|
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
558
|
+
break if _tmp
|
559
|
+
self.pos = _save
|
560
|
+
_tmp = apply(:_obs_hyphen_qp)
|
561
|
+
break if _tmp
|
562
|
+
self.pos = _save
|
563
|
+
break
|
524
564
|
end # end choice
|
525
565
|
|
526
566
|
set_failed_rule :_quoted_hyphen_pair unless _tmp
|
@@ -533,59 +573,59 @@ class EmailAddressValidator::RFC2822Parser
|
|
533
573
|
_save = self.pos
|
534
574
|
while true # choice
|
535
575
|
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
540
|
-
|
541
|
-
|
542
|
-
|
543
|
-
|
544
|
-
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
555
|
-
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
567
|
-
_tmp = apply(:_WSP)
|
568
|
-
if _tmp
|
569
|
-
while true
|
576
|
+
_save1 = self.pos
|
577
|
+
while true # sequence
|
578
|
+
_save2 = self.pos
|
579
|
+
|
580
|
+
_save3 = self.pos
|
581
|
+
while true # sequence
|
582
|
+
while true
|
583
|
+
_tmp = apply(:_WSP)
|
584
|
+
break unless _tmp
|
585
|
+
end
|
586
|
+
_tmp = true
|
587
|
+
unless _tmp
|
588
|
+
self.pos = _save3
|
589
|
+
break
|
590
|
+
end
|
591
|
+
_tmp = apply(:_CRLF)
|
592
|
+
unless _tmp
|
593
|
+
self.pos = _save3
|
594
|
+
end
|
595
|
+
break
|
596
|
+
end # end sequence
|
597
|
+
|
598
|
+
unless _tmp
|
599
|
+
_tmp = true
|
600
|
+
self.pos = _save2
|
601
|
+
end
|
602
|
+
unless _tmp
|
603
|
+
self.pos = _save1
|
604
|
+
break
|
605
|
+
end
|
606
|
+
_save5 = self.pos
|
570
607
|
_tmp = apply(:_WSP)
|
571
|
-
|
572
|
-
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
608
|
+
if _tmp
|
609
|
+
while true
|
610
|
+
_tmp = apply(:_WSP)
|
611
|
+
break unless _tmp
|
612
|
+
end
|
613
|
+
_tmp = true
|
614
|
+
else
|
615
|
+
self.pos = _save5
|
616
|
+
end
|
617
|
+
unless _tmp
|
618
|
+
self.pos = _save1
|
619
|
+
end
|
620
|
+
break
|
621
|
+
end # end sequence
|
582
622
|
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
623
|
+
break if _tmp
|
624
|
+
self.pos = _save
|
625
|
+
_tmp = apply(:_obs_hyphen_FWS)
|
626
|
+
break if _tmp
|
627
|
+
self.pos = _save
|
628
|
+
break
|
589
629
|
end # end choice
|
590
630
|
|
591
631
|
set_failed_rule :_FWS unless _tmp
|
@@ -597,19 +637,19 @@ class EmailAddressValidator::RFC2822Parser
|
|
597
637
|
|
598
638
|
_save = self.pos
|
599
639
|
while true # choice
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
640
|
+
_tmp = apply(:_NO_hyphen_WS_hyphen_CTL)
|
641
|
+
break if _tmp
|
642
|
+
self.pos = _save
|
643
|
+
_tmp = apply_with_args(:_d_btw, 33,39)
|
644
|
+
break if _tmp
|
645
|
+
self.pos = _save
|
646
|
+
_tmp = apply_with_args(:_d_btw, 42,91)
|
647
|
+
break if _tmp
|
648
|
+
self.pos = _save
|
649
|
+
_tmp = apply_with_args(:_d_btw, 93,126)
|
650
|
+
break if _tmp
|
651
|
+
self.pos = _save
|
652
|
+
break
|
613
653
|
end # end choice
|
614
654
|
|
615
655
|
set_failed_rule :_ctext unless _tmp
|
@@ -621,16 +661,16 @@ class EmailAddressValidator::RFC2822Parser
|
|
621
661
|
|
622
662
|
_save = self.pos
|
623
663
|
while true # choice
|
624
|
-
|
625
|
-
|
626
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
632
|
-
|
633
|
-
|
664
|
+
_tmp = apply(:_ctext)
|
665
|
+
break if _tmp
|
666
|
+
self.pos = _save
|
667
|
+
_tmp = apply(:_quoted_hyphen_pair)
|
668
|
+
break if _tmp
|
669
|
+
self.pos = _save
|
670
|
+
_tmp = apply(:_comment)
|
671
|
+
break if _tmp
|
672
|
+
self.pos = _save
|
673
|
+
break
|
634
674
|
end # end choice
|
635
675
|
|
636
676
|
set_failed_rule :_ccontent unless _tmp
|
@@ -642,54 +682,54 @@ class EmailAddressValidator::RFC2822Parser
|
|
642
682
|
|
643
683
|
_save = self.pos
|
644
684
|
while true # sequence
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
685
|
+
_tmp = match_string("(")
|
686
|
+
unless _tmp
|
687
|
+
self.pos = _save
|
688
|
+
break
|
689
|
+
end
|
690
|
+
while true
|
651
691
|
|
652
|
-
|
653
|
-
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
|
692
|
+
_save2 = self.pos
|
693
|
+
while true # sequence
|
694
|
+
_save3 = self.pos
|
695
|
+
_tmp = apply(:_FWS)
|
696
|
+
unless _tmp
|
697
|
+
_tmp = true
|
698
|
+
self.pos = _save3
|
699
|
+
end
|
700
|
+
unless _tmp
|
701
|
+
self.pos = _save2
|
702
|
+
break
|
703
|
+
end
|
704
|
+
_tmp = apply(:_ccontent)
|
705
|
+
unless _tmp
|
706
|
+
self.pos = _save2
|
707
|
+
end
|
708
|
+
break
|
709
|
+
end # end sequence
|
670
710
|
|
671
|
-
|
672
|
-
|
673
|
-
_tmp = true
|
674
|
-
unless _tmp
|
675
|
-
self.pos = _save
|
676
|
-
break
|
677
|
-
end
|
678
|
-
_save4 = self.pos
|
679
|
-
_tmp = apply(:_FWS)
|
680
|
-
unless _tmp
|
711
|
+
break unless _tmp
|
712
|
+
end
|
681
713
|
_tmp = true
|
682
|
-
|
683
|
-
|
684
|
-
|
685
|
-
|
714
|
+
unless _tmp
|
715
|
+
self.pos = _save
|
716
|
+
break
|
717
|
+
end
|
718
|
+
_save4 = self.pos
|
719
|
+
_tmp = apply(:_FWS)
|
720
|
+
unless _tmp
|
721
|
+
_tmp = true
|
722
|
+
self.pos = _save4
|
723
|
+
end
|
724
|
+
unless _tmp
|
725
|
+
self.pos = _save
|
726
|
+
break
|
727
|
+
end
|
728
|
+
_tmp = match_string(")")
|
729
|
+
unless _tmp
|
730
|
+
self.pos = _save
|
731
|
+
end
|
686
732
|
break
|
687
|
-
end
|
688
|
-
_tmp = match_string(")")
|
689
|
-
unless _tmp
|
690
|
-
self.pos = _save
|
691
|
-
end
|
692
|
-
break
|
693
733
|
end # end sequence
|
694
734
|
|
695
735
|
set_failed_rule :_comment unless _tmp
|
@@ -701,69 +741,69 @@ class EmailAddressValidator::RFC2822Parser
|
|
701
741
|
|
702
742
|
_save = self.pos
|
703
743
|
while true # sequence
|
704
|
-
|
705
|
-
|
706
|
-
_save2 = self.pos
|
707
|
-
while true # sequence
|
708
|
-
_save3 = self.pos
|
709
|
-
_tmp = apply(:_FWS)
|
710
|
-
unless _tmp
|
711
|
-
_tmp = true
|
712
|
-
self.pos = _save3
|
713
|
-
end
|
714
|
-
unless _tmp
|
715
|
-
self.pos = _save2
|
716
|
-
break
|
717
|
-
end
|
718
|
-
_tmp = apply(:_comment)
|
719
|
-
unless _tmp
|
720
|
-
self.pos = _save2
|
721
|
-
end
|
722
|
-
break
|
723
|
-
end # end sequence
|
724
|
-
|
725
|
-
break unless _tmp
|
726
|
-
end
|
727
|
-
_tmp = true
|
728
|
-
unless _tmp
|
729
|
-
self.pos = _save
|
730
|
-
break
|
731
|
-
end
|
744
|
+
while true
|
732
745
|
|
733
|
-
|
734
|
-
|
746
|
+
_save2 = self.pos
|
747
|
+
while true # sequence
|
748
|
+
_save3 = self.pos
|
749
|
+
_tmp = apply(:_FWS)
|
750
|
+
unless _tmp
|
751
|
+
_tmp = true
|
752
|
+
self.pos = _save3
|
753
|
+
end
|
754
|
+
unless _tmp
|
755
|
+
self.pos = _save2
|
756
|
+
break
|
757
|
+
end
|
758
|
+
_tmp = apply(:_comment)
|
759
|
+
unless _tmp
|
760
|
+
self.pos = _save2
|
761
|
+
end
|
762
|
+
break
|
763
|
+
end # end sequence
|
735
764
|
|
736
|
-
|
737
|
-
|
738
|
-
_save6 = self.pos
|
739
|
-
_tmp = apply(:_FWS)
|
740
|
-
unless _tmp
|
765
|
+
break unless _tmp
|
766
|
+
end
|
741
767
|
_tmp = true
|
742
|
-
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
break
|
747
|
-
end
|
748
|
-
_tmp = apply(:_comment)
|
749
|
-
unless _tmp
|
750
|
-
self.pos = _save5
|
751
|
-
end
|
752
|
-
break
|
753
|
-
end # end sequence
|
754
|
-
|
755
|
-
break if _tmp
|
756
|
-
self.pos = _save4
|
757
|
-
_tmp = apply(:_FWS)
|
758
|
-
break if _tmp
|
759
|
-
self.pos = _save4
|
760
|
-
break
|
761
|
-
end # end choice
|
768
|
+
unless _tmp
|
769
|
+
self.pos = _save
|
770
|
+
break
|
771
|
+
end
|
762
772
|
|
763
|
-
|
764
|
-
|
765
|
-
|
766
|
-
|
773
|
+
_save4 = self.pos
|
774
|
+
while true # choice
|
775
|
+
|
776
|
+
_save5 = self.pos
|
777
|
+
while true # sequence
|
778
|
+
_save6 = self.pos
|
779
|
+
_tmp = apply(:_FWS)
|
780
|
+
unless _tmp
|
781
|
+
_tmp = true
|
782
|
+
self.pos = _save6
|
783
|
+
end
|
784
|
+
unless _tmp
|
785
|
+
self.pos = _save5
|
786
|
+
break
|
787
|
+
end
|
788
|
+
_tmp = apply(:_comment)
|
789
|
+
unless _tmp
|
790
|
+
self.pos = _save5
|
791
|
+
end
|
792
|
+
break
|
793
|
+
end # end sequence
|
794
|
+
|
795
|
+
break if _tmp
|
796
|
+
self.pos = _save4
|
797
|
+
_tmp = apply(:_FWS)
|
798
|
+
break if _tmp
|
799
|
+
self.pos = _save4
|
800
|
+
break
|
801
|
+
end # end choice
|
802
|
+
|
803
|
+
unless _tmp
|
804
|
+
self.pos = _save
|
805
|
+
end
|
806
|
+
break
|
767
807
|
end # end sequence
|
768
808
|
|
769
809
|
set_failed_rule :_CFWS unless _tmp
|
@@ -775,70 +815,70 @@ class EmailAddressValidator::RFC2822Parser
|
|
775
815
|
|
776
816
|
_save = self.pos
|
777
817
|
while true # choice
|
778
|
-
|
779
|
-
|
780
|
-
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
|
787
|
-
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
802
|
-
|
803
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
807
|
-
|
808
|
-
|
809
|
-
|
810
|
-
|
811
|
-
|
812
|
-
|
813
|
-
|
814
|
-
|
815
|
-
|
816
|
-
|
817
|
-
|
818
|
-
|
819
|
-
|
820
|
-
|
821
|
-
|
822
|
-
|
823
|
-
|
824
|
-
|
825
|
-
|
826
|
-
|
827
|
-
|
828
|
-
|
829
|
-
|
830
|
-
|
831
|
-
|
832
|
-
|
833
|
-
|
834
|
-
|
835
|
-
|
836
|
-
|
837
|
-
|
838
|
-
|
839
|
-
|
840
|
-
|
841
|
-
|
818
|
+
_tmp = apply(:_ALPHA)
|
819
|
+
break if _tmp
|
820
|
+
self.pos = _save
|
821
|
+
_tmp = apply(:_DIGIT)
|
822
|
+
break if _tmp
|
823
|
+
self.pos = _save
|
824
|
+
_tmp = match_string("!")
|
825
|
+
break if _tmp
|
826
|
+
self.pos = _save
|
827
|
+
_tmp = match_string("#")
|
828
|
+
break if _tmp
|
829
|
+
self.pos = _save
|
830
|
+
_tmp = match_string("$")
|
831
|
+
break if _tmp
|
832
|
+
self.pos = _save
|
833
|
+
_tmp = match_string("%")
|
834
|
+
break if _tmp
|
835
|
+
self.pos = _save
|
836
|
+
_tmp = match_string("&")
|
837
|
+
break if _tmp
|
838
|
+
self.pos = _save
|
839
|
+
_tmp = match_string("'")
|
840
|
+
break if _tmp
|
841
|
+
self.pos = _save
|
842
|
+
_tmp = match_string("*")
|
843
|
+
break if _tmp
|
844
|
+
self.pos = _save
|
845
|
+
_tmp = match_string("+")
|
846
|
+
break if _tmp
|
847
|
+
self.pos = _save
|
848
|
+
_tmp = match_string("-")
|
849
|
+
break if _tmp
|
850
|
+
self.pos = _save
|
851
|
+
_tmp = match_string("/")
|
852
|
+
break if _tmp
|
853
|
+
self.pos = _save
|
854
|
+
_tmp = match_string("=")
|
855
|
+
break if _tmp
|
856
|
+
self.pos = _save
|
857
|
+
_tmp = match_string("?")
|
858
|
+
break if _tmp
|
859
|
+
self.pos = _save
|
860
|
+
_tmp = match_string("^")
|
861
|
+
break if _tmp
|
862
|
+
self.pos = _save
|
863
|
+
_tmp = match_string("_")
|
864
|
+
break if _tmp
|
865
|
+
self.pos = _save
|
866
|
+
_tmp = match_string("`")
|
867
|
+
break if _tmp
|
868
|
+
self.pos = _save
|
869
|
+
_tmp = match_string("{")
|
870
|
+
break if _tmp
|
871
|
+
self.pos = _save
|
872
|
+
_tmp = match_string("|")
|
873
|
+
break if _tmp
|
874
|
+
self.pos = _save
|
875
|
+
_tmp = match_string("}")
|
876
|
+
break if _tmp
|
877
|
+
self.pos = _save
|
878
|
+
_tmp = match_string("~")
|
879
|
+
break if _tmp
|
880
|
+
self.pos = _save
|
881
|
+
break
|
842
882
|
end # end choice
|
843
883
|
|
844
884
|
set_failed_rule :_atext unless _tmp
|
@@ -850,41 +890,41 @@ class EmailAddressValidator::RFC2822Parser
|
|
850
890
|
|
851
891
|
_save = self.pos
|
852
892
|
while true # sequence
|
853
|
-
|
854
|
-
|
855
|
-
|
856
|
-
|
857
|
-
|
858
|
-
|
859
|
-
|
860
|
-
|
861
|
-
|
862
|
-
|
863
|
-
|
864
|
-
|
865
|
-
|
866
|
-
|
867
|
-
|
868
|
-
|
893
|
+
_save1 = self.pos
|
894
|
+
_tmp = apply(:_CFWS)
|
895
|
+
unless _tmp
|
896
|
+
_tmp = true
|
897
|
+
self.pos = _save1
|
898
|
+
end
|
899
|
+
unless _tmp
|
900
|
+
self.pos = _save
|
901
|
+
break
|
902
|
+
end
|
903
|
+
_save2 = self.pos
|
904
|
+
_tmp = apply(:_atext)
|
905
|
+
if _tmp
|
906
|
+
while true
|
907
|
+
_tmp = apply(:_atext)
|
908
|
+
break unless _tmp
|
909
|
+
end
|
910
|
+
_tmp = true
|
911
|
+
else
|
912
|
+
self.pos = _save2
|
913
|
+
end
|
914
|
+
unless _tmp
|
915
|
+
self.pos = _save
|
916
|
+
break
|
917
|
+
end
|
918
|
+
_save3 = self.pos
|
919
|
+
_tmp = apply(:_CFWS)
|
920
|
+
unless _tmp
|
921
|
+
_tmp = true
|
922
|
+
self.pos = _save3
|
923
|
+
end
|
924
|
+
unless _tmp
|
925
|
+
self.pos = _save
|
869
926
|
end
|
870
|
-
_tmp = true
|
871
|
-
else
|
872
|
-
self.pos = _save2
|
873
|
-
end
|
874
|
-
unless _tmp
|
875
|
-
self.pos = _save
|
876
927
|
break
|
877
|
-
end
|
878
|
-
_save3 = self.pos
|
879
|
-
_tmp = apply(:_CFWS)
|
880
|
-
unless _tmp
|
881
|
-
_tmp = true
|
882
|
-
self.pos = _save3
|
883
|
-
end
|
884
|
-
unless _tmp
|
885
|
-
self.pos = _save
|
886
|
-
end
|
887
|
-
break
|
888
928
|
end # end sequence
|
889
929
|
|
890
930
|
set_failed_rule :_atom unless _tmp
|
@@ -896,31 +936,31 @@ class EmailAddressValidator::RFC2822Parser
|
|
896
936
|
|
897
937
|
_save = self.pos
|
898
938
|
while true # sequence
|
899
|
-
|
900
|
-
|
901
|
-
|
902
|
-
|
903
|
-
|
904
|
-
|
905
|
-
|
906
|
-
|
907
|
-
|
908
|
-
|
909
|
-
|
910
|
-
|
911
|
-
|
939
|
+
_save1 = self.pos
|
940
|
+
_tmp = apply(:_CFWS)
|
941
|
+
unless _tmp
|
942
|
+
_tmp = true
|
943
|
+
self.pos = _save1
|
944
|
+
end
|
945
|
+
unless _tmp
|
946
|
+
self.pos = _save
|
947
|
+
break
|
948
|
+
end
|
949
|
+
_tmp = apply(:_dot_hyphen_atom_hyphen_text)
|
950
|
+
unless _tmp
|
951
|
+
self.pos = _save
|
952
|
+
break
|
953
|
+
end
|
954
|
+
_save2 = self.pos
|
955
|
+
_tmp = apply(:_CFWS)
|
956
|
+
unless _tmp
|
957
|
+
_tmp = true
|
958
|
+
self.pos = _save2
|
959
|
+
end
|
960
|
+
unless _tmp
|
961
|
+
self.pos = _save
|
962
|
+
end
|
912
963
|
break
|
913
|
-
end
|
914
|
-
_save2 = self.pos
|
915
|
-
_tmp = apply(:_CFWS)
|
916
|
-
unless _tmp
|
917
|
-
_tmp = true
|
918
|
-
self.pos = _save2
|
919
|
-
end
|
920
|
-
unless _tmp
|
921
|
-
self.pos = _save
|
922
|
-
end
|
923
|
-
break
|
924
964
|
end # end sequence
|
925
965
|
|
926
966
|
set_failed_rule :_dot_hyphen_atom unless _tmp
|
@@ -932,54 +972,54 @@ class EmailAddressValidator::RFC2822Parser
|
|
932
972
|
|
933
973
|
_save = self.pos
|
934
974
|
while true # sequence
|
935
|
-
|
936
|
-
|
937
|
-
|
938
|
-
|
939
|
-
|
940
|
-
|
975
|
+
_save1 = self.pos
|
976
|
+
_tmp = apply(:_atext)
|
977
|
+
if _tmp
|
978
|
+
while true
|
979
|
+
_tmp = apply(:_atext)
|
980
|
+
break unless _tmp
|
981
|
+
end
|
982
|
+
_tmp = true
|
983
|
+
else
|
984
|
+
self.pos = _save1
|
985
|
+
end
|
986
|
+
unless _tmp
|
987
|
+
self.pos = _save
|
988
|
+
break
|
941
989
|
end
|
942
|
-
_tmp = true
|
943
|
-
else
|
944
|
-
self.pos = _save1
|
945
|
-
end
|
946
|
-
unless _tmp
|
947
|
-
self.pos = _save
|
948
|
-
break
|
949
|
-
end
|
950
|
-
while true
|
951
|
-
|
952
|
-
_save3 = self.pos
|
953
|
-
while true # sequence
|
954
|
-
_tmp = match_string(".")
|
955
|
-
unless _tmp
|
956
|
-
self.pos = _save3
|
957
|
-
break
|
958
|
-
end
|
959
|
-
_save4 = self.pos
|
960
|
-
_tmp = apply(:_atext)
|
961
|
-
if _tmp
|
962
990
|
while true
|
963
|
-
|
991
|
+
|
992
|
+
_save3 = self.pos
|
993
|
+
while true # sequence
|
994
|
+
_tmp = match_string(".")
|
995
|
+
unless _tmp
|
996
|
+
self.pos = _save3
|
997
|
+
break
|
998
|
+
end
|
999
|
+
_save4 = self.pos
|
1000
|
+
_tmp = apply(:_atext)
|
1001
|
+
if _tmp
|
1002
|
+
while true
|
1003
|
+
_tmp = apply(:_atext)
|
1004
|
+
break unless _tmp
|
1005
|
+
end
|
1006
|
+
_tmp = true
|
1007
|
+
else
|
1008
|
+
self.pos = _save4
|
1009
|
+
end
|
1010
|
+
unless _tmp
|
1011
|
+
self.pos = _save3
|
1012
|
+
end
|
1013
|
+
break
|
1014
|
+
end # end sequence
|
1015
|
+
|
964
1016
|
break unless _tmp
|
965
1017
|
end
|
966
1018
|
_tmp = true
|
967
|
-
|
968
|
-
|
969
|
-
|
970
|
-
|
971
|
-
self.pos = _save3
|
972
|
-
end
|
973
|
-
break
|
974
|
-
end # end sequence
|
975
|
-
|
976
|
-
break unless _tmp
|
977
|
-
end
|
978
|
-
_tmp = true
|
979
|
-
unless _tmp
|
980
|
-
self.pos = _save
|
981
|
-
end
|
982
|
-
break
|
1019
|
+
unless _tmp
|
1020
|
+
self.pos = _save
|
1021
|
+
end
|
1022
|
+
break
|
983
1023
|
end # end sequence
|
984
1024
|
|
985
1025
|
set_failed_rule :_dot_hyphen_atom_hyphen_text unless _tmp
|
@@ -991,19 +1031,19 @@ class EmailAddressValidator::RFC2822Parser
|
|
991
1031
|
|
992
1032
|
_save = self.pos
|
993
1033
|
while true # choice
|
994
|
-
|
995
|
-
|
996
|
-
|
997
|
-
|
998
|
-
|
999
|
-
|
1000
|
-
|
1001
|
-
|
1002
|
-
|
1003
|
-
|
1004
|
-
|
1005
|
-
|
1006
|
-
|
1034
|
+
_tmp = apply(:_NO_hyphen_WS_hyphen_CTL)
|
1035
|
+
break if _tmp
|
1036
|
+
self.pos = _save
|
1037
|
+
_tmp = apply_with_args(:_d, 33)
|
1038
|
+
break if _tmp
|
1039
|
+
self.pos = _save
|
1040
|
+
_tmp = apply_with_args(:_d_btw, 35,91)
|
1041
|
+
break if _tmp
|
1042
|
+
self.pos = _save
|
1043
|
+
_tmp = apply_with_args(:_d_btw, 93,126)
|
1044
|
+
break if _tmp
|
1045
|
+
self.pos = _save
|
1046
|
+
break
|
1007
1047
|
end # end choice
|
1008
1048
|
|
1009
1049
|
set_failed_rule :_qtext unless _tmp
|
@@ -1015,13 +1055,13 @@ class EmailAddressValidator::RFC2822Parser
|
|
1015
1055
|
|
1016
1056
|
_save = self.pos
|
1017
1057
|
while true # choice
|
1018
|
-
|
1019
|
-
|
1020
|
-
|
1021
|
-
|
1022
|
-
|
1023
|
-
|
1024
|
-
|
1058
|
+
_tmp = apply(:_qtext)
|
1059
|
+
break if _tmp
|
1060
|
+
self.pos = _save
|
1061
|
+
_tmp = apply(:_quoted_hyphen_pair)
|
1062
|
+
break if _tmp
|
1063
|
+
self.pos = _save
|
1064
|
+
break
|
1025
1065
|
end # end choice
|
1026
1066
|
|
1027
1067
|
set_failed_rule :_qcontent unless _tmp
|
@@ -1033,74 +1073,74 @@ class EmailAddressValidator::RFC2822Parser
|
|
1033
1073
|
|
1034
1074
|
_save = self.pos
|
1035
1075
|
while true # sequence
|
1036
|
-
|
1037
|
-
|
1038
|
-
|
1039
|
-
|
1040
|
-
|
1041
|
-
|
1042
|
-
|
1043
|
-
|
1044
|
-
|
1045
|
-
|
1046
|
-
|
1047
|
-
|
1048
|
-
|
1049
|
-
|
1050
|
-
|
1051
|
-
|
1076
|
+
_save1 = self.pos
|
1077
|
+
_tmp = apply(:_CFWS)
|
1078
|
+
unless _tmp
|
1079
|
+
_tmp = true
|
1080
|
+
self.pos = _save1
|
1081
|
+
end
|
1082
|
+
unless _tmp
|
1083
|
+
self.pos = _save
|
1084
|
+
break
|
1085
|
+
end
|
1086
|
+
_tmp = match_string("\"")
|
1087
|
+
unless _tmp
|
1088
|
+
self.pos = _save
|
1089
|
+
break
|
1090
|
+
end
|
1091
|
+
while true
|
1052
1092
|
|
1053
|
-
|
1054
|
-
|
1055
|
-
|
1056
|
-
|
1057
|
-
|
1058
|
-
|
1059
|
-
|
1060
|
-
|
1061
|
-
|
1062
|
-
|
1063
|
-
|
1064
|
-
|
1065
|
-
|
1066
|
-
|
1067
|
-
|
1068
|
-
|
1069
|
-
|
1070
|
-
|
1093
|
+
_save3 = self.pos
|
1094
|
+
while true # sequence
|
1095
|
+
_save4 = self.pos
|
1096
|
+
_tmp = apply(:_FWS)
|
1097
|
+
unless _tmp
|
1098
|
+
_tmp = true
|
1099
|
+
self.pos = _save4
|
1100
|
+
end
|
1101
|
+
unless _tmp
|
1102
|
+
self.pos = _save3
|
1103
|
+
break
|
1104
|
+
end
|
1105
|
+
_tmp = apply(:_qcontent)
|
1106
|
+
unless _tmp
|
1107
|
+
self.pos = _save3
|
1108
|
+
end
|
1109
|
+
break
|
1110
|
+
end # end sequence
|
1071
1111
|
|
1072
|
-
|
1073
|
-
|
1074
|
-
_tmp = true
|
1075
|
-
unless _tmp
|
1076
|
-
self.pos = _save
|
1077
|
-
break
|
1078
|
-
end
|
1079
|
-
_save5 = self.pos
|
1080
|
-
_tmp = apply(:_FWS)
|
1081
|
-
unless _tmp
|
1112
|
+
break unless _tmp
|
1113
|
+
end
|
1082
1114
|
_tmp = true
|
1083
|
-
|
1084
|
-
|
1085
|
-
|
1086
|
-
|
1087
|
-
|
1088
|
-
|
1089
|
-
|
1090
|
-
|
1091
|
-
|
1115
|
+
unless _tmp
|
1116
|
+
self.pos = _save
|
1117
|
+
break
|
1118
|
+
end
|
1119
|
+
_save5 = self.pos
|
1120
|
+
_tmp = apply(:_FWS)
|
1121
|
+
unless _tmp
|
1122
|
+
_tmp = true
|
1123
|
+
self.pos = _save5
|
1124
|
+
end
|
1125
|
+
unless _tmp
|
1126
|
+
self.pos = _save
|
1127
|
+
break
|
1128
|
+
end
|
1129
|
+
_tmp = match_string("\"")
|
1130
|
+
unless _tmp
|
1131
|
+
self.pos = _save
|
1132
|
+
break
|
1133
|
+
end
|
1134
|
+
_save6 = self.pos
|
1135
|
+
_tmp = apply(:_CFWS)
|
1136
|
+
unless _tmp
|
1137
|
+
_tmp = true
|
1138
|
+
self.pos = _save6
|
1139
|
+
end
|
1140
|
+
unless _tmp
|
1141
|
+
self.pos = _save
|
1142
|
+
end
|
1092
1143
|
break
|
1093
|
-
end
|
1094
|
-
_save6 = self.pos
|
1095
|
-
_tmp = apply(:_CFWS)
|
1096
|
-
unless _tmp
|
1097
|
-
_tmp = true
|
1098
|
-
self.pos = _save6
|
1099
|
-
end
|
1100
|
-
unless _tmp
|
1101
|
-
self.pos = _save
|
1102
|
-
end
|
1103
|
-
break
|
1104
1144
|
end # end sequence
|
1105
1145
|
|
1106
1146
|
set_failed_rule :_quoted_hyphen_string unless _tmp
|
@@ -1112,13 +1152,13 @@ class EmailAddressValidator::RFC2822Parser
|
|
1112
1152
|
|
1113
1153
|
_save = self.pos
|
1114
1154
|
while true # choice
|
1115
|
-
|
1116
|
-
|
1117
|
-
|
1118
|
-
|
1119
|
-
|
1120
|
-
|
1121
|
-
|
1155
|
+
_tmp = apply(:_atom)
|
1156
|
+
break if _tmp
|
1157
|
+
self.pos = _save
|
1158
|
+
_tmp = apply(:_quoted_hyphen_string)
|
1159
|
+
break if _tmp
|
1160
|
+
self.pos = _save
|
1161
|
+
break
|
1122
1162
|
end # end choice
|
1123
1163
|
|
1124
1164
|
set_failed_rule :_word unless _tmp
|
@@ -1130,23 +1170,23 @@ class EmailAddressValidator::RFC2822Parser
|
|
1130
1170
|
|
1131
1171
|
_save = self.pos
|
1132
1172
|
while true # choice
|
1133
|
-
|
1134
|
-
|
1135
|
-
|
1136
|
-
|
1137
|
-
|
1138
|
-
|
1173
|
+
_save1 = self.pos
|
1174
|
+
_tmp = apply(:_word)
|
1175
|
+
if _tmp
|
1176
|
+
while true
|
1177
|
+
_tmp = apply(:_word)
|
1178
|
+
break unless _tmp
|
1179
|
+
end
|
1180
|
+
_tmp = true
|
1181
|
+
else
|
1182
|
+
self.pos = _save1
|
1139
1183
|
end
|
1140
|
-
|
1141
|
-
|
1142
|
-
|
1143
|
-
|
1144
|
-
|
1145
|
-
|
1146
|
-
_tmp = apply(:_obs_hyphen_phrase)
|
1147
|
-
break if _tmp
|
1148
|
-
self.pos = _save
|
1149
|
-
break
|
1184
|
+
break if _tmp
|
1185
|
+
self.pos = _save
|
1186
|
+
_tmp = apply(:_obs_hyphen_phrase)
|
1187
|
+
break if _tmp
|
1188
|
+
self.pos = _save
|
1189
|
+
break
|
1150
1190
|
end # end choice
|
1151
1191
|
|
1152
1192
|
set_failed_rule :_phrase unless _tmp
|
@@ -1158,16 +1198,16 @@ class EmailAddressValidator::RFC2822Parser
|
|
1158
1198
|
|
1159
1199
|
_save = self.pos
|
1160
1200
|
while true # choice
|
1161
|
-
|
1162
|
-
|
1163
|
-
|
1164
|
-
|
1165
|
-
|
1166
|
-
|
1167
|
-
|
1168
|
-
|
1169
|
-
|
1170
|
-
|
1201
|
+
_tmp = apply(:_NO_hyphen_WS_hyphen_CTL)
|
1202
|
+
break if _tmp
|
1203
|
+
self.pos = _save
|
1204
|
+
_tmp = apply_with_args(:_d_btw, 33,126)
|
1205
|
+
break if _tmp
|
1206
|
+
self.pos = _save
|
1207
|
+
_tmp = apply(:_obs_hyphen_utext)
|
1208
|
+
break if _tmp
|
1209
|
+
self.pos = _save
|
1210
|
+
break
|
1171
1211
|
end # end choice
|
1172
1212
|
|
1173
1213
|
set_failed_rule :_utext unless _tmp
|
@@ -1179,44 +1219,44 @@ class EmailAddressValidator::RFC2822Parser
|
|
1179
1219
|
|
1180
1220
|
_save = self.pos
|
1181
1221
|
while true # sequence
|
1182
|
-
|
1222
|
+
while true
|
1183
1223
|
|
1184
|
-
|
1185
|
-
|
1186
|
-
|
1187
|
-
|
1188
|
-
|
1189
|
-
|
1190
|
-
|
1191
|
-
|
1192
|
-
|
1193
|
-
|
1194
|
-
|
1195
|
-
|
1196
|
-
|
1197
|
-
|
1198
|
-
|
1199
|
-
|
1200
|
-
|
1201
|
-
|
1224
|
+
_save2 = self.pos
|
1225
|
+
while true # sequence
|
1226
|
+
_save3 = self.pos
|
1227
|
+
_tmp = apply(:_FWS)
|
1228
|
+
unless _tmp
|
1229
|
+
_tmp = true
|
1230
|
+
self.pos = _save3
|
1231
|
+
end
|
1232
|
+
unless _tmp
|
1233
|
+
self.pos = _save2
|
1234
|
+
break
|
1235
|
+
end
|
1236
|
+
_tmp = apply(:_utext)
|
1237
|
+
unless _tmp
|
1238
|
+
self.pos = _save2
|
1239
|
+
end
|
1240
|
+
break
|
1241
|
+
end # end sequence
|
1202
1242
|
|
1203
|
-
|
1204
|
-
|
1205
|
-
_tmp = true
|
1206
|
-
unless _tmp
|
1207
|
-
self.pos = _save
|
1208
|
-
break
|
1209
|
-
end
|
1210
|
-
_save4 = self.pos
|
1211
|
-
_tmp = apply(:_FWS)
|
1212
|
-
unless _tmp
|
1243
|
+
break unless _tmp
|
1244
|
+
end
|
1213
1245
|
_tmp = true
|
1214
|
-
|
1215
|
-
|
1216
|
-
|
1217
|
-
|
1218
|
-
|
1219
|
-
|
1246
|
+
unless _tmp
|
1247
|
+
self.pos = _save
|
1248
|
+
break
|
1249
|
+
end
|
1250
|
+
_save4 = self.pos
|
1251
|
+
_tmp = apply(:_FWS)
|
1252
|
+
unless _tmp
|
1253
|
+
_tmp = true
|
1254
|
+
self.pos = _save4
|
1255
|
+
end
|
1256
|
+
unless _tmp
|
1257
|
+
self.pos = _save
|
1258
|
+
end
|
1259
|
+
break
|
1220
1260
|
end # end sequence
|
1221
1261
|
|
1222
1262
|
set_failed_rule :_unstructured unless _tmp
|
@@ -1228,13 +1268,13 @@ class EmailAddressValidator::RFC2822Parser
|
|
1228
1268
|
|
1229
1269
|
_save = self.pos
|
1230
1270
|
while true # choice
|
1231
|
-
|
1232
|
-
|
1233
|
-
|
1234
|
-
|
1235
|
-
|
1236
|
-
|
1237
|
-
|
1271
|
+
_tmp = apply(:_mailbox)
|
1272
|
+
break if _tmp
|
1273
|
+
self.pos = _save
|
1274
|
+
_tmp = apply(:_group)
|
1275
|
+
break if _tmp
|
1276
|
+
self.pos = _save
|
1277
|
+
break
|
1238
1278
|
end # end choice
|
1239
1279
|
|
1240
1280
|
set_failed_rule :_address unless _tmp
|
@@ -1246,13 +1286,13 @@ class EmailAddressValidator::RFC2822Parser
|
|
1246
1286
|
|
1247
1287
|
_save = self.pos
|
1248
1288
|
while true # choice
|
1249
|
-
|
1250
|
-
|
1251
|
-
|
1252
|
-
|
1253
|
-
|
1254
|
-
|
1255
|
-
|
1289
|
+
_tmp = apply(:_name_hyphen_addr)
|
1290
|
+
break if _tmp
|
1291
|
+
self.pos = _save
|
1292
|
+
_tmp = apply(:_addr_hyphen_spec)
|
1293
|
+
break if _tmp
|
1294
|
+
self.pos = _save
|
1295
|
+
break
|
1256
1296
|
end # end choice
|
1257
1297
|
|
1258
1298
|
set_failed_rule :_mailbox unless _tmp
|
@@ -1264,21 +1304,21 @@ class EmailAddressValidator::RFC2822Parser
|
|
1264
1304
|
|
1265
1305
|
_save = self.pos
|
1266
1306
|
while true # sequence
|
1267
|
-
|
1268
|
-
|
1269
|
-
|
1270
|
-
|
1271
|
-
|
1272
|
-
|
1273
|
-
|
1274
|
-
|
1307
|
+
_save1 = self.pos
|
1308
|
+
_tmp = apply(:_display_hyphen_name)
|
1309
|
+
unless _tmp
|
1310
|
+
_tmp = true
|
1311
|
+
self.pos = _save1
|
1312
|
+
end
|
1313
|
+
unless _tmp
|
1314
|
+
self.pos = _save
|
1315
|
+
break
|
1316
|
+
end
|
1317
|
+
_tmp = apply(:_angle_hyphen_addr)
|
1318
|
+
unless _tmp
|
1319
|
+
self.pos = _save
|
1320
|
+
end
|
1275
1321
|
break
|
1276
|
-
end
|
1277
|
-
_tmp = apply(:_angle_hyphen_addr)
|
1278
|
-
unless _tmp
|
1279
|
-
self.pos = _save
|
1280
|
-
end
|
1281
|
-
break
|
1282
1322
|
end # end sequence
|
1283
1323
|
|
1284
1324
|
set_failed_rule :_name_hyphen_addr unless _tmp
|
@@ -1291,51 +1331,51 @@ class EmailAddressValidator::RFC2822Parser
|
|
1291
1331
|
_save = self.pos
|
1292
1332
|
while true # choice
|
1293
1333
|
|
1294
|
-
|
1295
|
-
|
1296
|
-
|
1297
|
-
|
1298
|
-
|
1299
|
-
|
1300
|
-
|
1301
|
-
|
1302
|
-
|
1303
|
-
|
1304
|
-
|
1305
|
-
|
1306
|
-
|
1307
|
-
|
1308
|
-
|
1309
|
-
|
1310
|
-
|
1311
|
-
|
1312
|
-
|
1313
|
-
|
1314
|
-
|
1315
|
-
|
1316
|
-
|
1317
|
-
|
1318
|
-
|
1319
|
-
|
1320
|
-
|
1321
|
-
|
1322
|
-
|
1323
|
-
|
1324
|
-
|
1325
|
-
|
1326
|
-
|
1327
|
-
|
1328
|
-
|
1329
|
-
|
1330
|
-
|
1331
|
-
|
1334
|
+
_save1 = self.pos
|
1335
|
+
while true # sequence
|
1336
|
+
_save2 = self.pos
|
1337
|
+
_tmp = apply(:_CFWS)
|
1338
|
+
unless _tmp
|
1339
|
+
_tmp = true
|
1340
|
+
self.pos = _save2
|
1341
|
+
end
|
1342
|
+
unless _tmp
|
1343
|
+
self.pos = _save1
|
1344
|
+
break
|
1345
|
+
end
|
1346
|
+
_tmp = match_string("<")
|
1347
|
+
unless _tmp
|
1348
|
+
self.pos = _save1
|
1349
|
+
break
|
1350
|
+
end
|
1351
|
+
_tmp = apply(:_addr_hyphen_spec)
|
1352
|
+
unless _tmp
|
1353
|
+
self.pos = _save1
|
1354
|
+
break
|
1355
|
+
end
|
1356
|
+
_tmp = match_string(">")
|
1357
|
+
unless _tmp
|
1358
|
+
self.pos = _save1
|
1359
|
+
break
|
1360
|
+
end
|
1361
|
+
_save3 = self.pos
|
1362
|
+
_tmp = apply(:_CFWS)
|
1363
|
+
unless _tmp
|
1364
|
+
_tmp = true
|
1365
|
+
self.pos = _save3
|
1366
|
+
end
|
1367
|
+
unless _tmp
|
1368
|
+
self.pos = _save1
|
1369
|
+
end
|
1370
|
+
break
|
1371
|
+
end # end sequence
|
1332
1372
|
|
1333
|
-
|
1334
|
-
|
1335
|
-
|
1336
|
-
|
1337
|
-
|
1338
|
-
|
1373
|
+
break if _tmp
|
1374
|
+
self.pos = _save
|
1375
|
+
_tmp = apply(:_obs_hyphen_angle_hyphen_addr)
|
1376
|
+
break if _tmp
|
1377
|
+
self.pos = _save
|
1378
|
+
break
|
1339
1379
|
end # end choice
|
1340
1380
|
|
1341
1381
|
set_failed_rule :_angle_hyphen_addr unless _tmp
|
@@ -1347,52 +1387,52 @@ class EmailAddressValidator::RFC2822Parser
|
|
1347
1387
|
|
1348
1388
|
_save = self.pos
|
1349
1389
|
while true # sequence
|
1350
|
-
|
1351
|
-
|
1352
|
-
|
1353
|
-
|
1354
|
-
|
1355
|
-
|
1356
|
-
|
1357
|
-
|
1358
|
-
|
1359
|
-
|
1360
|
-
|
1361
|
-
|
1362
|
-
|
1363
|
-
|
1364
|
-
|
1365
|
-
|
1366
|
-
|
1367
|
-
|
1368
|
-
|
1369
|
-
|
1370
|
-
|
1371
|
-
|
1372
|
-
|
1373
|
-
|
1374
|
-
|
1375
|
-
|
1376
|
-
|
1377
|
-
|
1378
|
-
|
1379
|
-
|
1380
|
-
|
1381
|
-
|
1382
|
-
|
1383
|
-
|
1390
|
+
_tmp = apply(:_display_hyphen_name)
|
1391
|
+
unless _tmp
|
1392
|
+
self.pos = _save
|
1393
|
+
break
|
1394
|
+
end
|
1395
|
+
_tmp = match_string(":")
|
1396
|
+
unless _tmp
|
1397
|
+
self.pos = _save
|
1398
|
+
break
|
1399
|
+
end
|
1400
|
+
_save1 = self.pos
|
1401
|
+
|
1402
|
+
_save2 = self.pos
|
1403
|
+
while true # choice
|
1404
|
+
_tmp = apply(:_mailbox_hyphen_list)
|
1405
|
+
break if _tmp
|
1406
|
+
self.pos = _save2
|
1407
|
+
_tmp = apply(:_CFWS)
|
1408
|
+
break if _tmp
|
1409
|
+
self.pos = _save2
|
1410
|
+
break
|
1411
|
+
end # end choice
|
1412
|
+
|
1413
|
+
unless _tmp
|
1414
|
+
_tmp = true
|
1415
|
+
self.pos = _save1
|
1416
|
+
end
|
1417
|
+
unless _tmp
|
1418
|
+
self.pos = _save
|
1419
|
+
break
|
1420
|
+
end
|
1421
|
+
_tmp = match_string(";")
|
1422
|
+
unless _tmp
|
1423
|
+
self.pos = _save
|
1424
|
+
break
|
1425
|
+
end
|
1426
|
+
_save3 = self.pos
|
1427
|
+
_tmp = apply(:_CFWS)
|
1428
|
+
unless _tmp
|
1429
|
+
_tmp = true
|
1430
|
+
self.pos = _save3
|
1431
|
+
end
|
1432
|
+
unless _tmp
|
1433
|
+
self.pos = _save
|
1434
|
+
end
|
1384
1435
|
break
|
1385
|
-
end
|
1386
|
-
_save3 = self.pos
|
1387
|
-
_tmp = apply(:_CFWS)
|
1388
|
-
unless _tmp
|
1389
|
-
_tmp = true
|
1390
|
-
self.pos = _save3
|
1391
|
-
end
|
1392
|
-
unless _tmp
|
1393
|
-
self.pos = _save
|
1394
|
-
end
|
1395
|
-
break
|
1396
1436
|
end # end sequence
|
1397
1437
|
|
1398
1438
|
set_failed_rule :_group unless _tmp
|
@@ -1412,44 +1452,44 @@ class EmailAddressValidator::RFC2822Parser
|
|
1412
1452
|
_save = self.pos
|
1413
1453
|
while true # choice
|
1414
1454
|
|
1415
|
-
|
1416
|
-
|
1417
|
-
|
1418
|
-
|
1419
|
-
|
1420
|
-
|
1421
|
-
|
1422
|
-
|
1455
|
+
_save1 = self.pos
|
1456
|
+
while true # sequence
|
1457
|
+
_tmp = apply(:_mailbox)
|
1458
|
+
unless _tmp
|
1459
|
+
self.pos = _save1
|
1460
|
+
break
|
1461
|
+
end
|
1462
|
+
while true
|
1463
|
+
|
1464
|
+
_save3 = self.pos
|
1465
|
+
while true # sequence
|
1466
|
+
_tmp = match_string(",")
|
1467
|
+
unless _tmp
|
1468
|
+
self.pos = _save3
|
1469
|
+
break
|
1470
|
+
end
|
1471
|
+
_tmp = apply(:_mailbox)
|
1472
|
+
unless _tmp
|
1473
|
+
self.pos = _save3
|
1474
|
+
end
|
1475
|
+
break
|
1476
|
+
end # end sequence
|
1477
|
+
|
1478
|
+
break unless _tmp
|
1479
|
+
end
|
1480
|
+
_tmp = true
|
1481
|
+
unless _tmp
|
1482
|
+
self.pos = _save1
|
1483
|
+
end
|
1484
|
+
break
|
1485
|
+
end # end sequence
|
1423
1486
|
|
1424
|
-
|
1425
|
-
|
1426
|
-
|
1427
|
-
|
1428
|
-
self.pos =
|
1487
|
+
break if _tmp
|
1488
|
+
self.pos = _save
|
1489
|
+
_tmp = apply(:_obs_hyphen_mbox_hyphen_list)
|
1490
|
+
break if _tmp
|
1491
|
+
self.pos = _save
|
1429
1492
|
break
|
1430
|
-
end
|
1431
|
-
_tmp = apply(:_mailbox)
|
1432
|
-
unless _tmp
|
1433
|
-
self.pos = _save3
|
1434
|
-
end
|
1435
|
-
break
|
1436
|
-
end # end sequence
|
1437
|
-
|
1438
|
-
break unless _tmp
|
1439
|
-
end
|
1440
|
-
_tmp = true
|
1441
|
-
unless _tmp
|
1442
|
-
self.pos = _save1
|
1443
|
-
end
|
1444
|
-
break
|
1445
|
-
end # end sequence
|
1446
|
-
|
1447
|
-
break if _tmp
|
1448
|
-
self.pos = _save
|
1449
|
-
_tmp = apply(:_obs_hyphen_mbox_hyphen_list)
|
1450
|
-
break if _tmp
|
1451
|
-
self.pos = _save
|
1452
|
-
break
|
1453
1493
|
end # end choice
|
1454
1494
|
|
1455
1495
|
set_failed_rule :_mailbox_hyphen_list unless _tmp
|
@@ -1462,44 +1502,44 @@ class EmailAddressValidator::RFC2822Parser
|
|
1462
1502
|
_save = self.pos
|
1463
1503
|
while true # choice
|
1464
1504
|
|
1465
|
-
|
1466
|
-
|
1467
|
-
|
1468
|
-
|
1469
|
-
|
1470
|
-
|
1471
|
-
|
1472
|
-
|
1505
|
+
_save1 = self.pos
|
1506
|
+
while true # sequence
|
1507
|
+
_tmp = apply(:_address)
|
1508
|
+
unless _tmp
|
1509
|
+
self.pos = _save1
|
1510
|
+
break
|
1511
|
+
end
|
1512
|
+
while true
|
1513
|
+
|
1514
|
+
_save3 = self.pos
|
1515
|
+
while true # sequence
|
1516
|
+
_tmp = match_string(",")
|
1517
|
+
unless _tmp
|
1518
|
+
self.pos = _save3
|
1519
|
+
break
|
1520
|
+
end
|
1521
|
+
_tmp = apply(:_address)
|
1522
|
+
unless _tmp
|
1523
|
+
self.pos = _save3
|
1524
|
+
end
|
1525
|
+
break
|
1526
|
+
end # end sequence
|
1527
|
+
|
1528
|
+
break unless _tmp
|
1529
|
+
end
|
1530
|
+
_tmp = true
|
1531
|
+
unless _tmp
|
1532
|
+
self.pos = _save1
|
1533
|
+
end
|
1534
|
+
break
|
1535
|
+
end # end sequence
|
1473
1536
|
|
1474
|
-
|
1475
|
-
|
1476
|
-
|
1477
|
-
|
1478
|
-
self.pos =
|
1537
|
+
break if _tmp
|
1538
|
+
self.pos = _save
|
1539
|
+
_tmp = apply(:_obs_hyphen_addr_hyphen_list)
|
1540
|
+
break if _tmp
|
1541
|
+
self.pos = _save
|
1479
1542
|
break
|
1480
|
-
end
|
1481
|
-
_tmp = apply(:_address)
|
1482
|
-
unless _tmp
|
1483
|
-
self.pos = _save3
|
1484
|
-
end
|
1485
|
-
break
|
1486
|
-
end # end sequence
|
1487
|
-
|
1488
|
-
break unless _tmp
|
1489
|
-
end
|
1490
|
-
_tmp = true
|
1491
|
-
unless _tmp
|
1492
|
-
self.pos = _save1
|
1493
|
-
end
|
1494
|
-
break
|
1495
|
-
end # end sequence
|
1496
|
-
|
1497
|
-
break if _tmp
|
1498
|
-
self.pos = _save
|
1499
|
-
_tmp = apply(:_obs_hyphen_addr_hyphen_list)
|
1500
|
-
break if _tmp
|
1501
|
-
self.pos = _save
|
1502
|
-
break
|
1503
1543
|
end # end choice
|
1504
1544
|
|
1505
1545
|
set_failed_rule :_address_hyphen_list unless _tmp
|
@@ -1511,21 +1551,21 @@ class EmailAddressValidator::RFC2822Parser
|
|
1511
1551
|
|
1512
1552
|
_save = self.pos
|
1513
1553
|
while true # sequence
|
1514
|
-
|
1515
|
-
|
1516
|
-
|
1517
|
-
|
1518
|
-
|
1519
|
-
|
1520
|
-
|
1521
|
-
|
1554
|
+
_tmp = apply(:_local_hyphen_part)
|
1555
|
+
unless _tmp
|
1556
|
+
self.pos = _save
|
1557
|
+
break
|
1558
|
+
end
|
1559
|
+
_tmp = match_string("@")
|
1560
|
+
unless _tmp
|
1561
|
+
self.pos = _save
|
1562
|
+
break
|
1563
|
+
end
|
1564
|
+
_tmp = apply(:_domain)
|
1565
|
+
unless _tmp
|
1566
|
+
self.pos = _save
|
1567
|
+
end
|
1522
1568
|
break
|
1523
|
-
end
|
1524
|
-
_tmp = apply(:_domain)
|
1525
|
-
unless _tmp
|
1526
|
-
self.pos = _save
|
1527
|
-
end
|
1528
|
-
break
|
1529
1569
|
end # end sequence
|
1530
1570
|
|
1531
1571
|
set_failed_rule :_addr_hyphen_spec unless _tmp
|
@@ -1537,17 +1577,17 @@ class EmailAddressValidator::RFC2822Parser
|
|
1537
1577
|
|
1538
1578
|
_save = self.pos
|
1539
1579
|
while true # choice
|
1540
|
-
|
1541
|
-
|
1542
|
-
|
1543
|
-
|
1544
|
-
|
1545
|
-
|
1546
|
-
|
1547
|
-
|
1548
|
-
|
1549
|
-
|
1550
|
-
end # end choice
|
1580
|
+
_tmp = apply(:_dot_hyphen_atom)
|
1581
|
+
break if _tmp
|
1582
|
+
self.pos = _save
|
1583
|
+
_tmp = apply(:_quoted_hyphen_string)
|
1584
|
+
break if _tmp
|
1585
|
+
self.pos = _save
|
1586
|
+
_tmp = apply(:_obs_hyphen_local_hyphen_part)
|
1587
|
+
break if _tmp
|
1588
|
+
self.pos = _save
|
1589
|
+
break
|
1590
|
+
end # end choice
|
1551
1591
|
|
1552
1592
|
set_failed_rule :_local_hyphen_part unless _tmp
|
1553
1593
|
return _tmp
|
@@ -1559,55 +1599,55 @@ class EmailAddressValidator::RFC2822Parser
|
|
1559
1599
|
_save = self.pos
|
1560
1600
|
while true # choice
|
1561
1601
|
|
1562
|
-
|
1563
|
-
|
1564
|
-
|
1565
|
-
|
1566
|
-
|
1567
|
-
|
1568
|
-
|
1569
|
-
|
1570
|
-
|
1571
|
-
|
1572
|
-
|
1573
|
-
|
1574
|
-
|
1575
|
-
|
1576
|
-
|
1577
|
-
|
1578
|
-
|
1579
|
-
|
1580
|
-
|
1602
|
+
_save1 = self.pos
|
1603
|
+
while true # sequence
|
1604
|
+
_text_start = self.pos
|
1605
|
+
_tmp = apply(:_dot_hyphen_atom)
|
1606
|
+
if _tmp
|
1607
|
+
text = get_text(_text_start)
|
1608
|
+
end
|
1609
|
+
unless _tmp
|
1610
|
+
self.pos = _save1
|
1611
|
+
break
|
1612
|
+
end
|
1613
|
+
_save2 = self.pos
|
1614
|
+
_tmp = begin; @validate_domain ? EmailAddressValidator::DomainParser.new(text).parse : true ; end
|
1615
|
+
self.pos = _save2
|
1616
|
+
unless _tmp
|
1617
|
+
self.pos = _save1
|
1618
|
+
end
|
1619
|
+
break
|
1620
|
+
end # end sequence
|
1581
1621
|
|
1582
|
-
|
1583
|
-
|
1584
|
-
|
1585
|
-
|
1586
|
-
|
1622
|
+
break if _tmp
|
1623
|
+
self.pos = _save
|
1624
|
+
_tmp = apply(:_domain_hyphen_literal)
|
1625
|
+
break if _tmp
|
1626
|
+
self.pos = _save
|
1587
1627
|
|
1588
|
-
|
1589
|
-
|
1590
|
-
|
1591
|
-
|
1592
|
-
|
1593
|
-
|
1594
|
-
|
1595
|
-
|
1596
|
-
|
1597
|
-
|
1598
|
-
|
1599
|
-
|
1600
|
-
|
1601
|
-
|
1602
|
-
|
1603
|
-
|
1604
|
-
|
1605
|
-
|
1606
|
-
|
1628
|
+
_save3 = self.pos
|
1629
|
+
while true # sequence
|
1630
|
+
_text_start = self.pos
|
1631
|
+
_tmp = apply(:_obs_hyphen_domain)
|
1632
|
+
if _tmp
|
1633
|
+
text = get_text(_text_start)
|
1634
|
+
end
|
1635
|
+
unless _tmp
|
1636
|
+
self.pos = _save3
|
1637
|
+
break
|
1638
|
+
end
|
1639
|
+
_save4 = self.pos
|
1640
|
+
_tmp = begin; @validate_domain ? EmailAddressValidator::DomainParser.new(text).parse : true ; end
|
1641
|
+
self.pos = _save4
|
1642
|
+
unless _tmp
|
1643
|
+
self.pos = _save3
|
1644
|
+
end
|
1645
|
+
break
|
1646
|
+
end # end sequence
|
1607
1647
|
|
1608
|
-
|
1609
|
-
|
1610
|
-
|
1648
|
+
break if _tmp
|
1649
|
+
self.pos = _save
|
1650
|
+
break
|
1611
1651
|
end # end choice
|
1612
1652
|
|
1613
1653
|
set_failed_rule :_domain unless _tmp
|
@@ -1619,74 +1659,74 @@ class EmailAddressValidator::RFC2822Parser
|
|
1619
1659
|
|
1620
1660
|
_save = self.pos
|
1621
1661
|
while true # sequence
|
1622
|
-
|
1623
|
-
|
1624
|
-
|
1625
|
-
|
1626
|
-
|
1627
|
-
|
1628
|
-
|
1629
|
-
|
1630
|
-
|
1631
|
-
|
1632
|
-
|
1633
|
-
|
1634
|
-
|
1635
|
-
|
1636
|
-
|
1637
|
-
|
1662
|
+
_save1 = self.pos
|
1663
|
+
_tmp = apply(:_CFWS)
|
1664
|
+
unless _tmp
|
1665
|
+
_tmp = true
|
1666
|
+
self.pos = _save1
|
1667
|
+
end
|
1668
|
+
unless _tmp
|
1669
|
+
self.pos = _save
|
1670
|
+
break
|
1671
|
+
end
|
1672
|
+
_tmp = match_string("[")
|
1673
|
+
unless _tmp
|
1674
|
+
self.pos = _save
|
1675
|
+
break
|
1676
|
+
end
|
1677
|
+
while true
|
1638
1678
|
|
1639
|
-
|
1640
|
-
|
1641
|
-
|
1642
|
-
|
1643
|
-
|
1644
|
-
|
1645
|
-
|
1646
|
-
|
1647
|
-
|
1648
|
-
|
1649
|
-
|
1650
|
-
|
1651
|
-
|
1652
|
-
|
1653
|
-
|
1654
|
-
|
1655
|
-
|
1656
|
-
|
1679
|
+
_save3 = self.pos
|
1680
|
+
while true # sequence
|
1681
|
+
_save4 = self.pos
|
1682
|
+
_tmp = apply(:_FWS)
|
1683
|
+
unless _tmp
|
1684
|
+
_tmp = true
|
1685
|
+
self.pos = _save4
|
1686
|
+
end
|
1687
|
+
unless _tmp
|
1688
|
+
self.pos = _save3
|
1689
|
+
break
|
1690
|
+
end
|
1691
|
+
_tmp = apply(:_dcontent)
|
1692
|
+
unless _tmp
|
1693
|
+
self.pos = _save3
|
1694
|
+
end
|
1695
|
+
break
|
1696
|
+
end # end sequence
|
1657
1697
|
|
1658
|
-
|
1659
|
-
|
1660
|
-
_tmp = true
|
1661
|
-
unless _tmp
|
1662
|
-
self.pos = _save
|
1663
|
-
break
|
1664
|
-
end
|
1665
|
-
_save5 = self.pos
|
1666
|
-
_tmp = apply(:_FWS)
|
1667
|
-
unless _tmp
|
1698
|
+
break unless _tmp
|
1699
|
+
end
|
1668
1700
|
_tmp = true
|
1669
|
-
|
1670
|
-
|
1671
|
-
|
1672
|
-
|
1673
|
-
|
1674
|
-
|
1675
|
-
|
1676
|
-
|
1677
|
-
|
1701
|
+
unless _tmp
|
1702
|
+
self.pos = _save
|
1703
|
+
break
|
1704
|
+
end
|
1705
|
+
_save5 = self.pos
|
1706
|
+
_tmp = apply(:_FWS)
|
1707
|
+
unless _tmp
|
1708
|
+
_tmp = true
|
1709
|
+
self.pos = _save5
|
1710
|
+
end
|
1711
|
+
unless _tmp
|
1712
|
+
self.pos = _save
|
1713
|
+
break
|
1714
|
+
end
|
1715
|
+
_tmp = match_string("]")
|
1716
|
+
unless _tmp
|
1717
|
+
self.pos = _save
|
1718
|
+
break
|
1719
|
+
end
|
1720
|
+
_save6 = self.pos
|
1721
|
+
_tmp = apply(:_CFWS)
|
1722
|
+
unless _tmp
|
1723
|
+
_tmp = true
|
1724
|
+
self.pos = _save6
|
1725
|
+
end
|
1726
|
+
unless _tmp
|
1727
|
+
self.pos = _save
|
1728
|
+
end
|
1678
1729
|
break
|
1679
|
-
end
|
1680
|
-
_save6 = self.pos
|
1681
|
-
_tmp = apply(:_CFWS)
|
1682
|
-
unless _tmp
|
1683
|
-
_tmp = true
|
1684
|
-
self.pos = _save6
|
1685
|
-
end
|
1686
|
-
unless _tmp
|
1687
|
-
self.pos = _save
|
1688
|
-
end
|
1689
|
-
break
|
1690
1730
|
end # end sequence
|
1691
1731
|
|
1692
1732
|
set_failed_rule :_domain_hyphen_literal unless _tmp
|
@@ -1698,13 +1738,13 @@ class EmailAddressValidator::RFC2822Parser
|
|
1698
1738
|
|
1699
1739
|
_save = self.pos
|
1700
1740
|
while true # choice
|
1701
|
-
|
1702
|
-
|
1703
|
-
|
1704
|
-
|
1705
|
-
|
1706
|
-
|
1707
|
-
|
1741
|
+
_tmp = apply(:_dtext)
|
1742
|
+
break if _tmp
|
1743
|
+
self.pos = _save
|
1744
|
+
_tmp = apply(:_quoted_hyphen_pair)
|
1745
|
+
break if _tmp
|
1746
|
+
self.pos = _save
|
1747
|
+
break
|
1708
1748
|
end # end choice
|
1709
1749
|
|
1710
1750
|
set_failed_rule :_dcontent unless _tmp
|
@@ -1716,16 +1756,16 @@ class EmailAddressValidator::RFC2822Parser
|
|
1716
1756
|
|
1717
1757
|
_save = self.pos
|
1718
1758
|
while true # choice
|
1719
|
-
|
1720
|
-
|
1721
|
-
|
1722
|
-
|
1723
|
-
|
1724
|
-
|
1725
|
-
|
1726
|
-
|
1727
|
-
|
1728
|
-
|
1759
|
+
_tmp = apply(:_NO_hyphen_WS_hyphen_CTL)
|
1760
|
+
break if _tmp
|
1761
|
+
self.pos = _save
|
1762
|
+
_tmp = apply_with_args(:_d_btw, 33,90)
|
1763
|
+
break if _tmp
|
1764
|
+
self.pos = _save
|
1765
|
+
_tmp = apply_with_args(:_d_btw, 94,126)
|
1766
|
+
break if _tmp
|
1767
|
+
self.pos = _save
|
1768
|
+
break
|
1729
1769
|
end # end choice
|
1730
1770
|
|
1731
1771
|
set_failed_rule :_dtext unless _tmp
|
@@ -1737,16 +1777,16 @@ class EmailAddressValidator::RFC2822Parser
|
|
1737
1777
|
|
1738
1778
|
_save = self.pos
|
1739
1779
|
while true # sequence
|
1740
|
-
|
1741
|
-
|
1742
|
-
|
1780
|
+
_tmp = match_string("\\")
|
1781
|
+
unless _tmp
|
1782
|
+
self.pos = _save
|
1783
|
+
break
|
1784
|
+
end
|
1785
|
+
_tmp = apply_with_args(:_d_btw, 0,127)
|
1786
|
+
unless _tmp
|
1787
|
+
self.pos = _save
|
1788
|
+
end
|
1743
1789
|
break
|
1744
|
-
end
|
1745
|
-
_tmp = _d_btw(0,127)
|
1746
|
-
unless _tmp
|
1747
|
-
self.pos = _save
|
1748
|
-
end
|
1749
|
-
break
|
1750
1790
|
end # end sequence
|
1751
1791
|
|
1752
1792
|
set_failed_rule :_obs_hyphen_qp unless _tmp
|
@@ -1758,60 +1798,60 @@ class EmailAddressValidator::RFC2822Parser
|
|
1758
1798
|
|
1759
1799
|
_save = self.pos
|
1760
1800
|
while true # sequence
|
1761
|
-
|
1762
|
-
|
1763
|
-
|
1764
|
-
|
1765
|
-
|
1766
|
-
|
1767
|
-
|
1768
|
-
|
1769
|
-
|
1770
|
-
|
1771
|
-
|
1772
|
-
|
1773
|
-
|
1774
|
-
|
1775
|
-
|
1776
|
-
|
1777
|
-
|
1778
|
-
|
1779
|
-
|
1801
|
+
while true
|
1802
|
+
_tmp = apply(:_LF)
|
1803
|
+
break unless _tmp
|
1804
|
+
end
|
1805
|
+
_tmp = true
|
1806
|
+
unless _tmp
|
1807
|
+
self.pos = _save
|
1808
|
+
break
|
1809
|
+
end
|
1810
|
+
while true
|
1811
|
+
_tmp = apply(:_CR)
|
1812
|
+
break unless _tmp
|
1813
|
+
end
|
1814
|
+
_tmp = true
|
1815
|
+
unless _tmp
|
1816
|
+
self.pos = _save
|
1817
|
+
break
|
1818
|
+
end
|
1819
|
+
while true
|
1780
1820
|
|
1781
|
-
|
1782
|
-
|
1783
|
-
|
1784
|
-
|
1785
|
-
|
1786
|
-
|
1787
|
-
|
1788
|
-
|
1789
|
-
|
1790
|
-
|
1791
|
-
|
1792
|
-
|
1793
|
-
|
1794
|
-
|
1795
|
-
|
1796
|
-
|
1797
|
-
|
1798
|
-
|
1799
|
-
|
1800
|
-
|
1801
|
-
|
1802
|
-
|
1803
|
-
|
1804
|
-
|
1805
|
-
|
1806
|
-
|
1821
|
+
_save4 = self.pos
|
1822
|
+
while true # sequence
|
1823
|
+
_tmp = apply(:_obs_hyphen_char)
|
1824
|
+
unless _tmp
|
1825
|
+
self.pos = _save4
|
1826
|
+
break
|
1827
|
+
end
|
1828
|
+
while true
|
1829
|
+
_tmp = apply(:_LF)
|
1830
|
+
break unless _tmp
|
1831
|
+
end
|
1832
|
+
_tmp = true
|
1833
|
+
unless _tmp
|
1834
|
+
self.pos = _save4
|
1835
|
+
break
|
1836
|
+
end
|
1837
|
+
while true
|
1838
|
+
_tmp = apply(:_CR)
|
1839
|
+
break unless _tmp
|
1840
|
+
end
|
1841
|
+
_tmp = true
|
1842
|
+
unless _tmp
|
1843
|
+
self.pos = _save4
|
1844
|
+
end
|
1845
|
+
break
|
1846
|
+
end # end sequence
|
1807
1847
|
|
1808
|
-
|
1809
|
-
|
1810
|
-
|
1811
|
-
|
1812
|
-
|
1813
|
-
|
1814
|
-
|
1848
|
+
break unless _tmp
|
1849
|
+
end
|
1850
|
+
_tmp = true
|
1851
|
+
unless _tmp
|
1852
|
+
self.pos = _save
|
1853
|
+
end
|
1854
|
+
break
|
1815
1855
|
end # end sequence
|
1816
1856
|
|
1817
1857
|
set_failed_rule :_obs_hyphen_text unless _tmp
|
@@ -1823,19 +1863,19 @@ class EmailAddressValidator::RFC2822Parser
|
|
1823
1863
|
|
1824
1864
|
_save = self.pos
|
1825
1865
|
while true # choice
|
1826
|
-
|
1827
|
-
|
1828
|
-
|
1829
|
-
|
1830
|
-
|
1831
|
-
|
1832
|
-
|
1833
|
-
|
1834
|
-
|
1835
|
-
|
1836
|
-
|
1837
|
-
|
1838
|
-
|
1866
|
+
_tmp = apply_with_args(:_d_btw, 0,9)
|
1867
|
+
break if _tmp
|
1868
|
+
self.pos = _save
|
1869
|
+
_tmp = apply_with_args(:_d, 11)
|
1870
|
+
break if _tmp
|
1871
|
+
self.pos = _save
|
1872
|
+
_tmp = apply_with_args(:_d, 12)
|
1873
|
+
break if _tmp
|
1874
|
+
self.pos = _save
|
1875
|
+
_tmp = apply_with_args(:_d_btw, 14,127)
|
1876
|
+
break if _tmp
|
1877
|
+
self.pos = _save
|
1878
|
+
break
|
1839
1879
|
end # end choice
|
1840
1880
|
|
1841
1881
|
set_failed_rule :_obs_hyphen_char unless _tmp
|
@@ -1854,34 +1894,34 @@ class EmailAddressValidator::RFC2822Parser
|
|
1854
1894
|
|
1855
1895
|
_save = self.pos
|
1856
1896
|
while true # sequence
|
1857
|
-
|
1858
|
-
|
1859
|
-
|
1860
|
-
|
1861
|
-
|
1862
|
-
|
1897
|
+
_tmp = apply(:_word)
|
1898
|
+
unless _tmp
|
1899
|
+
self.pos = _save
|
1900
|
+
break
|
1901
|
+
end
|
1902
|
+
while true
|
1863
1903
|
|
1864
|
-
|
1865
|
-
|
1866
|
-
|
1867
|
-
|
1868
|
-
|
1869
|
-
|
1870
|
-
|
1871
|
-
|
1872
|
-
|
1873
|
-
|
1874
|
-
|
1875
|
-
|
1876
|
-
|
1904
|
+
_save2 = self.pos
|
1905
|
+
while true # choice
|
1906
|
+
_tmp = apply(:_word)
|
1907
|
+
break if _tmp
|
1908
|
+
self.pos = _save2
|
1909
|
+
_tmp = match_string(".")
|
1910
|
+
break if _tmp
|
1911
|
+
self.pos = _save2
|
1912
|
+
_tmp = apply(:_CFWS)
|
1913
|
+
break if _tmp
|
1914
|
+
self.pos = _save2
|
1915
|
+
break
|
1916
|
+
end # end choice
|
1877
1917
|
|
1878
|
-
|
1879
|
-
|
1880
|
-
|
1881
|
-
|
1882
|
-
|
1883
|
-
|
1884
|
-
|
1918
|
+
break unless _tmp
|
1919
|
+
end
|
1920
|
+
_tmp = true
|
1921
|
+
unless _tmp
|
1922
|
+
self.pos = _save
|
1923
|
+
end
|
1924
|
+
break
|
1885
1925
|
end # end sequence
|
1886
1926
|
|
1887
1927
|
set_failed_rule :_obs_hyphen_phrase unless _tmp
|
@@ -1893,120 +1933,120 @@ class EmailAddressValidator::RFC2822Parser
|
|
1893
1933
|
|
1894
1934
|
_save = self.pos
|
1895
1935
|
while true # choice
|
1896
|
-
|
1897
|
-
|
1898
|
-
|
1899
|
-
|
1900
|
-
|
1901
|
-
|
1902
|
-
|
1903
|
-
|
1904
|
-
|
1905
|
-
|
1906
|
-
|
1907
|
-
|
1908
|
-
|
1909
|
-
|
1910
|
-
|
1911
|
-
|
1912
|
-
|
1913
|
-
|
1914
|
-
|
1915
|
-
|
1916
|
-
|
1917
|
-
|
1918
|
-
|
1919
|
-
|
1920
|
-
|
1921
|
-
|
1922
|
-
|
1923
|
-
|
1924
|
-
|
1925
|
-
|
1926
|
-
|
1927
|
-
|
1928
|
-
|
1929
|
-
|
1930
|
-
|
1931
|
-
|
1932
|
-
|
1933
|
-
|
1934
|
-
|
1935
|
-
|
1936
|
-
|
1937
|
-
|
1938
|
-
|
1939
|
-
|
1940
|
-
|
1941
|
-
|
1942
|
-
|
1943
|
-
|
1944
|
-
|
1945
|
-
|
1946
|
-
|
1947
|
-
|
1948
|
-
|
1949
|
-
|
1950
|
-
|
1951
|
-
|
1952
|
-
|
1953
|
-
|
1954
|
-
|
1955
|
-
|
1956
|
-
|
1957
|
-
|
1958
|
-
|
1959
|
-
|
1960
|
-
|
1961
|
-
|
1962
|
-
|
1963
|
-
|
1964
|
-
|
1965
|
-
|
1966
|
-
|
1967
|
-
|
1968
|
-
|
1969
|
-
|
1970
|
-
|
1971
|
-
|
1972
|
-
|
1973
|
-
|
1974
|
-
|
1975
|
-
|
1976
|
-
|
1977
|
-
|
1978
|
-
|
1979
|
-
|
1980
|
-
|
1981
|
-
|
1982
|
-
|
1983
|
-
|
1936
|
+
_tmp = apply(:_phrase)
|
1937
|
+
break if _tmp
|
1938
|
+
self.pos = _save
|
1939
|
+
|
1940
|
+
_save1 = self.pos
|
1941
|
+
while true # sequence
|
1942
|
+
_save2 = self.pos
|
1943
|
+
|
1944
|
+
_save3 = self.pos
|
1945
|
+
while true # sequence
|
1946
|
+
_save4 = self.pos
|
1947
|
+
_tmp = apply(:_phrase)
|
1948
|
+
unless _tmp
|
1949
|
+
_tmp = true
|
1950
|
+
self.pos = _save4
|
1951
|
+
end
|
1952
|
+
unless _tmp
|
1953
|
+
self.pos = _save3
|
1954
|
+
break
|
1955
|
+
end
|
1956
|
+
_save5 = self.pos
|
1957
|
+
_tmp = apply(:_CFWS)
|
1958
|
+
unless _tmp
|
1959
|
+
_tmp = true
|
1960
|
+
self.pos = _save5
|
1961
|
+
end
|
1962
|
+
unless _tmp
|
1963
|
+
self.pos = _save3
|
1964
|
+
break
|
1965
|
+
end
|
1966
|
+
_tmp = match_string(",")
|
1967
|
+
unless _tmp
|
1968
|
+
self.pos = _save3
|
1969
|
+
break
|
1970
|
+
end
|
1971
|
+
_save6 = self.pos
|
1972
|
+
_tmp = apply(:_CFWS)
|
1973
|
+
unless _tmp
|
1974
|
+
_tmp = true
|
1975
|
+
self.pos = _save6
|
1976
|
+
end
|
1977
|
+
unless _tmp
|
1978
|
+
self.pos = _save3
|
1979
|
+
end
|
1980
|
+
break
|
1981
|
+
end # end sequence
|
1982
|
+
|
1983
|
+
if _tmp
|
1984
|
+
while true
|
1985
|
+
|
1986
|
+
_save7 = self.pos
|
1987
|
+
while true # sequence
|
1988
|
+
_save8 = self.pos
|
1989
|
+
_tmp = apply(:_phrase)
|
1990
|
+
unless _tmp
|
1991
|
+
_tmp = true
|
1992
|
+
self.pos = _save8
|
1993
|
+
end
|
1994
|
+
unless _tmp
|
1995
|
+
self.pos = _save7
|
1996
|
+
break
|
1997
|
+
end
|
1998
|
+
_save9 = self.pos
|
1999
|
+
_tmp = apply(:_CFWS)
|
2000
|
+
unless _tmp
|
2001
|
+
_tmp = true
|
2002
|
+
self.pos = _save9
|
2003
|
+
end
|
2004
|
+
unless _tmp
|
2005
|
+
self.pos = _save7
|
2006
|
+
break
|
2007
|
+
end
|
2008
|
+
_tmp = match_string(",")
|
2009
|
+
unless _tmp
|
2010
|
+
self.pos = _save7
|
2011
|
+
break
|
2012
|
+
end
|
2013
|
+
_save10 = self.pos
|
2014
|
+
_tmp = apply(:_CFWS)
|
2015
|
+
unless _tmp
|
2016
|
+
_tmp = true
|
2017
|
+
self.pos = _save10
|
2018
|
+
end
|
2019
|
+
unless _tmp
|
2020
|
+
self.pos = _save7
|
2021
|
+
end
|
2022
|
+
break
|
2023
|
+
end # end sequence
|
2024
|
+
|
2025
|
+
break unless _tmp
|
2026
|
+
end
|
2027
|
+
_tmp = true
|
2028
|
+
else
|
2029
|
+
self.pos = _save2
|
2030
|
+
end
|
2031
|
+
unless _tmp
|
2032
|
+
self.pos = _save1
|
2033
|
+
break
|
2034
|
+
end
|
2035
|
+
_save11 = self.pos
|
2036
|
+
_tmp = apply(:_phrase)
|
2037
|
+
unless _tmp
|
2038
|
+
_tmp = true
|
2039
|
+
self.pos = _save11
|
2040
|
+
end
|
2041
|
+
unless _tmp
|
2042
|
+
self.pos = _save1
|
2043
|
+
end
|
2044
|
+
break
|
2045
|
+
end # end sequence
|
1984
2046
|
|
1985
|
-
|
1986
|
-
|
1987
|
-
_tmp = true
|
1988
|
-
else
|
1989
|
-
self.pos = _save2
|
1990
|
-
end
|
1991
|
-
unless _tmp
|
1992
|
-
self.pos = _save1
|
2047
|
+
break if _tmp
|
2048
|
+
self.pos = _save
|
1993
2049
|
break
|
1994
|
-
end
|
1995
|
-
_save11 = self.pos
|
1996
|
-
_tmp = apply(:_phrase)
|
1997
|
-
unless _tmp
|
1998
|
-
_tmp = true
|
1999
|
-
self.pos = _save11
|
2000
|
-
end
|
2001
|
-
unless _tmp
|
2002
|
-
self.pos = _save1
|
2003
|
-
end
|
2004
|
-
break
|
2005
|
-
end # end sequence
|
2006
|
-
|
2007
|
-
break if _tmp
|
2008
|
-
self.pos = _save
|
2009
|
-
break
|
2010
2050
|
end # end choice
|
2011
2051
|
|
2012
2052
|
set_failed_rule :_obs_hyphen_phrase_hyphen_list unless _tmp
|
@@ -2018,54 +2058,54 @@ class EmailAddressValidator::RFC2822Parser
|
|
2018
2058
|
|
2019
2059
|
_save = self.pos
|
2020
2060
|
while true # sequence
|
2021
|
-
|
2022
|
-
|
2023
|
-
|
2024
|
-
|
2025
|
-
|
2026
|
-
|
2061
|
+
_save1 = self.pos
|
2062
|
+
_tmp = apply(:_WSP)
|
2063
|
+
if _tmp
|
2064
|
+
while true
|
2065
|
+
_tmp = apply(:_WSP)
|
2066
|
+
break unless _tmp
|
2067
|
+
end
|
2068
|
+
_tmp = true
|
2069
|
+
else
|
2070
|
+
self.pos = _save1
|
2071
|
+
end
|
2072
|
+
unless _tmp
|
2073
|
+
self.pos = _save
|
2074
|
+
break
|
2027
2075
|
end
|
2028
|
-
_tmp = true
|
2029
|
-
else
|
2030
|
-
self.pos = _save1
|
2031
|
-
end
|
2032
|
-
unless _tmp
|
2033
|
-
self.pos = _save
|
2034
|
-
break
|
2035
|
-
end
|
2036
|
-
while true
|
2037
|
-
|
2038
|
-
_save3 = self.pos
|
2039
|
-
while true # sequence
|
2040
|
-
_tmp = apply(:_CRLF)
|
2041
|
-
unless _tmp
|
2042
|
-
self.pos = _save3
|
2043
|
-
break
|
2044
|
-
end
|
2045
|
-
_save4 = self.pos
|
2046
|
-
_tmp = apply(:_WSP)
|
2047
|
-
if _tmp
|
2048
2076
|
while true
|
2049
|
-
|
2077
|
+
|
2078
|
+
_save3 = self.pos
|
2079
|
+
while true # sequence
|
2080
|
+
_tmp = apply(:_CRLF)
|
2081
|
+
unless _tmp
|
2082
|
+
self.pos = _save3
|
2083
|
+
break
|
2084
|
+
end
|
2085
|
+
_save4 = self.pos
|
2086
|
+
_tmp = apply(:_WSP)
|
2087
|
+
if _tmp
|
2088
|
+
while true
|
2089
|
+
_tmp = apply(:_WSP)
|
2090
|
+
break unless _tmp
|
2091
|
+
end
|
2092
|
+
_tmp = true
|
2093
|
+
else
|
2094
|
+
self.pos = _save4
|
2095
|
+
end
|
2096
|
+
unless _tmp
|
2097
|
+
self.pos = _save3
|
2098
|
+
end
|
2099
|
+
break
|
2100
|
+
end # end sequence
|
2101
|
+
|
2050
2102
|
break unless _tmp
|
2051
2103
|
end
|
2052
2104
|
_tmp = true
|
2053
|
-
|
2054
|
-
|
2055
|
-
|
2056
|
-
|
2057
|
-
self.pos = _save3
|
2058
|
-
end
|
2059
|
-
break
|
2060
|
-
end # end sequence
|
2061
|
-
|
2062
|
-
break unless _tmp
|
2063
|
-
end
|
2064
|
-
_tmp = true
|
2065
|
-
unless _tmp
|
2066
|
-
self.pos = _save
|
2067
|
-
end
|
2068
|
-
break
|
2105
|
+
unless _tmp
|
2106
|
+
self.pos = _save
|
2107
|
+
end
|
2108
|
+
break
|
2069
2109
|
end # end sequence
|
2070
2110
|
|
2071
2111
|
set_failed_rule :_obs_hyphen_FWS unless _tmp
|
@@ -2077,51 +2117,51 @@ class EmailAddressValidator::RFC2822Parser
|
|
2077
2117
|
|
2078
2118
|
_save = self.pos
|
2079
2119
|
while true # sequence
|
2080
|
-
|
2081
|
-
|
2082
|
-
|
2083
|
-
|
2084
|
-
|
2085
|
-
|
2086
|
-
|
2087
|
-
|
2088
|
-
|
2089
|
-
|
2090
|
-
|
2091
|
-
|
2092
|
-
|
2093
|
-
|
2094
|
-
|
2095
|
-
|
2096
|
-
|
2097
|
-
|
2098
|
-
|
2099
|
-
|
2100
|
-
|
2101
|
-
|
2102
|
-
|
2103
|
-
|
2104
|
-
|
2105
|
-
|
2106
|
-
|
2107
|
-
|
2108
|
-
|
2109
|
-
|
2110
|
-
|
2111
|
-
|
2112
|
-
|
2120
|
+
_save1 = self.pos
|
2121
|
+
_tmp = apply(:_CFWS)
|
2122
|
+
unless _tmp
|
2123
|
+
_tmp = true
|
2124
|
+
self.pos = _save1
|
2125
|
+
end
|
2126
|
+
unless _tmp
|
2127
|
+
self.pos = _save
|
2128
|
+
break
|
2129
|
+
end
|
2130
|
+
_tmp = match_string("<")
|
2131
|
+
unless _tmp
|
2132
|
+
self.pos = _save
|
2133
|
+
break
|
2134
|
+
end
|
2135
|
+
_save2 = self.pos
|
2136
|
+
_tmp = apply(:_obs_hyphen_route)
|
2137
|
+
unless _tmp
|
2138
|
+
_tmp = true
|
2139
|
+
self.pos = _save2
|
2140
|
+
end
|
2141
|
+
unless _tmp
|
2142
|
+
self.pos = _save
|
2143
|
+
break
|
2144
|
+
end
|
2145
|
+
_tmp = apply(:_addr_hyphen_spec)
|
2146
|
+
unless _tmp
|
2147
|
+
self.pos = _save
|
2148
|
+
break
|
2149
|
+
end
|
2150
|
+
_tmp = match_string(">")
|
2151
|
+
unless _tmp
|
2152
|
+
self.pos = _save
|
2153
|
+
break
|
2154
|
+
end
|
2155
|
+
_save3 = self.pos
|
2156
|
+
_tmp = apply(:_CFWS)
|
2157
|
+
unless _tmp
|
2158
|
+
_tmp = true
|
2159
|
+
self.pos = _save3
|
2160
|
+
end
|
2161
|
+
unless _tmp
|
2162
|
+
self.pos = _save
|
2163
|
+
end
|
2113
2164
|
break
|
2114
|
-
end
|
2115
|
-
_save3 = self.pos
|
2116
|
-
_tmp = apply(:_CFWS)
|
2117
|
-
unless _tmp
|
2118
|
-
_tmp = true
|
2119
|
-
self.pos = _save3
|
2120
|
-
end
|
2121
|
-
unless _tmp
|
2122
|
-
self.pos = _save
|
2123
|
-
end
|
2124
|
-
break
|
2125
2165
|
end # end sequence
|
2126
2166
|
|
2127
2167
|
set_failed_rule :_obs_hyphen_angle_hyphen_addr unless _tmp
|
@@ -2133,36 +2173,36 @@ class EmailAddressValidator::RFC2822Parser
|
|
2133
2173
|
|
2134
2174
|
_save = self.pos
|
2135
2175
|
while true # sequence
|
2136
|
-
|
2137
|
-
|
2138
|
-
|
2139
|
-
|
2140
|
-
|
2141
|
-
|
2142
|
-
|
2143
|
-
|
2144
|
-
|
2145
|
-
|
2146
|
-
|
2147
|
-
|
2148
|
-
|
2149
|
-
|
2150
|
-
|
2151
|
-
|
2152
|
-
|
2153
|
-
|
2176
|
+
_save1 = self.pos
|
2177
|
+
_tmp = apply(:_CFWS)
|
2178
|
+
unless _tmp
|
2179
|
+
_tmp = true
|
2180
|
+
self.pos = _save1
|
2181
|
+
end
|
2182
|
+
unless _tmp
|
2183
|
+
self.pos = _save
|
2184
|
+
break
|
2185
|
+
end
|
2186
|
+
_tmp = apply(:_obs_hyphen_domain_hyphen_list)
|
2187
|
+
unless _tmp
|
2188
|
+
self.pos = _save
|
2189
|
+
break
|
2190
|
+
end
|
2191
|
+
_tmp = match_string(":")
|
2192
|
+
unless _tmp
|
2193
|
+
self.pos = _save
|
2194
|
+
break
|
2195
|
+
end
|
2196
|
+
_save2 = self.pos
|
2197
|
+
_tmp = apply(:_CFWS)
|
2198
|
+
unless _tmp
|
2199
|
+
_tmp = true
|
2200
|
+
self.pos = _save2
|
2201
|
+
end
|
2202
|
+
unless _tmp
|
2203
|
+
self.pos = _save
|
2204
|
+
end
|
2154
2205
|
break
|
2155
|
-
end
|
2156
|
-
_save2 = self.pos
|
2157
|
-
_tmp = apply(:_CFWS)
|
2158
|
-
unless _tmp
|
2159
|
-
_tmp = true
|
2160
|
-
self.pos = _save2
|
2161
|
-
end
|
2162
|
-
unless _tmp
|
2163
|
-
self.pos = _save
|
2164
|
-
end
|
2165
|
-
break
|
2166
2206
|
end # end sequence
|
2167
2207
|
|
2168
2208
|
set_failed_rule :_obs_hyphen_route unless _tmp
|
@@ -2174,69 +2214,69 @@ class EmailAddressValidator::RFC2822Parser
|
|
2174
2214
|
|
2175
2215
|
_save = self.pos
|
2176
2216
|
while true # sequence
|
2177
|
-
|
2178
|
-
|
2179
|
-
|
2180
|
-
|
2181
|
-
|
2182
|
-
|
2183
|
-
|
2184
|
-
|
2185
|
-
|
2186
|
-
|
2187
|
-
|
2188
|
-
|
2189
|
-
_save2 = self.pos
|
2190
|
-
while true # sequence
|
2191
|
-
while true
|
2217
|
+
_tmp = match_string("@")
|
2218
|
+
unless _tmp
|
2219
|
+
self.pos = _save
|
2220
|
+
break
|
2221
|
+
end
|
2222
|
+
_tmp = apply(:_domain)
|
2223
|
+
unless _tmp
|
2224
|
+
self.pos = _save
|
2225
|
+
break
|
2226
|
+
end
|
2227
|
+
while true
|
2192
2228
|
|
2193
|
-
|
2194
|
-
|
2195
|
-
|
2196
|
-
|
2197
|
-
|
2198
|
-
|
2199
|
-
|
2200
|
-
|
2201
|
-
|
2202
|
-
|
2229
|
+
_save2 = self.pos
|
2230
|
+
while true # sequence
|
2231
|
+
while true
|
2232
|
+
|
2233
|
+
_save4 = self.pos
|
2234
|
+
while true # choice
|
2235
|
+
_tmp = apply(:_CFWS)
|
2236
|
+
break if _tmp
|
2237
|
+
self.pos = _save4
|
2238
|
+
_tmp = match_string(",")
|
2239
|
+
break if _tmp
|
2240
|
+
self.pos = _save4
|
2241
|
+
break
|
2242
|
+
end # end choice
|
2243
|
+
|
2244
|
+
break unless _tmp
|
2245
|
+
end
|
2246
|
+
_tmp = true
|
2247
|
+
unless _tmp
|
2248
|
+
self.pos = _save2
|
2249
|
+
break
|
2250
|
+
end
|
2251
|
+
_save5 = self.pos
|
2252
|
+
_tmp = apply(:_CFWS)
|
2253
|
+
unless _tmp
|
2254
|
+
_tmp = true
|
2255
|
+
self.pos = _save5
|
2256
|
+
end
|
2257
|
+
unless _tmp
|
2258
|
+
self.pos = _save2
|
2259
|
+
break
|
2260
|
+
end
|
2261
|
+
_tmp = match_string("@")
|
2262
|
+
unless _tmp
|
2263
|
+
self.pos = _save2
|
2264
|
+
break
|
2265
|
+
end
|
2266
|
+
_tmp = apply(:_domain)
|
2267
|
+
unless _tmp
|
2268
|
+
self.pos = _save2
|
2269
|
+
end
|
2270
|
+
break
|
2271
|
+
end # end sequence
|
2203
2272
|
|
2204
|
-
|
2205
|
-
|
2206
|
-
_tmp = true
|
2207
|
-
unless _tmp
|
2208
|
-
self.pos = _save2
|
2209
|
-
break
|
2210
|
-
end
|
2211
|
-
_save5 = self.pos
|
2212
|
-
_tmp = apply(:_CFWS)
|
2213
|
-
unless _tmp
|
2273
|
+
break unless _tmp
|
2274
|
+
end
|
2214
2275
|
_tmp = true
|
2215
|
-
|
2216
|
-
|
2217
|
-
|
2218
|
-
self.pos = _save2
|
2219
|
-
break
|
2220
|
-
end
|
2221
|
-
_tmp = match_string("@")
|
2222
|
-
unless _tmp
|
2223
|
-
self.pos = _save2
|
2276
|
+
unless _tmp
|
2277
|
+
self.pos = _save
|
2278
|
+
end
|
2224
2279
|
break
|
2225
|
-
end
|
2226
|
-
_tmp = apply(:_domain)
|
2227
|
-
unless _tmp
|
2228
|
-
self.pos = _save2
|
2229
|
-
end
|
2230
|
-
break
|
2231
|
-
end # end sequence
|
2232
|
-
|
2233
|
-
break unless _tmp
|
2234
|
-
end
|
2235
|
-
_tmp = true
|
2236
|
-
unless _tmp
|
2237
|
-
self.pos = _save
|
2238
|
-
end
|
2239
|
-
break
|
2240
2280
|
end # end sequence
|
2241
2281
|
|
2242
2282
|
set_failed_rule :_obs_hyphen_domain_hyphen_list unless _tmp
|
@@ -2248,34 +2288,34 @@ class EmailAddressValidator::RFC2822Parser
|
|
2248
2288
|
|
2249
2289
|
_save = self.pos
|
2250
2290
|
while true # sequence
|
2251
|
-
|
2252
|
-
|
2253
|
-
|
2254
|
-
|
2255
|
-
|
2256
|
-
|
2291
|
+
_tmp = apply(:_word)
|
2292
|
+
unless _tmp
|
2293
|
+
self.pos = _save
|
2294
|
+
break
|
2295
|
+
end
|
2296
|
+
while true
|
2257
2297
|
|
2258
|
-
|
2259
|
-
|
2260
|
-
|
2261
|
-
|
2262
|
-
|
2263
|
-
|
2264
|
-
|
2265
|
-
|
2266
|
-
|
2267
|
-
|
2268
|
-
|
2269
|
-
|
2270
|
-
|
2298
|
+
_save2 = self.pos
|
2299
|
+
while true # sequence
|
2300
|
+
_tmp = match_string(".")
|
2301
|
+
unless _tmp
|
2302
|
+
self.pos = _save2
|
2303
|
+
break
|
2304
|
+
end
|
2305
|
+
_tmp = apply(:_word)
|
2306
|
+
unless _tmp
|
2307
|
+
self.pos = _save2
|
2308
|
+
end
|
2309
|
+
break
|
2310
|
+
end # end sequence
|
2271
2311
|
|
2272
|
-
|
2273
|
-
|
2274
|
-
|
2275
|
-
|
2276
|
-
|
2277
|
-
|
2278
|
-
|
2312
|
+
break unless _tmp
|
2313
|
+
end
|
2314
|
+
_tmp = true
|
2315
|
+
unless _tmp
|
2316
|
+
self.pos = _save
|
2317
|
+
end
|
2318
|
+
break
|
2279
2319
|
end # end sequence
|
2280
2320
|
|
2281
2321
|
set_failed_rule :_obs_hyphen_local_hyphen_part unless _tmp
|
@@ -2287,34 +2327,34 @@ class EmailAddressValidator::RFC2822Parser
|
|
2287
2327
|
|
2288
2328
|
_save = self.pos
|
2289
2329
|
while true # sequence
|
2290
|
-
|
2291
|
-
|
2292
|
-
|
2293
|
-
|
2294
|
-
|
2295
|
-
|
2330
|
+
_tmp = apply(:_atom)
|
2331
|
+
unless _tmp
|
2332
|
+
self.pos = _save
|
2333
|
+
break
|
2334
|
+
end
|
2335
|
+
while true
|
2296
2336
|
|
2297
|
-
|
2298
|
-
|
2299
|
-
|
2300
|
-
|
2301
|
-
|
2302
|
-
|
2303
|
-
|
2304
|
-
|
2305
|
-
|
2306
|
-
|
2307
|
-
|
2308
|
-
|
2309
|
-
|
2337
|
+
_save2 = self.pos
|
2338
|
+
while true # sequence
|
2339
|
+
_tmp = match_string(".")
|
2340
|
+
unless _tmp
|
2341
|
+
self.pos = _save2
|
2342
|
+
break
|
2343
|
+
end
|
2344
|
+
_tmp = apply(:_atom)
|
2345
|
+
unless _tmp
|
2346
|
+
self.pos = _save2
|
2347
|
+
end
|
2348
|
+
break
|
2349
|
+
end # end sequence
|
2310
2350
|
|
2311
|
-
|
2312
|
-
|
2313
|
-
|
2314
|
-
|
2315
|
-
|
2316
|
-
|
2317
|
-
|
2351
|
+
break unless _tmp
|
2352
|
+
end
|
2353
|
+
_tmp = true
|
2354
|
+
unless _tmp
|
2355
|
+
self.pos = _save
|
2356
|
+
end
|
2357
|
+
break
|
2318
2358
|
end # end sequence
|
2319
2359
|
|
2320
2360
|
set_failed_rule :_obs_hyphen_domain unless _tmp
|
@@ -2326,109 +2366,109 @@ class EmailAddressValidator::RFC2822Parser
|
|
2326
2366
|
|
2327
2367
|
_save = self.pos
|
2328
2368
|
while true # sequence
|
2329
|
-
|
2330
|
-
|
2331
|
-
|
2332
|
-
|
2333
|
-
|
2334
|
-
|
2335
|
-
|
2336
|
-
|
2337
|
-
|
2338
|
-
|
2339
|
-
|
2340
|
-
|
2341
|
-
|
2342
|
-
|
2343
|
-
|
2344
|
-
|
2345
|
-
|
2346
|
-
|
2347
|
-
|
2348
|
-
|
2349
|
-
|
2350
|
-
|
2351
|
-
|
2352
|
-
|
2353
|
-
|
2354
|
-
|
2355
|
-
|
2356
|
-
|
2357
|
-
|
2358
|
-
|
2359
|
-
|
2360
|
-
|
2361
|
-
|
2362
|
-
|
2363
|
-
|
2364
|
-
|
2365
|
-
|
2366
|
-
|
2367
|
-
|
2368
|
-
|
2369
|
-
|
2370
|
-
|
2371
|
-
|
2372
|
-
|
2373
|
-
|
2374
|
-
|
2375
|
-
|
2376
|
-
|
2377
|
-
|
2378
|
-
|
2379
|
-
|
2380
|
-
|
2381
|
-
|
2382
|
-
|
2383
|
-
|
2384
|
-
|
2385
|
-
|
2386
|
-
|
2387
|
-
|
2388
|
-
|
2389
|
-
|
2390
|
-
|
2391
|
-
|
2392
|
-
|
2393
|
-
|
2394
|
-
|
2395
|
-
|
2396
|
-
|
2397
|
-
|
2398
|
-
|
2399
|
-
|
2400
|
-
|
2401
|
-
|
2402
|
-
|
2403
|
-
|
2404
|
-
|
2405
|
-
|
2406
|
-
|
2407
|
-
|
2408
|
-
|
2409
|
-
|
2410
|
-
|
2411
|
-
|
2412
|
-
|
2369
|
+
_save1 = self.pos
|
2370
|
+
|
2371
|
+
_save2 = self.pos
|
2372
|
+
while true # sequence
|
2373
|
+
_save3 = self.pos
|
2374
|
+
_tmp = apply(:_address)
|
2375
|
+
unless _tmp
|
2376
|
+
_tmp = true
|
2377
|
+
self.pos = _save3
|
2378
|
+
end
|
2379
|
+
unless _tmp
|
2380
|
+
self.pos = _save2
|
2381
|
+
break
|
2382
|
+
end
|
2383
|
+
_save4 = self.pos
|
2384
|
+
_tmp = apply(:_CFWS)
|
2385
|
+
unless _tmp
|
2386
|
+
_tmp = true
|
2387
|
+
self.pos = _save4
|
2388
|
+
end
|
2389
|
+
unless _tmp
|
2390
|
+
self.pos = _save2
|
2391
|
+
break
|
2392
|
+
end
|
2393
|
+
_tmp = match_string(",")
|
2394
|
+
unless _tmp
|
2395
|
+
self.pos = _save2
|
2396
|
+
break
|
2397
|
+
end
|
2398
|
+
_save5 = self.pos
|
2399
|
+
_tmp = apply(:_CFWS)
|
2400
|
+
unless _tmp
|
2401
|
+
_tmp = true
|
2402
|
+
self.pos = _save5
|
2403
|
+
end
|
2404
|
+
unless _tmp
|
2405
|
+
self.pos = _save2
|
2406
|
+
end
|
2407
|
+
break
|
2408
|
+
end # end sequence
|
2409
|
+
|
2410
|
+
if _tmp
|
2411
|
+
while true
|
2412
|
+
|
2413
|
+
_save6 = self.pos
|
2414
|
+
while true # sequence
|
2415
|
+
_save7 = self.pos
|
2416
|
+
_tmp = apply(:_address)
|
2417
|
+
unless _tmp
|
2418
|
+
_tmp = true
|
2419
|
+
self.pos = _save7
|
2420
|
+
end
|
2421
|
+
unless _tmp
|
2422
|
+
self.pos = _save6
|
2423
|
+
break
|
2424
|
+
end
|
2425
|
+
_save8 = self.pos
|
2426
|
+
_tmp = apply(:_CFWS)
|
2427
|
+
unless _tmp
|
2428
|
+
_tmp = true
|
2429
|
+
self.pos = _save8
|
2430
|
+
end
|
2431
|
+
unless _tmp
|
2432
|
+
self.pos = _save6
|
2433
|
+
break
|
2434
|
+
end
|
2435
|
+
_tmp = match_string(",")
|
2436
|
+
unless _tmp
|
2437
|
+
self.pos = _save6
|
2438
|
+
break
|
2439
|
+
end
|
2440
|
+
_save9 = self.pos
|
2441
|
+
_tmp = apply(:_CFWS)
|
2442
|
+
unless _tmp
|
2443
|
+
_tmp = true
|
2444
|
+
self.pos = _save9
|
2445
|
+
end
|
2446
|
+
unless _tmp
|
2447
|
+
self.pos = _save6
|
2448
|
+
end
|
2449
|
+
break
|
2450
|
+
end # end sequence
|
2451
|
+
|
2452
|
+
break unless _tmp
|
2453
|
+
end
|
2454
|
+
_tmp = true
|
2455
|
+
else
|
2456
|
+
self.pos = _save1
|
2457
|
+
end
|
2458
|
+
unless _tmp
|
2459
|
+
self.pos = _save
|
2460
|
+
break
|
2461
|
+
end
|
2462
|
+
_save10 = self.pos
|
2463
|
+
_tmp = apply(:_address)
|
2464
|
+
unless _tmp
|
2465
|
+
_tmp = true
|
2466
|
+
self.pos = _save10
|
2467
|
+
end
|
2468
|
+
unless _tmp
|
2469
|
+
self.pos = _save
|
2413
2470
|
end
|
2414
|
-
_tmp = true
|
2415
|
-
else
|
2416
|
-
self.pos = _save1
|
2417
|
-
end
|
2418
|
-
unless _tmp
|
2419
|
-
self.pos = _save
|
2420
2471
|
break
|
2421
|
-
end
|
2422
|
-
_save10 = self.pos
|
2423
|
-
_tmp = apply(:_address)
|
2424
|
-
unless _tmp
|
2425
|
-
_tmp = true
|
2426
|
-
self.pos = _save10
|
2427
|
-
end
|
2428
|
-
unless _tmp
|
2429
|
-
self.pos = _save
|
2430
|
-
end
|
2431
|
-
break
|
2432
2472
|
end # end sequence
|
2433
2473
|
|
2434
2474
|
set_failed_rule :_obs_hyphen_mbox_hyphen_list unless _tmp
|
@@ -2440,19 +2480,19 @@ class EmailAddressValidator::RFC2822Parser
|
|
2440
2480
|
|
2441
2481
|
_save = self.pos
|
2442
2482
|
while true # sequence
|
2443
|
-
|
2444
|
-
|
2445
|
-
|
2483
|
+
_tmp = apply(:_address)
|
2484
|
+
unless _tmp
|
2485
|
+
self.pos = _save
|
2486
|
+
break
|
2487
|
+
end
|
2488
|
+
_save1 = self.pos
|
2489
|
+
_tmp = get_byte
|
2490
|
+
_tmp = _tmp ? nil : true
|
2491
|
+
self.pos = _save1
|
2492
|
+
unless _tmp
|
2493
|
+
self.pos = _save
|
2494
|
+
end
|
2446
2495
|
break
|
2447
|
-
end
|
2448
|
-
_save1 = self.pos
|
2449
|
-
_tmp = get_byte
|
2450
|
-
_tmp = _tmp ? nil : true
|
2451
|
-
self.pos = _save1
|
2452
|
-
unless _tmp
|
2453
|
-
self.pos = _save
|
2454
|
-
end
|
2455
|
-
break
|
2456
2496
|
end # end sequence
|
2457
2497
|
|
2458
2498
|
set_failed_rule :_root unless _tmp
|
@@ -2464,19 +2504,19 @@ class EmailAddressValidator::RFC2822Parser
|
|
2464
2504
|
|
2465
2505
|
_save = self.pos
|
2466
2506
|
while true # sequence
|
2467
|
-
|
2468
|
-
|
2469
|
-
|
2507
|
+
_tmp = apply(:_addr_hyphen_spec)
|
2508
|
+
unless _tmp
|
2509
|
+
self.pos = _save
|
2510
|
+
break
|
2511
|
+
end
|
2512
|
+
_save1 = self.pos
|
2513
|
+
_tmp = get_byte
|
2514
|
+
_tmp = _tmp ? nil : true
|
2515
|
+
self.pos = _save1
|
2516
|
+
unless _tmp
|
2517
|
+
self.pos = _save
|
2518
|
+
end
|
2470
2519
|
break
|
2471
|
-
end
|
2472
|
-
_save1 = self.pos
|
2473
|
-
_tmp = get_byte
|
2474
|
-
_tmp = _tmp ? nil : true
|
2475
|
-
self.pos = _save1
|
2476
|
-
unless _tmp
|
2477
|
-
self.pos = _save
|
2478
|
-
end
|
2479
|
-
break
|
2480
2520
|
end # end sequence
|
2481
2521
|
|
2482
2522
|
set_failed_rule :_only_addr_spec unless _tmp
|
@@ -2485,7 +2525,7 @@ class EmailAddressValidator::RFC2822Parser
|
|
2485
2525
|
|
2486
2526
|
Rules = {}
|
2487
2527
|
Rules[:_d] = rule_info("d", "< . > &{ text[0] == num }")
|
2488
|
-
Rules[:_d_btw] = rule_info("d_btw", "< . > &{ t = text[0]; t >= start && t <= fin }")
|
2528
|
+
Rules[:_d_btw] = rule_info("d_btw", "< . > &{ t = text[0].chr; t >= start && t <= fin }")
|
2489
2529
|
Rules[:_WSP] = rule_info("WSP", "(\" \" | d(9))")
|
2490
2530
|
Rules[:_LF] = rule_info("LF", "/\\x0A/")
|
2491
2531
|
Rules[:_CR] = rule_info("CR", "/\\x0D/")
|
@@ -2540,4 +2580,5 @@ class EmailAddressValidator::RFC2822Parser
|
|
2540
2580
|
Rules[:_obs_hyphen_mbox_hyphen_list] = rule_info("obs-mbox-list", "(address? CFWS? \",\" CFWS?)+ address?")
|
2541
2581
|
Rules[:_root] = rule_info("root", "address !.")
|
2542
2582
|
Rules[:_only_addr_spec] = rule_info("only_addr_spec", "addr-spec !.")
|
2583
|
+
# :startdoc:
|
2543
2584
|
end
|