Included Modules

Class Index [+]

Quicksearch

Mail::ContentType

Public Instance Methods

_nt_attribute() click to toggle source
     # File lib/mail/parsers/content_type.rb, line 861
861:     def _nt_attribute
862:       start_index = index
863:       if node_cache[:attribute].has_key?(index)
864:         cached = node_cache[:attribute][index]
865:         if cached
866:           cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
867:           @index = cached.interval.end
868:         end
869:         return cached
870:       end
871: 
872:       s0, i0 = [], index
873:       loop do
874:         r1 = _nt_token
875:         if r1
876:           s0 << r1
877:         else
878:           break
879:         end
880:       end
881:       if s0.empty?
882:         @index = i0
883:         r0 = nil
884:       else
885:         r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
886:       end
887: 
888:       node_cache[:attribute][start_index] = r0
889: 
890:       r0
891:     end
_nt_composite_type() click to toggle source
     # File lib/mail/parsers/content_type.rb, line 535
535:     def _nt_composite_type
536:       start_index = index
537:       if node_cache[:composite_type].has_key?(index)
538:         cached = node_cache[:composite_type][index]
539:         if cached
540:           cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
541:           @index = cached.interval.end
542:         end
543:         return cached
544:       end
545: 
546:       i0 = index
547:       i1, s1 = index, []
548:       if has_terminal?('\G[mM]', true, index)
549:         r2 = true
550:         @index += 1
551:       else
552:         r2 = nil
553:       end
554:       s1 << r2
555:       if r2
556:         if has_terminal?('\G[eE]', true, index)
557:           r3 = true
558:           @index += 1
559:         else
560:           r3 = nil
561:         end
562:         s1 << r3
563:         if r3
564:           if has_terminal?('\G[sS]', true, index)
565:             r4 = true
566:             @index += 1
567:           else
568:             r4 = nil
569:           end
570:           s1 << r4
571:           if r4
572:             if has_terminal?('\G[sS]', true, index)
573:               r5 = true
574:               @index += 1
575:             else
576:               r5 = nil
577:             end
578:             s1 << r5
579:             if r5
580:               if has_terminal?('\G[aA]', true, index)
581:                 r6 = true
582:                 @index += 1
583:               else
584:                 r6 = nil
585:               end
586:               s1 << r6
587:               if r6
588:                 if has_terminal?('\G[gG]', true, index)
589:                   r7 = true
590:                   @index += 1
591:                 else
592:                   r7 = nil
593:                 end
594:                 s1 << r7
595:                 if r7
596:                   if has_terminal?('\G[eE]', true, index)
597:                     r8 = true
598:                     @index += 1
599:                   else
600:                     r8 = nil
601:                   end
602:                   s1 << r8
603:                 end
604:               end
605:             end
606:           end
607:         end
608:       end
609:       if s1.last
610:         r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
611:         r1.extend(CompositeType0)
612:       else
613:         @index = i1
614:         r1 = nil
615:       end
616:       if r1
617:         r0 = r1
618:       else
619:         i9, s9 = index, []
620:         if has_terminal?('\G[mM]', true, index)
621:           r10 = true
622:           @index += 1
623:         else
624:           r10 = nil
625:         end
626:         s9 << r10
627:         if r10
628:           if has_terminal?('\G[uU]', true, index)
629:             r11 = true
630:             @index += 1
631:           else
632:             r11 = nil
633:           end
634:           s9 << r11
635:           if r11
636:             if has_terminal?('\G[lL]', true, index)
637:               r12 = true
638:               @index += 1
639:             else
640:               r12 = nil
641:             end
642:             s9 << r12
643:             if r12
644:               if has_terminal?('\G[tT]', true, index)
645:                 r13 = true
646:                 @index += 1
647:               else
648:                 r13 = nil
649:               end
650:               s9 << r13
651:               if r13
652:                 if has_terminal?('\G[iI]', true, index)
653:                   r14 = true
654:                   @index += 1
655:                 else
656:                   r14 = nil
657:                 end
658:                 s9 << r14
659:                 if r14
660:                   if has_terminal?('\G[pP]', true, index)
661:                     r15 = true
662:                     @index += 1
663:                   else
664:                     r15 = nil
665:                   end
666:                   s9 << r15
667:                   if r15
668:                     if has_terminal?('\G[aA]', true, index)
669:                       r16 = true
670:                       @index += 1
671:                     else
672:                       r16 = nil
673:                     end
674:                     s9 << r16
675:                     if r16
676:                       if has_terminal?('\G[rR]', true, index)
677:                         r17 = true
678:                         @index += 1
679:                       else
680:                         r17 = nil
681:                       end
682:                       s9 << r17
683:                       if r17
684:                         if has_terminal?('\G[tT]', true, index)
685:                           r18 = true
686:                           @index += 1
687:                         else
688:                           r18 = nil
689:                         end
690:                         s9 << r18
691:                       end
692:                     end
693:                   end
694:                 end
695:               end
696:             end
697:           end
698:         end
699:         if s9.last
700:           r9 = instantiate_node(SyntaxNode,input, i9...index, s9)
701:           r9.extend(CompositeType1)
702:         else
703:           @index = i9
704:           r9 = nil
705:         end
706:         if r9
707:           r0 = r9
708:         else
709:           r19 = _nt_extension_token
710:           if r19
711:             r0 = r19
712:           else
713:             @index = i0
714:             r0 = nil
715:           end
716:         end
717:       end
718: 
719:       node_cache[:composite_type][start_index] = r0
720: 
721:       r0
722:     end
_nt_content_type() click to toggle source
     # File lib/mail/parsers/content_type.rb, line 52
 52:     def _nt_content_type
 53:       start_index = index
 54:       if node_cache[:content_type].has_key?(index)
 55:         cached = node_cache[:content_type][index]
 56:         if cached
 57:           cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
 58:           @index = cached.interval.end
 59:         end
 60:         return cached
 61:       end
 62: 
 63:       i0, s0 = index, []
 64:       r1 = _nt_main_type
 65:       s0 << r1
 66:       if r1
 67:         if has_terminal?("/", false, index)
 68:           r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
 69:           @index += 1
 70:         else
 71:           terminal_parse_failure("/")
 72:           r2 = nil
 73:         end
 74:         s0 << r2
 75:         if r2
 76:           r3 = _nt_sub_type
 77:           s0 << r3
 78:           if r3
 79:             s4, i4 = [], index
 80:             loop do
 81:               i5, s5 = index, []
 82:               r6 = _nt_CFWS
 83:               s5 << r6
 84:               if r6
 85:                 if has_terminal?(";", false, index)
 86:                   r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
 87:                   @index += 1
 88:                 else
 89:                   terminal_parse_failure(";")
 90:                   r8 = nil
 91:                 end
 92:                 if r8
 93:                   r7 = r8
 94:                 else
 95:                   r7 = instantiate_node(SyntaxNode,input, index...index)
 96:                 end
 97:                 s5 << r7
 98:                 if r7
 99:                   r9 = _nt_parameter
100:                   s5 << r9
101:                   if r9
102:                     r10 = _nt_CFWS
103:                     s5 << r10
104:                   end
105:                 end
106:               end
107:               if s5.last
108:                 r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
109:                 r5.extend(ContentType0)
110:               else
111:                 @index = i5
112:                 r5 = nil
113:               end
114:               if r5
115:                 s4 << r5
116:               else
117:                 break
118:               end
119:             end
120:             r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
121:             s0 << r4
122:           end
123:         end
124:       end
125:       if s0.last
126:         r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
127:         r0.extend(ContentType1)
128:         r0.extend(ContentType2)
129:       else
130:         @index = i0
131:         r0 = nil
132:       end
133: 
134:       node_cache[:content_type][start_index] = r0
135: 
136:       r0
137:     end
_nt_discrete_type() click to toggle source
     # File lib/mail/parsers/content_type.rb, line 184
184:     def _nt_discrete_type
185:       start_index = index
186:       if node_cache[:discrete_type].has_key?(index)
187:         cached = node_cache[:discrete_type][index]
188:         if cached
189:           cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
190:           @index = cached.interval.end
191:         end
192:         return cached
193:       end
194: 
195:       i0 = index
196:       i1, s1 = index, []
197:       if has_terminal?('\G[tT]', true, index)
198:         r2 = true
199:         @index += 1
200:       else
201:         r2 = nil
202:       end
203:       s1 << r2
204:       if r2
205:         if has_terminal?('\G[eE]', true, index)
206:           r3 = true
207:           @index += 1
208:         else
209:           r3 = nil
210:         end
211:         s1 << r3
212:         if r3
213:           if has_terminal?('\G[xX]', true, index)
214:             r4 = true
215:             @index += 1
216:           else
217:             r4 = nil
218:           end
219:           s1 << r4
220:           if r4
221:             if has_terminal?('\G[tT]', true, index)
222:               r5 = true
223:               @index += 1
224:             else
225:               r5 = nil
226:             end
227:             s1 << r5
228:           end
229:         end
230:       end
231:       if s1.last
232:         r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
233:         r1.extend(DiscreteType0)
234:       else
235:         @index = i1
236:         r1 = nil
237:       end
238:       if r1
239:         r0 = r1
240:       else
241:         i6, s6 = index, []
242:         if has_terminal?('\G[iI]', true, index)
243:           r7 = true
244:           @index += 1
245:         else
246:           r7 = nil
247:         end
248:         s6 << r7
249:         if r7
250:           if has_terminal?('\G[mM]', true, index)
251:             r8 = true
252:             @index += 1
253:           else
254:             r8 = nil
255:           end
256:           s6 << r8
257:           if r8
258:             if has_terminal?('\G[aA]', true, index)
259:               r9 = true
260:               @index += 1
261:             else
262:               r9 = nil
263:             end
264:             s6 << r9
265:             if r9
266:               if has_terminal?('\G[gG]', true, index)
267:                 r10 = true
268:                 @index += 1
269:               else
270:                 r10 = nil
271:               end
272:               s6 << r10
273:               if r10
274:                 if has_terminal?('\G[eE]', true, index)
275:                   r11 = true
276:                   @index += 1
277:                 else
278:                   r11 = nil
279:                 end
280:                 s6 << r11
281:               end
282:             end
283:           end
284:         end
285:         if s6.last
286:           r6 = instantiate_node(SyntaxNode,input, i6...index, s6)
287:           r6.extend(DiscreteType1)
288:         else
289:           @index = i6
290:           r6 = nil
291:         end
292:         if r6
293:           r0 = r6
294:         else
295:           i12, s12 = index, []
296:           if has_terminal?('\G[aA]', true, index)
297:             r13 = true
298:             @index += 1
299:           else
300:             r13 = nil
301:           end
302:           s12 << r13
303:           if r13
304:             if has_terminal?('\G[uU]', true, index)
305:               r14 = true
306:               @index += 1
307:             else
308:               r14 = nil
309:             end
310:             s12 << r14
311:             if r14
312:               if has_terminal?('\G[dD]', true, index)
313:                 r15 = true
314:                 @index += 1
315:               else
316:                 r15 = nil
317:               end
318:               s12 << r15
319:               if r15
320:                 if has_terminal?('\G[iI]', true, index)
321:                   r16 = true
322:                   @index += 1
323:                 else
324:                   r16 = nil
325:                 end
326:                 s12 << r16
327:                 if r16
328:                   if has_terminal?('\G[oO]', true, index)
329:                     r17 = true
330:                     @index += 1
331:                   else
332:                     r17 = nil
333:                   end
334:                   s12 << r17
335:                 end
336:               end
337:             end
338:           end
339:           if s12.last
340:             r12 = instantiate_node(SyntaxNode,input, i12...index, s12)
341:             r12.extend(DiscreteType2)
342:           else
343:             @index = i12
344:             r12 = nil
345:           end
346:           if r12
347:             r0 = r12
348:           else
349:             i18, s18 = index, []
350:             if has_terminal?('\G[vV]', true, index)
351:               r19 = true
352:               @index += 1
353:             else
354:               r19 = nil
355:             end
356:             s18 << r19
357:             if r19
358:               if has_terminal?('\G[iI]', true, index)
359:                 r20 = true
360:                 @index += 1
361:               else
362:                 r20 = nil
363:               end
364:               s18 << r20
365:               if r20
366:                 if has_terminal?('\G[dD]', true, index)
367:                   r21 = true
368:                   @index += 1
369:                 else
370:                   r21 = nil
371:                 end
372:                 s18 << r21
373:                 if r21
374:                   if has_terminal?('\G[eE]', true, index)
375:                     r22 = true
376:                     @index += 1
377:                   else
378:                     r22 = nil
379:                   end
380:                   s18 << r22
381:                   if r22
382:                     if has_terminal?('\G[oO]', true, index)
383:                       r23 = true
384:                       @index += 1
385:                     else
386:                       r23 = nil
387:                     end
388:                     s18 << r23
389:                   end
390:                 end
391:               end
392:             end
393:             if s18.last
394:               r18 = instantiate_node(SyntaxNode,input, i18...index, s18)
395:               r18.extend(DiscreteType3)
396:             else
397:               @index = i18
398:               r18 = nil
399:             end
400:             if r18
401:               r0 = r18
402:             else
403:               i24, s24 = index, []
404:               if has_terminal?('\G[aA]', true, index)
405:                 r25 = true
406:                 @index += 1
407:               else
408:                 r25 = nil
409:               end
410:               s24 << r25
411:               if r25
412:                 if has_terminal?('\G[pP]', true, index)
413:                   r26 = true
414:                   @index += 1
415:                 else
416:                   r26 = nil
417:                 end
418:                 s24 << r26
419:                 if r26
420:                   if has_terminal?('\G[pP]', true, index)
421:                     r27 = true
422:                     @index += 1
423:                   else
424:                     r27 = nil
425:                   end
426:                   s24 << r27
427:                   if r27
428:                     if has_terminal?('\G[lL]', true, index)
429:                       r28 = true
430:                       @index += 1
431:                     else
432:                       r28 = nil
433:                     end
434:                     s24 << r28
435:                     if r28
436:                       if has_terminal?('\G[iI]', true, index)
437:                         r29 = true
438:                         @index += 1
439:                       else
440:                         r29 = nil
441:                       end
442:                       s24 << r29
443:                       if r29
444:                         if has_terminal?('\G[cC]', true, index)
445:                           r30 = true
446:                           @index += 1
447:                         else
448:                           r30 = nil
449:                         end
450:                         s24 << r30
451:                         if r30
452:                           if has_terminal?('\G[aA]', true, index)
453:                             r31 = true
454:                             @index += 1
455:                           else
456:                             r31 = nil
457:                           end
458:                           s24 << r31
459:                           if r31
460:                             if has_terminal?('\G[tT]', true, index)
461:                               r32 = true
462:                               @index += 1
463:                             else
464:                               r32 = nil
465:                             end
466:                             s24 << r32
467:                             if r32
468:                               if has_terminal?('\G[iI]', true, index)
469:                                 r33 = true
470:                                 @index += 1
471:                               else
472:                                 r33 = nil
473:                               end
474:                               s24 << r33
475:                               if r33
476:                                 if has_terminal?('\G[oO]', true, index)
477:                                   r34 = true
478:                                   @index += 1
479:                                 else
480:                                   r34 = nil
481:                                 end
482:                                 s24 << r34
483:                                 if r34
484:                                   if has_terminal?('\G[nN]', true, index)
485:                                     r35 = true
486:                                     @index += 1
487:                                   else
488:                                     r35 = nil
489:                                   end
490:                                   s24 << r35
491:                                 end
492:                               end
493:                             end
494:                           end
495:                         end
496:                       end
497:                     end
498:                   end
499:                 end
500:               end
501:               if s24.last
502:                 r24 = instantiate_node(SyntaxNode,input, i24...index, s24)
503:                 r24.extend(DiscreteType4)
504:               else
505:                 @index = i24
506:                 r24 = nil
507:               end
508:               if r24
509:                 r0 = r24
510:               else
511:                 r36 = _nt_extension_token
512:                 if r36
513:                   r0 = r36
514:                 else
515:                   @index = i0
516:                   r0 = nil
517:                 end
518:               end
519:             end
520:           end
521:         end
522:       end
523: 
524:       node_cache[:discrete_type][start_index] = r0
525: 
526:       r0
527:     end
_nt_extension_token() click to toggle source
     # File lib/mail/parsers/content_type.rb, line 724
724:     def _nt_extension_token
725:       start_index = index
726:       if node_cache[:extension_token].has_key?(index)
727:         cached = node_cache[:extension_token][index]
728:         if cached
729:           cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
730:           @index = cached.interval.end
731:         end
732:         return cached
733:       end
734: 
735:       i0 = index
736:       r1 = _nt_ietf_token
737:       if r1
738:         r0 = r1
739:       else
740:         r2 = _nt_custom_x_token
741:         if r2
742:           r0 = r2
743:         else
744:           @index = i0
745:           r0 = nil
746:         end
747:       end
748: 
749:       node_cache[:extension_token][start_index] = r0
750: 
751:       r0
752:     end
_nt_main_type() click to toggle source
     # File lib/mail/parsers/content_type.rb, line 139
139:     def _nt_main_type
140:       start_index = index
141:       if node_cache[:main_type].has_key?(index)
142:         cached = node_cache[:main_type][index]
143:         if cached
144:           cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
145:           @index = cached.interval.end
146:         end
147:         return cached
148:       end
149: 
150:       i0 = index
151:       r1 = _nt_discrete_type
152:       if r1
153:         r0 = r1
154:       else
155:         r2 = _nt_composite_type
156:         if r2
157:           r0 = r2
158:         else
159:           @index = i0
160:           r0 = nil
161:         end
162:       end
163: 
164:       node_cache[:main_type][start_index] = r0
165: 
166:       r0
167:     end
_nt_parameter() click to toggle source
     # File lib/mail/parsers/content_type.rb, line 801
801:     def _nt_parameter
802:       start_index = index
803:       if node_cache[:parameter].has_key?(index)
804:         cached = node_cache[:parameter][index]
805:         if cached
806:           cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
807:           @index = cached.interval.end
808:         end
809:         return cached
810:       end
811: 
812:       i0, s0 = index, []
813:       r2 = _nt_CFWS
814:       if r2
815:         r1 = r2
816:       else
817:         r1 = instantiate_node(SyntaxNode,input, index...index)
818:       end
819:       s0 << r1
820:       if r1
821:         r3 = _nt_attribute
822:         s0 << r3
823:         if r3
824:           if has_terminal?("=", false, index)
825:             r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
826:             @index += 1
827:           else
828:             terminal_parse_failure("=")
829:             r4 = nil
830:           end
831:           s0 << r4
832:           if r4
833:             r5 = _nt_value
834:             s0 << r5
835:             if r5
836:               r7 = _nt_CFWS
837:               if r7
838:                 r6 = r7
839:               else
840:                 r6 = instantiate_node(SyntaxNode,input, index...index)
841:               end
842:               s0 << r6
843:             end
844:           end
845:         end
846:       end
847:       if s0.last
848:         r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
849:         r0.extend(Parameter0)
850:         r0.extend(Parameter1)
851:       else
852:         @index = i0
853:         r0 = nil
854:       end
855: 
856:       node_cache[:parameter][start_index] = r0
857: 
858:       r0
859:     end
_nt_sub_type() click to toggle source
     # File lib/mail/parsers/content_type.rb, line 754
754:     def _nt_sub_type
755:       start_index = index
756:       if node_cache[:sub_type].has_key?(index)
757:         cached = node_cache[:sub_type][index]
758:         if cached
759:           cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
760:           @index = cached.interval.end
761:         end
762:         return cached
763:       end
764: 
765:       i0 = index
766:       r1 = _nt_extension_token
767:       if r1
768:         r0 = r1
769:       else
770:         r2 = _nt_iana_token
771:         if r2
772:           r0 = r2
773:         else
774:           @index = i0
775:           r0 = nil
776:         end
777:       end
778: 
779:       node_cache[:sub_type][start_index] = r0
780: 
781:       r0
782:     end
_nt_value() click to toggle source
     # File lib/mail/parsers/content_type.rb, line 899
899:     def _nt_value
900:       start_index = index
901:       if node_cache[:value].has_key?(index)
902:         cached = node_cache[:value][index]
903:         if cached
904:           cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
905:           @index = cached.interval.end
906:         end
907:         return cached
908:       end
909: 
910:       i0 = index
911:       r1 = _nt_quoted_string
912:       r1.extend(Value0)
913:       if r1
914:         r0 = r1
915:       else
916:         s2, i2 = [], index
917:         loop do
918:           i3 = index
919:           r4 = _nt_token
920:           if r4
921:             r3 = r4
922:           else
923:             if has_terminal?('\G[\x3d]', true, index)
924:               r5 = true
925:               @index += 1
926:             else
927:               r5 = nil
928:             end
929:             if r5
930:               r3 = r5
931:             else
932:               @index = i3
933:               r3 = nil
934:             end
935:           end
936:           if r3
937:             s2 << r3
938:           else
939:             break
940:           end
941:         end
942:         if s2.empty?
943:           @index = i2
944:           r2 = nil
945:         else
946:           r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
947:         end
948:         if r2
949:           r0 = r2
950:         else
951:           @index = i0
952:           r0 = nil
953:         end
954:       end
955: 
956:       node_cache[:value][start_index] = r0
957: 
958:       r0
959:     end
root() click to toggle source
    # File lib/mail/parsers/content_type.rb, line 8
 8:     def root
 9:       @root ||= :content_type
10:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.