email_address_validator 1.0.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,8 +1,19 @@
1
1
  class EmailAddressValidator::RFC2822Parser
2
- # STANDALONE START
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
- @string = str
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 :result, :failing_rule_offset
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? :getbyte
175
+ if "".respond_to? :ord
170
176
  def get_byte
171
- if @pos >= @string.size
177
+ if @pos >= @string_size
172
178
  return nil
173
179
  end
174
180
 
175
- s = @string.getbyte @pos
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 >= @string.size
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 ? true : false
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
- __send__("_#{method}") ? true : false
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, :uses, :result
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
- @pos = other.pos
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
- @pos = old_pos
246
- @string = old_string
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.ans.kind_of? LeftRecursive
257
- m.ans.detected = true
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
- lr = LeftRecursive.new(false)
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.detected
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
- ans = __send__ rule
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
- _text_start = self.pos
329
- _tmp = get_byte
330
- if _tmp
331
- text = get_text(_text_start)
332
- end
333
- unless _tmp
334
- self.pos = _save
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
- _text_start = self.pos
356
- _tmp = get_byte
357
- if _tmp
358
- text = get_text(_text_start)
359
- end
360
- unless _tmp
361
- self.pos = _save
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
- _tmp = match_string(" ")
383
- break if _tmp
384
- self.pos = _save
385
- _tmp = _d(9)
386
- break if _tmp
387
- self.pos = _save
388
- break
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
- _tmp = apply(:_CR)
415
- unless _tmp
416
- self.pos = _save
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
- _tmp = _d_btw(1,8)
450
- break if _tmp
451
- self.pos = _save
452
- _tmp = _d(11)
453
- break if _tmp
454
- self.pos = _save
455
- _tmp = _d(12)
456
- break if _tmp
457
- self.pos = _save
458
- _tmp = _d_btw(14,31)
459
- break if _tmp
460
- self.pos = _save
461
- _tmp = _d(127)
462
- break if _tmp
463
- self.pos = _save
464
- break
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
- _tmp = _d_btw(1,9)
477
- break if _tmp
478
- self.pos = _save
479
- _tmp = _d(11)
480
- break if _tmp
481
- self.pos = _save
482
- _tmp = _d(12)
483
- break if _tmp
484
- self.pos = _save
485
- _tmp = _d_btw(14,127)
486
- break if _tmp
487
- self.pos = _save
488
- _tmp = apply(:_obs_hyphen_text)
489
- break if _tmp
490
- self.pos = _save
491
- break
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
- _save1 = self.pos
505
- while true # sequence
506
- _tmp = match_string("\\")
507
- unless _tmp
508
- self.pos = _save1
509
- break
510
- end
511
- _tmp = apply(:_text)
512
- unless _tmp
513
- self.pos = _save1
514
- end
515
- break
516
- end # end sequence
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
- break if _tmp
519
- self.pos = _save
520
- _tmp = apply(:_obs_hyphen_qp)
521
- break if _tmp
522
- self.pos = _save
523
- break
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
- _save1 = self.pos
537
- while true # sequence
538
- _save2 = self.pos
539
-
540
- _save3 = self.pos
541
- while true # sequence
542
- while true
543
- _tmp = apply(:_WSP)
544
- break unless _tmp
545
- end
546
- _tmp = true
547
- unless _tmp
548
- self.pos = _save3
549
- break
550
- end
551
- _tmp = apply(:_CRLF)
552
- unless _tmp
553
- self.pos = _save3
554
- end
555
- break
556
- end # end sequence
557
-
558
- unless _tmp
559
- _tmp = true
560
- self.pos = _save2
561
- end
562
- unless _tmp
563
- self.pos = _save1
564
- break
565
- end
566
- _save5 = self.pos
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
- break unless _tmp
572
- end
573
- _tmp = true
574
- else
575
- self.pos = _save5
576
- end
577
- unless _tmp
578
- self.pos = _save1
579
- end
580
- break
581
- end # end sequence
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
- break if _tmp
584
- self.pos = _save
585
- _tmp = apply(:_obs_hyphen_FWS)
586
- break if _tmp
587
- self.pos = _save
588
- break
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
- _tmp = apply(:_NO_hyphen_WS_hyphen_CTL)
601
- break if _tmp
602
- self.pos = _save
603
- _tmp = _d_btw(33,39)
604
- break if _tmp
605
- self.pos = _save
606
- _tmp = _d_btw(42,91)
607
- break if _tmp
608
- self.pos = _save
609
- _tmp = _d_btw(93,126)
610
- break if _tmp
611
- self.pos = _save
612
- break
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
- _tmp = apply(:_ctext)
625
- break if _tmp
626
- self.pos = _save
627
- _tmp = apply(:_quoted_hyphen_pair)
628
- break if _tmp
629
- self.pos = _save
630
- _tmp = apply(:_comment)
631
- break if _tmp
632
- self.pos = _save
633
- break
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
- _tmp = match_string("(")
646
- unless _tmp
647
- self.pos = _save
648
- break
649
- end
650
- while true
685
+ _tmp = match_string("(")
686
+ unless _tmp
687
+ self.pos = _save
688
+ break
689
+ end
690
+ while true
651
691
 
652
- _save2 = self.pos
653
- while true # sequence
654
- _save3 = self.pos
655
- _tmp = apply(:_FWS)
656
- unless _tmp
657
- _tmp = true
658
- self.pos = _save3
659
- end
660
- unless _tmp
661
- self.pos = _save2
662
- break
663
- end
664
- _tmp = apply(:_ccontent)
665
- unless _tmp
666
- self.pos = _save2
667
- end
668
- break
669
- end # end sequence
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
- break unless _tmp
672
- end
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
- self.pos = _save4
683
- end
684
- unless _tmp
685
- self.pos = _save
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
- while true
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
- _save4 = self.pos
734
- while true # choice
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
- _save5 = self.pos
737
- while true # sequence
738
- _save6 = self.pos
739
- _tmp = apply(:_FWS)
740
- unless _tmp
765
+ break unless _tmp
766
+ end
741
767
  _tmp = true
742
- self.pos = _save6
743
- end
744
- unless _tmp
745
- self.pos = _save5
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
- unless _tmp
764
- self.pos = _save
765
- end
766
- break
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
- _tmp = apply(:_ALPHA)
779
- break if _tmp
780
- self.pos = _save
781
- _tmp = apply(:_DIGIT)
782
- break if _tmp
783
- self.pos = _save
784
- _tmp = match_string("!")
785
- break if _tmp
786
- self.pos = _save
787
- _tmp = match_string("#")
788
- break if _tmp
789
- self.pos = _save
790
- _tmp = match_string("$")
791
- break if _tmp
792
- self.pos = _save
793
- _tmp = match_string("%")
794
- break if _tmp
795
- self.pos = _save
796
- _tmp = match_string("&")
797
- break if _tmp
798
- self.pos = _save
799
- _tmp = match_string("'")
800
- break if _tmp
801
- self.pos = _save
802
- _tmp = match_string("*")
803
- break if _tmp
804
- self.pos = _save
805
- _tmp = match_string("+")
806
- break if _tmp
807
- self.pos = _save
808
- _tmp = match_string("-")
809
- break if _tmp
810
- self.pos = _save
811
- _tmp = match_string("/")
812
- break if _tmp
813
- self.pos = _save
814
- _tmp = match_string("=")
815
- break if _tmp
816
- self.pos = _save
817
- _tmp = match_string("?")
818
- break if _tmp
819
- self.pos = _save
820
- _tmp = match_string("^")
821
- break if _tmp
822
- self.pos = _save
823
- _tmp = match_string("_")
824
- break if _tmp
825
- self.pos = _save
826
- _tmp = match_string("`")
827
- break if _tmp
828
- self.pos = _save
829
- _tmp = match_string("{")
830
- break if _tmp
831
- self.pos = _save
832
- _tmp = match_string("|")
833
- break if _tmp
834
- self.pos = _save
835
- _tmp = match_string("}")
836
- break if _tmp
837
- self.pos = _save
838
- _tmp = match_string("~")
839
- break if _tmp
840
- self.pos = _save
841
- break
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
- _save1 = self.pos
854
- _tmp = apply(:_CFWS)
855
- unless _tmp
856
- _tmp = true
857
- self.pos = _save1
858
- end
859
- unless _tmp
860
- self.pos = _save
861
- break
862
- end
863
- _save2 = self.pos
864
- _tmp = apply(:_atext)
865
- if _tmp
866
- while true
867
- _tmp = apply(:_atext)
868
- break unless _tmp
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
- _save1 = self.pos
900
- _tmp = apply(:_CFWS)
901
- unless _tmp
902
- _tmp = true
903
- self.pos = _save1
904
- end
905
- unless _tmp
906
- self.pos = _save
907
- break
908
- end
909
- _tmp = apply(:_dot_hyphen_atom_hyphen_text)
910
- unless _tmp
911
- self.pos = _save
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
- _save1 = self.pos
936
- _tmp = apply(:_atext)
937
- if _tmp
938
- while true
939
- _tmp = apply(:_atext)
940
- break unless _tmp
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
- _tmp = apply(:_atext)
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
- else
968
- self.pos = _save4
969
- end
970
- unless _tmp
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
- _tmp = apply(:_NO_hyphen_WS_hyphen_CTL)
995
- break if _tmp
996
- self.pos = _save
997
- _tmp = _d(33)
998
- break if _tmp
999
- self.pos = _save
1000
- _tmp = _d_btw(35,91)
1001
- break if _tmp
1002
- self.pos = _save
1003
- _tmp = _d_btw(93,126)
1004
- break if _tmp
1005
- self.pos = _save
1006
- break
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
- _tmp = apply(:_qtext)
1019
- break if _tmp
1020
- self.pos = _save
1021
- _tmp = apply(:_quoted_hyphen_pair)
1022
- break if _tmp
1023
- self.pos = _save
1024
- break
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
- _save1 = self.pos
1037
- _tmp = apply(:_CFWS)
1038
- unless _tmp
1039
- _tmp = true
1040
- self.pos = _save1
1041
- end
1042
- unless _tmp
1043
- self.pos = _save
1044
- break
1045
- end
1046
- _tmp = match_string("\"")
1047
- unless _tmp
1048
- self.pos = _save
1049
- break
1050
- end
1051
- while true
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
- _save3 = self.pos
1054
- while true # sequence
1055
- _save4 = self.pos
1056
- _tmp = apply(:_FWS)
1057
- unless _tmp
1058
- _tmp = true
1059
- self.pos = _save4
1060
- end
1061
- unless _tmp
1062
- self.pos = _save3
1063
- break
1064
- end
1065
- _tmp = apply(:_qcontent)
1066
- unless _tmp
1067
- self.pos = _save3
1068
- end
1069
- break
1070
- end # end sequence
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
- break unless _tmp
1073
- end
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
- self.pos = _save5
1084
- end
1085
- unless _tmp
1086
- self.pos = _save
1087
- break
1088
- end
1089
- _tmp = match_string("\"")
1090
- unless _tmp
1091
- self.pos = _save
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
- _tmp = apply(:_atom)
1116
- break if _tmp
1117
- self.pos = _save
1118
- _tmp = apply(:_quoted_hyphen_string)
1119
- break if _tmp
1120
- self.pos = _save
1121
- break
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
- _save1 = self.pos
1134
- _tmp = apply(:_word)
1135
- if _tmp
1136
- while true
1137
- _tmp = apply(:_word)
1138
- break unless _tmp
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
- _tmp = true
1141
- else
1142
- self.pos = _save1
1143
- end
1144
- break if _tmp
1145
- self.pos = _save
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
- _tmp = apply(:_NO_hyphen_WS_hyphen_CTL)
1162
- break if _tmp
1163
- self.pos = _save
1164
- _tmp = _d_btw(33,126)
1165
- break if _tmp
1166
- self.pos = _save
1167
- _tmp = apply(:_obs_hyphen_utext)
1168
- break if _tmp
1169
- self.pos = _save
1170
- break
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
- while true
1222
+ while true
1183
1223
 
1184
- _save2 = self.pos
1185
- while true # sequence
1186
- _save3 = self.pos
1187
- _tmp = apply(:_FWS)
1188
- unless _tmp
1189
- _tmp = true
1190
- self.pos = _save3
1191
- end
1192
- unless _tmp
1193
- self.pos = _save2
1194
- break
1195
- end
1196
- _tmp = apply(:_utext)
1197
- unless _tmp
1198
- self.pos = _save2
1199
- end
1200
- break
1201
- end # end sequence
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
- break unless _tmp
1204
- end
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
- self.pos = _save4
1215
- end
1216
- unless _tmp
1217
- self.pos = _save
1218
- end
1219
- break
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
- _tmp = apply(:_mailbox)
1232
- break if _tmp
1233
- self.pos = _save
1234
- _tmp = apply(:_group)
1235
- break if _tmp
1236
- self.pos = _save
1237
- break
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
- _tmp = apply(:_name_hyphen_addr)
1250
- break if _tmp
1251
- self.pos = _save
1252
- _tmp = apply(:_addr_hyphen_spec)
1253
- break if _tmp
1254
- self.pos = _save
1255
- break
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
- _save1 = self.pos
1268
- _tmp = apply(:_display_hyphen_name)
1269
- unless _tmp
1270
- _tmp = true
1271
- self.pos = _save1
1272
- end
1273
- unless _tmp
1274
- self.pos = _save
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
- _save1 = self.pos
1295
- while true # sequence
1296
- _save2 = self.pos
1297
- _tmp = apply(:_CFWS)
1298
- unless _tmp
1299
- _tmp = true
1300
- self.pos = _save2
1301
- end
1302
- unless _tmp
1303
- self.pos = _save1
1304
- break
1305
- end
1306
- _tmp = match_string("<")
1307
- unless _tmp
1308
- self.pos = _save1
1309
- break
1310
- end
1311
- _tmp = apply(:_addr_hyphen_spec)
1312
- unless _tmp
1313
- self.pos = _save1
1314
- break
1315
- end
1316
- _tmp = match_string(">")
1317
- unless _tmp
1318
- self.pos = _save1
1319
- break
1320
- end
1321
- _save3 = self.pos
1322
- _tmp = apply(:_CFWS)
1323
- unless _tmp
1324
- _tmp = true
1325
- self.pos = _save3
1326
- end
1327
- unless _tmp
1328
- self.pos = _save1
1329
- end
1330
- break
1331
- end # end sequence
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
- break if _tmp
1334
- self.pos = _save
1335
- _tmp = apply(:_obs_hyphen_angle_hyphen_addr)
1336
- break if _tmp
1337
- self.pos = _save
1338
- break
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
- _tmp = apply(:_display_hyphen_name)
1351
- unless _tmp
1352
- self.pos = _save
1353
- break
1354
- end
1355
- _tmp = match_string(":")
1356
- unless _tmp
1357
- self.pos = _save
1358
- break
1359
- end
1360
- _save1 = self.pos
1361
-
1362
- _save2 = self.pos
1363
- while true # choice
1364
- _tmp = apply(:_mailbox_hyphen_list)
1365
- break if _tmp
1366
- self.pos = _save2
1367
- _tmp = apply(:_CFWS)
1368
- break if _tmp
1369
- self.pos = _save2
1370
- break
1371
- end # end choice
1372
-
1373
- unless _tmp
1374
- _tmp = true
1375
- self.pos = _save1
1376
- end
1377
- unless _tmp
1378
- self.pos = _save
1379
- break
1380
- end
1381
- _tmp = match_string(";")
1382
- unless _tmp
1383
- self.pos = _save
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
- _save1 = self.pos
1416
- while true # sequence
1417
- _tmp = apply(:_mailbox)
1418
- unless _tmp
1419
- self.pos = _save1
1420
- break
1421
- end
1422
- while true
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
- _save3 = self.pos
1425
- while true # sequence
1426
- _tmp = match_string(",")
1427
- unless _tmp
1428
- self.pos = _save3
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
- _save1 = self.pos
1466
- while true # sequence
1467
- _tmp = apply(:_address)
1468
- unless _tmp
1469
- self.pos = _save1
1470
- break
1471
- end
1472
- while true
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
- _save3 = self.pos
1475
- while true # sequence
1476
- _tmp = match_string(",")
1477
- unless _tmp
1478
- self.pos = _save3
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
- _tmp = apply(:_local_hyphen_part)
1515
- unless _tmp
1516
- self.pos = _save
1517
- break
1518
- end
1519
- _tmp = match_string("@")
1520
- unless _tmp
1521
- self.pos = _save
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
- _tmp = apply(:_dot_hyphen_atom)
1541
- break if _tmp
1542
- self.pos = _save
1543
- _tmp = apply(:_quoted_hyphen_string)
1544
- break if _tmp
1545
- self.pos = _save
1546
- _tmp = apply(:_obs_hyphen_local_hyphen_part)
1547
- break if _tmp
1548
- self.pos = _save
1549
- break
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
- _save1 = self.pos
1563
- while true # sequence
1564
- _text_start = self.pos
1565
- _tmp = apply(:_dot_hyphen_atom)
1566
- if _tmp
1567
- text = get_text(_text_start)
1568
- end
1569
- unless _tmp
1570
- self.pos = _save1
1571
- break
1572
- end
1573
- _save2 = self.pos
1574
- _tmp = begin; @validate_domain ? EmailAddressValidator::DomainParser.new(text).parse : true ; end
1575
- self.pos = _save2
1576
- unless _tmp
1577
- self.pos = _save1
1578
- end
1579
- break
1580
- end # end sequence
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
- break if _tmp
1583
- self.pos = _save
1584
- _tmp = apply(:_domain_hyphen_literal)
1585
- break if _tmp
1586
- self.pos = _save
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
- _save3 = self.pos
1589
- while true # sequence
1590
- _text_start = self.pos
1591
- _tmp = apply(:_obs_hyphen_domain)
1592
- if _tmp
1593
- text = get_text(_text_start)
1594
- end
1595
- unless _tmp
1596
- self.pos = _save3
1597
- break
1598
- end
1599
- _save4 = self.pos
1600
- _tmp = begin; @validate_domain ? EmailAddressValidator::DomainParser.new(text).parse : true ; end
1601
- self.pos = _save4
1602
- unless _tmp
1603
- self.pos = _save3
1604
- end
1605
- break
1606
- end # end sequence
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
- break if _tmp
1609
- self.pos = _save
1610
- break
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
- _save1 = self.pos
1623
- _tmp = apply(:_CFWS)
1624
- unless _tmp
1625
- _tmp = true
1626
- self.pos = _save1
1627
- end
1628
- unless _tmp
1629
- self.pos = _save
1630
- break
1631
- end
1632
- _tmp = match_string("[")
1633
- unless _tmp
1634
- self.pos = _save
1635
- break
1636
- end
1637
- while true
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
- _save3 = self.pos
1640
- while true # sequence
1641
- _save4 = self.pos
1642
- _tmp = apply(:_FWS)
1643
- unless _tmp
1644
- _tmp = true
1645
- self.pos = _save4
1646
- end
1647
- unless _tmp
1648
- self.pos = _save3
1649
- break
1650
- end
1651
- _tmp = apply(:_dcontent)
1652
- unless _tmp
1653
- self.pos = _save3
1654
- end
1655
- break
1656
- end # end sequence
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
- break unless _tmp
1659
- end
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
- self.pos = _save5
1670
- end
1671
- unless _tmp
1672
- self.pos = _save
1673
- break
1674
- end
1675
- _tmp = match_string("]")
1676
- unless _tmp
1677
- self.pos = _save
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
- _tmp = apply(:_dtext)
1702
- break if _tmp
1703
- self.pos = _save
1704
- _tmp = apply(:_quoted_hyphen_pair)
1705
- break if _tmp
1706
- self.pos = _save
1707
- break
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
- _tmp = apply(:_NO_hyphen_WS_hyphen_CTL)
1720
- break if _tmp
1721
- self.pos = _save
1722
- _tmp = _d_btw(33,90)
1723
- break if _tmp
1724
- self.pos = _save
1725
- _tmp = _d_btw(94,126)
1726
- break if _tmp
1727
- self.pos = _save
1728
- break
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
- _tmp = match_string("\\")
1741
- unless _tmp
1742
- self.pos = _save
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
- while true
1762
- _tmp = apply(:_LF)
1763
- break unless _tmp
1764
- end
1765
- _tmp = true
1766
- unless _tmp
1767
- self.pos = _save
1768
- break
1769
- end
1770
- while true
1771
- _tmp = apply(:_CR)
1772
- break unless _tmp
1773
- end
1774
- _tmp = true
1775
- unless _tmp
1776
- self.pos = _save
1777
- break
1778
- end
1779
- while true
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
- _save4 = self.pos
1782
- while true # sequence
1783
- _tmp = apply(:_obs_hyphen_char)
1784
- unless _tmp
1785
- self.pos = _save4
1786
- break
1787
- end
1788
- while true
1789
- _tmp = apply(:_LF)
1790
- break unless _tmp
1791
- end
1792
- _tmp = true
1793
- unless _tmp
1794
- self.pos = _save4
1795
- break
1796
- end
1797
- while true
1798
- _tmp = apply(:_CR)
1799
- break unless _tmp
1800
- end
1801
- _tmp = true
1802
- unless _tmp
1803
- self.pos = _save4
1804
- end
1805
- break
1806
- end # end sequence
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
- break unless _tmp
1809
- end
1810
- _tmp = true
1811
- unless _tmp
1812
- self.pos = _save
1813
- end
1814
- break
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
- _tmp = _d_btw(0,9)
1827
- break if _tmp
1828
- self.pos = _save
1829
- _tmp = _d(11)
1830
- break if _tmp
1831
- self.pos = _save
1832
- _tmp = _d(12)
1833
- break if _tmp
1834
- self.pos = _save
1835
- _tmp = _d_btw(14,127)
1836
- break if _tmp
1837
- self.pos = _save
1838
- break
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
- _tmp = apply(:_word)
1858
- unless _tmp
1859
- self.pos = _save
1860
- break
1861
- end
1862
- while true
1897
+ _tmp = apply(:_word)
1898
+ unless _tmp
1899
+ self.pos = _save
1900
+ break
1901
+ end
1902
+ while true
1863
1903
 
1864
- _save2 = self.pos
1865
- while true # choice
1866
- _tmp = apply(:_word)
1867
- break if _tmp
1868
- self.pos = _save2
1869
- _tmp = match_string(".")
1870
- break if _tmp
1871
- self.pos = _save2
1872
- _tmp = apply(:_CFWS)
1873
- break if _tmp
1874
- self.pos = _save2
1875
- break
1876
- end # end choice
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
- break unless _tmp
1879
- end
1880
- _tmp = true
1881
- unless _tmp
1882
- self.pos = _save
1883
- end
1884
- break
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
- _tmp = apply(:_phrase)
1897
- break if _tmp
1898
- self.pos = _save
1899
-
1900
- _save1 = self.pos
1901
- while true # sequence
1902
- _save2 = self.pos
1903
-
1904
- _save3 = self.pos
1905
- while true # sequence
1906
- _save4 = self.pos
1907
- _tmp = apply(:_phrase)
1908
- unless _tmp
1909
- _tmp = true
1910
- self.pos = _save4
1911
- end
1912
- unless _tmp
1913
- self.pos = _save3
1914
- break
1915
- end
1916
- _save5 = self.pos
1917
- _tmp = apply(:_CFWS)
1918
- unless _tmp
1919
- _tmp = true
1920
- self.pos = _save5
1921
- end
1922
- unless _tmp
1923
- self.pos = _save3
1924
- break
1925
- end
1926
- _tmp = match_string(",")
1927
- unless _tmp
1928
- self.pos = _save3
1929
- break
1930
- end
1931
- _save6 = self.pos
1932
- _tmp = apply(:_CFWS)
1933
- unless _tmp
1934
- _tmp = true
1935
- self.pos = _save6
1936
- end
1937
- unless _tmp
1938
- self.pos = _save3
1939
- end
1940
- break
1941
- end # end sequence
1942
-
1943
- if _tmp
1944
- while true
1945
-
1946
- _save7 = self.pos
1947
- while true # sequence
1948
- _save8 = self.pos
1949
- _tmp = apply(:_phrase)
1950
- unless _tmp
1951
- _tmp = true
1952
- self.pos = _save8
1953
- end
1954
- unless _tmp
1955
- self.pos = _save7
1956
- break
1957
- end
1958
- _save9 = self.pos
1959
- _tmp = apply(:_CFWS)
1960
- unless _tmp
1961
- _tmp = true
1962
- self.pos = _save9
1963
- end
1964
- unless _tmp
1965
- self.pos = _save7
1966
- break
1967
- end
1968
- _tmp = match_string(",")
1969
- unless _tmp
1970
- self.pos = _save7
1971
- break
1972
- end
1973
- _save10 = self.pos
1974
- _tmp = apply(:_CFWS)
1975
- unless _tmp
1976
- _tmp = true
1977
- self.pos = _save10
1978
- end
1979
- unless _tmp
1980
- self.pos = _save7
1981
- end
1982
- break
1983
- end # end sequence
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
- break unless _tmp
1986
- end
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
- _save1 = self.pos
2022
- _tmp = apply(:_WSP)
2023
- if _tmp
2024
- while true
2025
- _tmp = apply(:_WSP)
2026
- break unless _tmp
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
- _tmp = apply(:_WSP)
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
- else
2054
- self.pos = _save4
2055
- end
2056
- unless _tmp
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
- _save1 = self.pos
2081
- _tmp = apply(:_CFWS)
2082
- unless _tmp
2083
- _tmp = true
2084
- self.pos = _save1
2085
- end
2086
- unless _tmp
2087
- self.pos = _save
2088
- break
2089
- end
2090
- _tmp = match_string("<")
2091
- unless _tmp
2092
- self.pos = _save
2093
- break
2094
- end
2095
- _save2 = self.pos
2096
- _tmp = apply(:_obs_hyphen_route)
2097
- unless _tmp
2098
- _tmp = true
2099
- self.pos = _save2
2100
- end
2101
- unless _tmp
2102
- self.pos = _save
2103
- break
2104
- end
2105
- _tmp = apply(:_addr_hyphen_spec)
2106
- unless _tmp
2107
- self.pos = _save
2108
- break
2109
- end
2110
- _tmp = match_string(">")
2111
- unless _tmp
2112
- self.pos = _save
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
- _save1 = self.pos
2137
- _tmp = apply(:_CFWS)
2138
- unless _tmp
2139
- _tmp = true
2140
- self.pos = _save1
2141
- end
2142
- unless _tmp
2143
- self.pos = _save
2144
- break
2145
- end
2146
- _tmp = apply(:_obs_hyphen_domain_hyphen_list)
2147
- unless _tmp
2148
- self.pos = _save
2149
- break
2150
- end
2151
- _tmp = match_string(":")
2152
- unless _tmp
2153
- self.pos = _save
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
- _tmp = match_string("@")
2178
- unless _tmp
2179
- self.pos = _save
2180
- break
2181
- end
2182
- _tmp = apply(:_domain)
2183
- unless _tmp
2184
- self.pos = _save
2185
- break
2186
- end
2187
- while true
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
- _save4 = self.pos
2194
- while true # choice
2195
- _tmp = apply(:_CFWS)
2196
- break if _tmp
2197
- self.pos = _save4
2198
- _tmp = match_string(",")
2199
- break if _tmp
2200
- self.pos = _save4
2201
- break
2202
- end # end choice
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
- break unless _tmp
2205
- end
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
- self.pos = _save5
2216
- end
2217
- unless _tmp
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
- _tmp = apply(:_word)
2252
- unless _tmp
2253
- self.pos = _save
2254
- break
2255
- end
2256
- while true
2291
+ _tmp = apply(:_word)
2292
+ unless _tmp
2293
+ self.pos = _save
2294
+ break
2295
+ end
2296
+ while true
2257
2297
 
2258
- _save2 = self.pos
2259
- while true # sequence
2260
- _tmp = match_string(".")
2261
- unless _tmp
2262
- self.pos = _save2
2263
- break
2264
- end
2265
- _tmp = apply(:_word)
2266
- unless _tmp
2267
- self.pos = _save2
2268
- end
2269
- break
2270
- end # end sequence
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
- break unless _tmp
2273
- end
2274
- _tmp = true
2275
- unless _tmp
2276
- self.pos = _save
2277
- end
2278
- break
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
- _tmp = apply(:_atom)
2291
- unless _tmp
2292
- self.pos = _save
2293
- break
2294
- end
2295
- while true
2330
+ _tmp = apply(:_atom)
2331
+ unless _tmp
2332
+ self.pos = _save
2333
+ break
2334
+ end
2335
+ while true
2296
2336
 
2297
- _save2 = self.pos
2298
- while true # sequence
2299
- _tmp = match_string(".")
2300
- unless _tmp
2301
- self.pos = _save2
2302
- break
2303
- end
2304
- _tmp = apply(:_atom)
2305
- unless _tmp
2306
- self.pos = _save2
2307
- end
2308
- break
2309
- end # end sequence
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
- break unless _tmp
2312
- end
2313
- _tmp = true
2314
- unless _tmp
2315
- self.pos = _save
2316
- end
2317
- break
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
- _save1 = self.pos
2330
-
2331
- _save2 = self.pos
2332
- while true # sequence
2333
- _save3 = self.pos
2334
- _tmp = apply(:_address)
2335
- unless _tmp
2336
- _tmp = true
2337
- self.pos = _save3
2338
- end
2339
- unless _tmp
2340
- self.pos = _save2
2341
- break
2342
- end
2343
- _save4 = self.pos
2344
- _tmp = apply(:_CFWS)
2345
- unless _tmp
2346
- _tmp = true
2347
- self.pos = _save4
2348
- end
2349
- unless _tmp
2350
- self.pos = _save2
2351
- break
2352
- end
2353
- _tmp = match_string(",")
2354
- unless _tmp
2355
- self.pos = _save2
2356
- break
2357
- end
2358
- _save5 = self.pos
2359
- _tmp = apply(:_CFWS)
2360
- unless _tmp
2361
- _tmp = true
2362
- self.pos = _save5
2363
- end
2364
- unless _tmp
2365
- self.pos = _save2
2366
- end
2367
- break
2368
- end # end sequence
2369
-
2370
- if _tmp
2371
- while true
2372
-
2373
- _save6 = self.pos
2374
- while true # sequence
2375
- _save7 = self.pos
2376
- _tmp = apply(:_address)
2377
- unless _tmp
2378
- _tmp = true
2379
- self.pos = _save7
2380
- end
2381
- unless _tmp
2382
- self.pos = _save6
2383
- break
2384
- end
2385
- _save8 = self.pos
2386
- _tmp = apply(:_CFWS)
2387
- unless _tmp
2388
- _tmp = true
2389
- self.pos = _save8
2390
- end
2391
- unless _tmp
2392
- self.pos = _save6
2393
- break
2394
- end
2395
- _tmp = match_string(",")
2396
- unless _tmp
2397
- self.pos = _save6
2398
- break
2399
- end
2400
- _save9 = self.pos
2401
- _tmp = apply(:_CFWS)
2402
- unless _tmp
2403
- _tmp = true
2404
- self.pos = _save9
2405
- end
2406
- unless _tmp
2407
- self.pos = _save6
2408
- end
2409
- break
2410
- end # end sequence
2411
-
2412
- break unless _tmp
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
- _tmp = apply(:_address)
2444
- unless _tmp
2445
- self.pos = _save
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
- _tmp = apply(:_addr_hyphen_spec)
2468
- unless _tmp
2469
- self.pos = _save
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