# File lib/mail/parsers/rfc2822.rb, line 14 14: def _nt_ALPHA 15: start_index = index 16: if node_cache[:ALPHA].has_key?(index) 17: cached = node_cache[:ALPHA][index] 18: if cached 19: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 20: @index = cached.interval.end 21: end 22: return cached 23: end 24: 25: if has_terminal?('\G[a-zA-Z]', true, index) 26: r0 = instantiate_node(SyntaxNode,input, index...(index + 1)) 27: @index += 1 28: else 29: r0 = nil 30: end 31: 32: node_cache[:ALPHA][start_index] = r0 33: 34: r0 35: end
# File lib/mail/parsers/rfc2822.rb, line 304 304: def _nt_CFWS 305: start_index = index 306: if node_cache[:CFWS].has_key?(index) 307: cached = node_cache[:CFWS][index] 308: if cached 309: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 310: @index = cached.interval.end 311: end 312: return cached 313: end 314: 315: i0, s0 = index, [] 316: s1, i1 = [], index 317: loop do 318: i2, s2 = index, [] 319: s3, i3 = [], index 320: loop do 321: r4 = _nt_FWS 322: if r4 323: s3 << r4 324: else 325: break 326: end 327: end 328: r3 = instantiate_node(SyntaxNode,input, i3...index, s3) 329: s2 << r3 330: if r3 331: r5 = _nt_comment 332: s2 << r5 333: end 334: if s2.last 335: r2 = instantiate_node(SyntaxNode,input, i2...index, s2) 336: r2.extend(CFWS0) 337: else 338: @index = i2 339: r2 = nil 340: end 341: if r2 342: s1 << r2 343: else 344: break 345: end 346: end 347: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 348: s0 << r1 349: if r1 350: r7 = _nt_FWS 351: if r7 352: r6 = r7 353: else 354: r6 = instantiate_node(SyntaxNode,input, index...index) 355: end 356: s0 << r6 357: end 358: if s0.last 359: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 360: r0.extend(CFWS1) 361: else 362: @index = i0 363: r0 = nil 364: end 365: 366: node_cache[:CFWS][start_index] = r0 367: 368: r0 369: end
# File lib/mail/parsers/rfc2822.rb, line 108 108: def _nt_CR 109: start_index = index 110: if node_cache[:CR].has_key?(index) 111: cached = node_cache[:CR][index] 112: if cached 113: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 114: @index = cached.interval.end 115: end 116: return cached 117: end 118: 119: if has_terminal?("\r", false, index) 120: r0 = instantiate_node(SyntaxNode,input, index...(index + 1)) 121: @index += 1 122: else 123: terminal_parse_failure("\r") 124: r0 = nil 125: end 126: 127: node_cache[:CR][start_index] = r0 128: 129: r0 130: end
# File lib/mail/parsers/rfc2822.rb, line 132 132: def _nt_CRLF 133: start_index = index 134: if node_cache[:CRLF].has_key?(index) 135: cached = node_cache[:CRLF][index] 136: if cached 137: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 138: @index = cached.interval.end 139: end 140: return cached 141: end 142: 143: if has_terminal?("\r\n", false, index) 144: r0 = instantiate_node(SyntaxNode,input, index...(index + 2)) 145: @index += 2 146: else 147: terminal_parse_failure("\r\n") 148: r0 = nil 149: end 150: 151: node_cache[:CRLF][start_index] = r0 152: 153: r0 154: end
# File lib/mail/parsers/rfc2822.rb, line 37 37: def _nt_DIGIT 38: start_index = index 39: if node_cache[:DIGIT].has_key?(index) 40: cached = node_cache[:DIGIT][index] 41: if cached 42: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 43: @index = cached.interval.end 44: end 45: return cached 46: end 47: 48: if has_terminal?('\G[0-9]', true, index) 49: r0 = instantiate_node(SyntaxNode,input, index...(index + 1)) 50: @index += 1 51: else 52: r0 = nil 53: end 54: 55: node_cache[:DIGIT][start_index] = r0 56: 57: r0 58: end
# File lib/mail/parsers/rfc2822.rb, line 60 60: def _nt_DQUOTE 61: start_index = index 62: if node_cache[:DQUOTE].has_key?(index) 63: cached = node_cache[:DQUOTE][index] 64: if cached 65: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 66: @index = cached.interval.end 67: end 68: return cached 69: end 70: 71: if has_terminal?('"', false, index) 72: r0 = instantiate_node(SyntaxNode,input, index...(index + 1)) 73: @index += 1 74: else 75: terminal_parse_failure('"') 76: r0 = nil 77: end 78: 79: node_cache[:DQUOTE][start_index] = r0 80: 81: r0 82: end
# File lib/mail/parsers/rfc2822.rb, line 193 193: def _nt_FWS 194: start_index = index 195: if node_cache[:FWS].has_key?(index) 196: cached = node_cache[:FWS][index] 197: if cached 198: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 199: @index = cached.interval.end 200: end 201: return cached 202: end 203: 204: i0 = index 205: i1, s1 = index, [] 206: s2, i2 = [], index 207: loop do 208: r3 = _nt_WSP 209: if r3 210: s2 << r3 211: else 212: break 213: end 214: end 215: r2 = instantiate_node(SyntaxNode,input, i2...index, s2) 216: s1 << r2 217: if r2 218: r4 = _nt_CRLF 219: s1 << r4 220: if r4 221: s5, i5 = [], index 222: loop do 223: r6 = _nt_WSP 224: if r6 225: s5 << r6 226: else 227: break 228: end 229: end 230: if s5.empty? 231: @index = i5 232: r5 = nil 233: else 234: r5 = instantiate_node(SyntaxNode,input, i5...index, s5) 235: end 236: s1 << r5 237: end 238: end 239: if s1.last 240: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 241: r1.extend(FWS0) 242: else 243: @index = i1 244: r1 = nil 245: end 246: if r1 247: r0 = r1 248: else 249: i7, s7 = index, [] 250: r8 = _nt_CRLF 251: s7 << r8 252: if r8 253: s9, i9 = [], index 254: loop do 255: r10 = _nt_WSP 256: if r10 257: s9 << r10 258: else 259: break 260: end 261: end 262: if s9.empty? 263: @index = i9 264: r9 = nil 265: else 266: r9 = instantiate_node(SyntaxNode,input, i9...index, s9) 267: end 268: s7 << r9 269: end 270: if s7.last 271: r7 = instantiate_node(SyntaxNode,input, i7...index, s7) 272: r7.extend(FWS1) 273: else 274: @index = i7 275: r7 = nil 276: end 277: if r7 278: r0 = r7 279: else 280: r11 = _nt_obs_FWS 281: if r11 282: r0 = r11 283: else 284: @index = i0 285: r0 = nil 286: end 287: end 288: end 289: 290: node_cache[:FWS][start_index] = r0 291: 292: r0 293: end
# File lib/mail/parsers/rfc2822.rb, line 84 84: def _nt_LF 85: start_index = index 86: if node_cache[:LF].has_key?(index) 87: cached = node_cache[:LF][index] 88: if cached 89: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 90: @index = cached.interval.end 91: end 92: return cached 93: end 94: 95: if has_terminal?("\n", false, index) 96: r0 = instantiate_node(SyntaxNode,input, index...(index + 1)) 97: @index += 1 98: else 99: terminal_parse_failure("\n") 100: r0 = nil 101: end 102: 103: node_cache[:LF][start_index] = r0 104: 105: r0 106: end
# File lib/mail/parsers/rfc2822.rb, line 371 371: def _nt_NO_WS_CTL 372: start_index = index 373: if node_cache[:NO_WS_CTL].has_key?(index) 374: cached = node_cache[:NO_WS_CTL][index] 375: if cached 376: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 377: @index = cached.interval.end 378: end 379: return cached 380: end 381: 382: i0 = index 383: if has_terminal?('\G[\x01-\x08]', true, index) 384: r1 = true 385: @index += 1 386: else 387: r1 = nil 388: end 389: if r1 390: r0 = r1 391: else 392: if has_terminal?('\G[\x0B-\x0C]', true, index) 393: r2 = true 394: @index += 1 395: else 396: r2 = nil 397: end 398: if r2 399: r0 = r2 400: else 401: if has_terminal?('\G[\x0E-\x1F]', true, index) 402: r3 = true 403: @index += 1 404: else 405: r3 = nil 406: end 407: if r3 408: r0 = r3 409: else 410: if has_terminal?('\G[\x7f]', true, index) 411: r4 = true 412: @index += 1 413: else 414: r4 = nil 415: end 416: if r4 417: r0 = r4 418: else 419: @index = i0 420: r0 = nil 421: end 422: end 423: end 424: end 425: 426: node_cache[:NO_WS_CTL][start_index] = r0 427: 428: r0 429: end
# File lib/mail/parsers/rfc2822.rb, line 156 156: def _nt_WSP 157: start_index = index 158: if node_cache[:WSP].has_key?(index) 159: cached = node_cache[:WSP][index] 160: if cached 161: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 162: @index = cached.interval.end 163: end 164: return cached 165: end 166: 167: if has_terminal?('\G[\x09\x20]', true, index) 168: r0 = instantiate_node(SyntaxNode,input, index...(index + 1)) 169: @index += 1 170: else 171: r0 = nil 172: end 173: 174: node_cache[:WSP][start_index] = r0 175: 176: r0 177: end
# File lib/mail/parsers/rfc2822.rb, line 2065 2065: def _nt_addr_spec 2066: start_index = index 2067: if node_cache[:addr_spec].has_key?(index) 2068: cached = node_cache[:addr_spec][index] 2069: if cached 2070: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 2071: @index = cached.interval.end 2072: end 2073: return cached 2074: end 2075: 2076: i0 = index 2077: i1, s1 = index, [] 2078: r2 = _nt_local_part 2079: s1 << r2 2080: if r2 2081: if has_terminal?("@", false, index) 2082: r3 = instantiate_node(SyntaxNode,input, index...(index + 1)) 2083: @index += 1 2084: else 2085: terminal_parse_failure("@") 2086: r3 = nil 2087: end 2088: s1 << r3 2089: if r3 2090: r4 = _nt_domain 2091: s1 << r4 2092: end 2093: end 2094: if s1.last 2095: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 2096: r1.extend(AddrSpec0) 2097: else 2098: @index = i1 2099: r1 = nil 2100: end 2101: if r1 2102: r0 = r1 2103: else 2104: r5 = _nt_local_part 2105: if r5 2106: r0 = r5 2107: else 2108: @index = i0 2109: r0 = nil 2110: end 2111: end 2112: 2113: node_cache[:addr_spec][start_index] = r0 2114: 2115: r0 2116: end
# File lib/mail/parsers/rfc2822.rb, line 2835 2835: def _nt_address 2836: start_index = index 2837: if node_cache[:address].has_key?(index) 2838: cached = node_cache[:address][index] 2839: if cached 2840: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 2841: @index = cached.interval.end 2842: end 2843: return cached 2844: end 2845: 2846: i0 = index 2847: r1 = _nt_group 2848: r1.extend(Address0) 2849: if r1 2850: r0 = r1 2851: else 2852: r2 = _nt_mailbox 2853: r2.extend(Address1) 2854: if r2 2855: r0 = r2 2856: else 2857: @index = i0 2858: r0 = nil 2859: end 2860: end 2861: 2862: node_cache[:address][start_index] = r0 2863: 2864: r0 2865: end
# File lib/mail/parsers/rfc2822.rb, line 2883 2883: def _nt_address_list 2884: start_index = index 2885: if node_cache[:address_list].has_key?(index) 2886: cached = node_cache[:address_list][index] 2887: if cached 2888: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 2889: @index = cached.interval.end 2890: end 2891: return cached 2892: end 2893: 2894: i0, s0 = index, [] 2895: r2 = _nt_address 2896: if r2 2897: r1 = r2 2898: else 2899: r1 = instantiate_node(SyntaxNode,input, index...index) 2900: end 2901: s0 << r1 2902: if r1 2903: s3, i3 = [], index 2904: loop do 2905: i4, s4 = index, [] 2906: s5, i5 = [], index 2907: loop do 2908: r6 = _nt_FWS 2909: if r6 2910: s5 << r6 2911: else 2912: break 2913: end 2914: end 2915: r5 = instantiate_node(SyntaxNode,input, i5...index, s5) 2916: s4 << r5 2917: if r5 2918: if has_terminal?(",", false, index) 2919: r7 = instantiate_node(SyntaxNode,input, index...(index + 1)) 2920: @index += 1 2921: else 2922: terminal_parse_failure(",") 2923: r7 = nil 2924: end 2925: s4 << r7 2926: if r7 2927: s8, i8 = [], index 2928: loop do 2929: r9 = _nt_FWS 2930: if r9 2931: s8 << r9 2932: else 2933: break 2934: end 2935: end 2936: r8 = instantiate_node(SyntaxNode,input, i8...index, s8) 2937: s4 << r8 2938: if r8 2939: r11 = _nt_address 2940: if r11 2941: r10 = r11 2942: else 2943: r10 = instantiate_node(SyntaxNode,input, index...index) 2944: end 2945: s4 << r10 2946: end 2947: end 2948: end 2949: if s4.last 2950: r4 = instantiate_node(SyntaxNode,input, i4...index, s4) 2951: r4.extend(AddressList0) 2952: else 2953: @index = i4 2954: r4 = nil 2955: end 2956: if r4 2957: s3 << r4 2958: else 2959: break 2960: end 2961: end 2962: r3 = instantiate_node(SyntaxNode,input, i3...index, s3) 2963: s0 << r3 2964: end 2965: if s0.last 2966: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 2967: r0.extend(AddressList1) 2968: else 2969: @index = i0 2970: r0 = nil 2971: end 2972: 2973: node_cache[:address_list][start_index] = r0 2974: 2975: r0 2976: end
# File lib/mail/parsers/rfc2822.rb, line 1978 1978: def _nt_angle_addr 1979: start_index = index 1980: if node_cache[:angle_addr].has_key?(index) 1981: cached = node_cache[:angle_addr][index] 1982: if cached 1983: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 1984: @index = cached.interval.end 1985: end 1986: return cached 1987: end 1988: 1989: i0 = index 1990: i1, s1 = index, [] 1991: r3 = _nt_CFWS 1992: if r3 1993: r2 = r3 1994: else 1995: r2 = instantiate_node(SyntaxNode,input, index...index) 1996: end 1997: s1 << r2 1998: if r2 1999: if has_terminal?("<", false, index) 2000: r4 = instantiate_node(SyntaxNode,input, index...(index + 1)) 2001: @index += 1 2002: else 2003: terminal_parse_failure("<") 2004: r4 = nil 2005: end 2006: s1 << r4 2007: if r4 2008: r5 = _nt_addr_spec 2009: s1 << r5 2010: if r5 2011: if has_terminal?(">", false, index) 2012: r6 = instantiate_node(SyntaxNode,input, index...(index + 1)) 2013: @index += 1 2014: else 2015: terminal_parse_failure(">") 2016: r6 = nil 2017: end 2018: s1 << r6 2019: if r6 2020: r8 = _nt_CFWS 2021: if r8 2022: r7 = r8 2023: else 2024: r7 = instantiate_node(SyntaxNode,input, index...index) 2025: end 2026: s1 << r7 2027: end 2028: end 2029: end 2030: end 2031: if s1.last 2032: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 2033: r1.extend(AngleAddr0) 2034: else 2035: @index = i1 2036: r1 = nil 2037: end 2038: if r1 2039: r0 = r1 2040: else 2041: r9 = _nt_obs_angle_addr 2042: if r9 2043: r0 = r9 2044: else 2045: @index = i0 2046: r0 = nil 2047: end 2048: end 2049: 2050: node_cache[:angle_addr][start_index] = r0 2051: 2052: r0 2053: end
# File lib/mail/parsers/rfc2822.rb, line 770 770: def _nt_atext 771: start_index = index 772: if node_cache[:atext].has_key?(index) 773: cached = node_cache[:atext][index] 774: if cached 775: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 776: @index = cached.interval.end 777: end 778: return cached 779: end 780: 781: i0 = index 782: r1 = _nt_ALPHA 783: if r1 784: r0 = r1 785: else 786: r2 = _nt_DIGIT 787: if r2 788: r0 = r2 789: else 790: if has_terminal?("!", false, index) 791: r3 = instantiate_node(SyntaxNode,input, index...(index + 1)) 792: @index += 1 793: else 794: terminal_parse_failure("!") 795: r3 = nil 796: end 797: if r3 798: r0 = r3 799: else 800: if has_terminal?("#", false, index) 801: r4 = instantiate_node(SyntaxNode,input, index...(index + 1)) 802: @index += 1 803: else 804: terminal_parse_failure("#") 805: r4 = nil 806: end 807: if r4 808: r0 = r4 809: else 810: if has_terminal?("$", false, index) 811: r5 = instantiate_node(SyntaxNode,input, index...(index + 1)) 812: @index += 1 813: else 814: terminal_parse_failure("$") 815: r5 = nil 816: end 817: if r5 818: r0 = r5 819: else 820: if has_terminal?("%", false, index) 821: r6 = instantiate_node(SyntaxNode,input, index...(index + 1)) 822: @index += 1 823: else 824: terminal_parse_failure("%") 825: r6 = nil 826: end 827: if r6 828: r0 = r6 829: else 830: if has_terminal?("&", false, index) 831: r7 = instantiate_node(SyntaxNode,input, index...(index + 1)) 832: @index += 1 833: else 834: terminal_parse_failure("&") 835: r7 = nil 836: end 837: if r7 838: r0 = r7 839: else 840: if has_terminal?("'", false, index) 841: r8 = instantiate_node(SyntaxNode,input, index...(index + 1)) 842: @index += 1 843: else 844: terminal_parse_failure("'") 845: r8 = nil 846: end 847: if r8 848: r0 = r8 849: else 850: if has_terminal?("*", false, index) 851: r9 = instantiate_node(SyntaxNode,input, index...(index + 1)) 852: @index += 1 853: else 854: terminal_parse_failure("*") 855: r9 = nil 856: end 857: if r9 858: r0 = r9 859: else 860: if has_terminal?("+", false, index) 861: r10 = instantiate_node(SyntaxNode,input, index...(index + 1)) 862: @index += 1 863: else 864: terminal_parse_failure("+") 865: r10 = nil 866: end 867: if r10 868: r0 = r10 869: else 870: if has_terminal?("-", false, index) 871: r11 = instantiate_node(SyntaxNode,input, index...(index + 1)) 872: @index += 1 873: else 874: terminal_parse_failure("-") 875: r11 = nil 876: end 877: if r11 878: r0 = r11 879: else 880: if has_terminal?("/", false, index) 881: r12 = instantiate_node(SyntaxNode,input, index...(index + 1)) 882: @index += 1 883: else 884: terminal_parse_failure("/") 885: r12 = nil 886: end 887: if r12 888: r0 = r12 889: else 890: if has_terminal?("=", false, index) 891: r13 = instantiate_node(SyntaxNode,input, index...(index + 1)) 892: @index += 1 893: else 894: terminal_parse_failure("=") 895: r13 = nil 896: end 897: if r13 898: r0 = r13 899: else 900: if has_terminal?("?", false, index) 901: r14 = instantiate_node(SyntaxNode,input, index...(index + 1)) 902: @index += 1 903: else 904: terminal_parse_failure("?") 905: r14 = nil 906: end 907: if r14 908: r0 = r14 909: else 910: if has_terminal?("^", false, index) 911: r15 = instantiate_node(SyntaxNode,input, index...(index + 1)) 912: @index += 1 913: else 914: terminal_parse_failure("^") 915: r15 = nil 916: end 917: if r15 918: r0 = r15 919: else 920: if has_terminal?("_", false, index) 921: r16 = instantiate_node(SyntaxNode,input, index...(index + 1)) 922: @index += 1 923: else 924: terminal_parse_failure("_") 925: r16 = nil 926: end 927: if r16 928: r0 = r16 929: else 930: if has_terminal?("`", false, index) 931: r17 = instantiate_node(SyntaxNode,input, index...(index + 1)) 932: @index += 1 933: else 934: terminal_parse_failure("`") 935: r17 = nil 936: end 937: if r17 938: r0 = r17 939: else 940: if has_terminal?("{", false, index) 941: r18 = instantiate_node(SyntaxNode,input, index...(index + 1)) 942: @index += 1 943: else 944: terminal_parse_failure("{") 945: r18 = nil 946: end 947: if r18 948: r0 = r18 949: else 950: if has_terminal?("|", false, index) 951: r19 = instantiate_node(SyntaxNode,input, index...(index + 1)) 952: @index += 1 953: else 954: terminal_parse_failure("|") 955: r19 = nil 956: end 957: if r19 958: r0 = r19 959: else 960: if has_terminal?("}", false, index) 961: r20 = instantiate_node(SyntaxNode,input, index...(index + 1)) 962: @index += 1 963: else 964: terminal_parse_failure("}") 965: r20 = nil 966: end 967: if r20 968: r0 = r20 969: else 970: if has_terminal?("~", false, index) 971: r21 = instantiate_node(SyntaxNode,input, index...(index + 1)) 972: @index += 1 973: else 974: terminal_parse_failure("~") 975: r21 = nil 976: end 977: if r21 978: r0 = r21 979: else 980: @index = i0 981: r0 = nil 982: end 983: end 984: end 985: end 986: end 987: end 988: end 989: end 990: end 991: end 992: end 993: end 994: end 995: end 996: end 997: end 998: end 999: end 1000: end 1001: end 1002: end 1003: 1004: node_cache[:atext][start_index] = r0 1005: 1006: r0 1007: end
# File lib/mail/parsers/rfc2822.rb, line 1062 1062: def _nt_atom 1063: start_index = index 1064: if node_cache[:atom].has_key?(index) 1065: cached = node_cache[:atom][index] 1066: if cached 1067: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 1068: @index = cached.interval.end 1069: end 1070: return cached 1071: end 1072: 1073: i0, s0 = index, [] 1074: r2 = _nt_CFWS 1075: if r2 1076: r1 = r2 1077: else 1078: r1 = instantiate_node(SyntaxNode,input, index...index) 1079: end 1080: s0 << r1 1081: if r1 1082: s3, i3 = [], index 1083: loop do 1084: r4 = _nt_atext 1085: if r4 1086: s3 << r4 1087: else 1088: break 1089: end 1090: end 1091: if s3.empty? 1092: @index = i3 1093: r3 = nil 1094: else 1095: r3 = instantiate_node(SyntaxNode,input, i3...index, s3) 1096: end 1097: s0 << r3 1098: if r3 1099: r6 = _nt_CFWS 1100: if r6 1101: r5 = r6 1102: else 1103: r5 = instantiate_node(SyntaxNode,input, index...index) 1104: end 1105: s0 << r5 1106: end 1107: end 1108: if s0.last 1109: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 1110: r0.extend(Atom0) 1111: else 1112: @index = i0 1113: r0 = nil 1114: end 1115: 1116: node_cache[:atom][start_index] = r0 1117: 1118: r0 1119: end
# File lib/mail/parsers/rfc2822.rb, line 643 643: def _nt_ccontent 644: start_index = index 645: if node_cache[:ccontent].has_key?(index) 646: cached = node_cache[:ccontent][index] 647: if cached 648: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 649: @index = cached.interval.end 650: end 651: return cached 652: end 653: 654: i0 = index 655: r1 = _nt_ctext 656: if r1 657: r0 = r1 658: else 659: r2 = _nt_quoted_pair 660: if r2 661: r0 = r2 662: else 663: r3 = _nt_comment 664: if r3 665: r0 = r3 666: else 667: @index = i0 668: r0 = nil 669: end 670: end 671: end 672: 673: node_cache[:ccontent][start_index] = r0 674: 675: r0 676: end
# File lib/mail/parsers/rfc2822.rb, line 687 687: def _nt_comment 688: start_index = index 689: if node_cache[:comment].has_key?(index) 690: cached = node_cache[:comment][index] 691: if cached 692: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 693: @index = cached.interval.end 694: end 695: return cached 696: end 697: 698: i0, s0 = index, [] 699: if has_terminal?("(", false, index) 700: r1 = instantiate_node(SyntaxNode,input, index...(index + 1)) 701: @index += 1 702: else 703: terminal_parse_failure("(") 704: r1 = nil 705: end 706: s0 << r1 707: if r1 708: s2, i2 = [], index 709: loop do 710: i3, s3 = index, [] 711: r5 = _nt_FWS 712: if r5 713: r4 = r5 714: else 715: r4 = instantiate_node(SyntaxNode,input, index...index) 716: end 717: s3 << r4 718: if r4 719: r6 = _nt_ccontent 720: s3 << r6 721: end 722: if s3.last 723: r3 = instantiate_node(SyntaxNode,input, i3...index, s3) 724: r3.extend(Comment0) 725: else 726: @index = i3 727: r3 = nil 728: end 729: if r3 730: s2 << r3 731: else 732: break 733: end 734: end 735: r2 = instantiate_node(SyntaxNode,input, i2...index, s2) 736: s0 << r2 737: if r2 738: r8 = _nt_FWS 739: if r8 740: r7 = r8 741: else 742: r7 = instantiate_node(SyntaxNode,input, index...index) 743: end 744: s0 << r7 745: if r7 746: if has_terminal?(")", false, index) 747: r9 = instantiate_node(SyntaxNode,input, index...(index + 1)) 748: @index += 1 749: else 750: terminal_parse_failure(")") 751: r9 = nil 752: end 753: s0 << r9 754: end 755: end 756: end 757: if s0.last 758: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 759: r0.extend(Comment1) 760: else 761: @index = i0 762: r0 = nil 763: end 764: 765: node_cache[:comment][start_index] = r0 766: 767: r0 768: end
# File lib/mail/parsers/rfc2822.rb, line 588 588: def _nt_ctext 589: start_index = index 590: if node_cache[:ctext].has_key?(index) 591: cached = node_cache[:ctext][index] 592: if cached 593: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 594: @index = cached.interval.end 595: end 596: return cached 597: end 598: 599: i0 = index 600: r1 = _nt_NO_WS_CTL 601: if r1 602: r0 = r1 603: else 604: if has_terminal?('\G[\x21-\x27]', true, index) 605: r2 = true 606: @index += 1 607: else 608: r2 = nil 609: end 610: if r2 611: r0 = r2 612: else 613: if has_terminal?('\G[\x2a-\x5b]', true, index) 614: r3 = true 615: @index += 1 616: else 617: r3 = nil 618: end 619: if r3 620: r0 = r3 621: else 622: if has_terminal?('\G[\x5d-\x7e]', true, index) 623: r4 = true 624: @index += 1 625: else 626: r4 = nil 627: end 628: if r4 629: r0 = r4 630: else 631: @index = i0 632: r0 = nil 633: end 634: end 635: end 636: end 637: 638: node_cache[:ctext][start_index] = r0 639: 640: r0 641: end
# File lib/mail/parsers/rfc2822.rb, line 3237 3237: def _nt_date 3238: start_index = index 3239: if node_cache[:date].has_key?(index) 3240: cached = node_cache[:date][index] 3241: if cached 3242: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3243: @index = cached.interval.end 3244: end 3245: return cached 3246: end 3247: 3248: i0, s0 = index, [] 3249: r1 = _nt_day 3250: s0 << r1 3251: if r1 3252: r2 = _nt_month 3253: s0 << r2 3254: if r2 3255: r3 = _nt_year 3256: s0 << r3 3257: end 3258: end 3259: if s0.last 3260: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 3261: r0.extend(Date0) 3262: else 3263: @index = i0 3264: r0 = nil 3265: end 3266: 3267: node_cache[:date][start_index] = r0 3268: 3269: r0 3270: end
# File lib/mail/parsers/rfc2822.rb, line 3000 3000: def _nt_date_time 3001: start_index = index 3002: if node_cache[:date_time].has_key?(index) 3003: cached = node_cache[:date_time][index] 3004: if cached 3005: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3006: @index = cached.interval.end 3007: end 3008: return cached 3009: end 3010: 3011: i0, s0 = index, [] 3012: i2, s2 = index, [] 3013: r3 = _nt_day_of_week 3014: s2 << r3 3015: if r3 3016: if has_terminal?(",", false, index) 3017: r4 = instantiate_node(SyntaxNode,input, index...(index + 1)) 3018: @index += 1 3019: else 3020: terminal_parse_failure(",") 3021: r4 = nil 3022: end 3023: s2 << r4 3024: end 3025: if s2.last 3026: r2 = instantiate_node(SyntaxNode,input, i2...index, s2) 3027: r2.extend(DateTime0) 3028: else 3029: @index = i2 3030: r2 = nil 3031: end 3032: if r2 3033: r1 = r2 3034: else 3035: r1 = instantiate_node(SyntaxNode,input, index...index) 3036: end 3037: s0 << r1 3038: if r1 3039: r5 = _nt_date 3040: s0 << r5 3041: if r5 3042: r6 = _nt_FWS 3043: s0 << r6 3044: if r6 3045: r7 = _nt_time 3046: s0 << r7 3047: if r7 3048: r9 = _nt_CFWS 3049: if r9 3050: r8 = r9 3051: else 3052: r8 = instantiate_node(SyntaxNode,input, index...index) 3053: end 3054: s0 << r8 3055: end 3056: end 3057: end 3058: end 3059: if s0.last 3060: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 3061: r0.extend(DateTime1) 3062: else 3063: @index = i0 3064: r0 = nil 3065: end 3066: 3067: node_cache[:date_time][start_index] = r0 3068: 3069: r0 3070: end
# File lib/mail/parsers/rfc2822.rb, line 3561 3561: def _nt_day 3562: start_index = index 3563: if node_cache[:day].has_key?(index) 3564: cached = node_cache[:day][index] 3565: if cached 3566: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3567: @index = cached.interval.end 3568: end 3569: return cached 3570: end 3571: 3572: i0 = index 3573: i1, s1 = index, [] 3574: r3 = _nt_FWS 3575: if r3 3576: r2 = r3 3577: else 3578: r2 = instantiate_node(SyntaxNode,input, index...index) 3579: end 3580: s1 << r2 3581: if r2 3582: r4 = _nt_DIGIT 3583: s1 << r4 3584: if r4 3585: r6 = _nt_DIGIT 3586: if r6 3587: r5 = r6 3588: else 3589: r5 = instantiate_node(SyntaxNode,input, index...index) 3590: end 3591: s1 << r5 3592: end 3593: end 3594: if s1.last 3595: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 3596: r1.extend(Day0) 3597: else 3598: @index = i1 3599: r1 = nil 3600: end 3601: if r1 3602: r0 = r1 3603: else 3604: r7 = _nt_obs_day 3605: if r7 3606: r0 = r7 3607: else 3608: @index = i0 3609: r0 = nil 3610: end 3611: end 3612: 3613: node_cache[:day][start_index] = r0 3614: 3615: r0 3616: end
# File lib/mail/parsers/rfc2822.rb, line 3126 3126: def _nt_day_name 3127: start_index = index 3128: if node_cache[:day_name].has_key?(index) 3129: cached = node_cache[:day_name][index] 3130: if cached 3131: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3132: @index = cached.interval.end 3133: end 3134: return cached 3135: end 3136: 3137: i0 = index 3138: if has_terminal?("Mon", false, index) 3139: r1 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3140: @index += 3 3141: else 3142: terminal_parse_failure("Mon") 3143: r1 = nil 3144: end 3145: if r1 3146: r0 = r1 3147: else 3148: if has_terminal?("Tue", false, index) 3149: r2 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3150: @index += 3 3151: else 3152: terminal_parse_failure("Tue") 3153: r2 = nil 3154: end 3155: if r2 3156: r0 = r2 3157: else 3158: if has_terminal?("Wed", false, index) 3159: r3 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3160: @index += 3 3161: else 3162: terminal_parse_failure("Wed") 3163: r3 = nil 3164: end 3165: if r3 3166: r0 = r3 3167: else 3168: if has_terminal?("Thu", false, index) 3169: r4 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3170: @index += 3 3171: else 3172: terminal_parse_failure("Thu") 3173: r4 = nil 3174: end 3175: if r4 3176: r0 = r4 3177: else 3178: if has_terminal?("Fri", false, index) 3179: r5 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3180: @index += 3 3181: else 3182: terminal_parse_failure("Fri") 3183: r5 = nil 3184: end 3185: if r5 3186: r0 = r5 3187: else 3188: if has_terminal?("Sat", false, index) 3189: r6 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3190: @index += 3 3191: else 3192: terminal_parse_failure("Sat") 3193: r6 = nil 3194: end 3195: if r6 3196: r0 = r6 3197: else 3198: if has_terminal?("Sun", false, index) 3199: r7 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3200: @index += 3 3201: else 3202: terminal_parse_failure("Sun") 3203: r7 = nil 3204: end 3205: if r7 3206: r0 = r7 3207: else 3208: @index = i0 3209: r0 = nil 3210: end 3211: end 3212: end 3213: end 3214: end 3215: end 3216: end 3217: 3218: node_cache[:day_name][start_index] = r0 3219: 3220: r0 3221: end
# File lib/mail/parsers/rfc2822.rb, line 3078 3078: def _nt_day_of_week 3079: start_index = index 3080: if node_cache[:day_of_week].has_key?(index) 3081: cached = node_cache[:day_of_week][index] 3082: if cached 3083: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3084: @index = cached.interval.end 3085: end 3086: return cached 3087: end 3088: 3089: i0 = index 3090: i1, s1 = index, [] 3091: r3 = _nt_FWS 3092: if r3 3093: r2 = r3 3094: else 3095: r2 = instantiate_node(SyntaxNode,input, index...index) 3096: end 3097: s1 << r2 3098: if r2 3099: r4 = _nt_day_name 3100: s1 << r4 3101: end 3102: if s1.last 3103: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 3104: r1.extend(DayOfWeek0) 3105: else 3106: @index = i1 3107: r1 = nil 3108: end 3109: if r1 3110: r0 = r1 3111: else 3112: r5 = _nt_obs_day_of_week 3113: if r5 3114: r0 = r5 3115: else 3116: @index = i0 3117: r0 = nil 3118: end 3119: end 3120: 3121: node_cache[:day_of_week][start_index] = r0 3122: 3123: r0 3124: end
# File lib/mail/parsers/rfc2822.rb, line 1896 1896: def _nt_dcontent 1897: start_index = index 1898: if node_cache[:dcontent].has_key?(index) 1899: cached = node_cache[:dcontent][index] 1900: if cached 1901: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 1902: @index = cached.interval.end 1903: end 1904: return cached 1905: end 1906: 1907: i0 = index 1908: r1 = _nt_dtext 1909: if r1 1910: r0 = r1 1911: else 1912: r2 = _nt_quoted_pair 1913: if r2 1914: r0 = r2 1915: else 1916: @index = i0 1917: r0 = nil 1918: end 1919: end 1920: 1921: node_cache[:dcontent][start_index] = r0 1922: 1923: r0 1924: end
# File lib/mail/parsers/rfc2822.rb, line 2611 2611: def _nt_display_name 2612: start_index = index 2613: if node_cache[:display_name].has_key?(index) 2614: cached = node_cache[:display_name][index] 2615: if cached 2616: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 2617: @index = cached.interval.end 2618: end 2619: return cached 2620: end 2621: 2622: r0 = _nt_phrase 2623: 2624: node_cache[:display_name][start_index] = r0 2625: 2626: r0 2627: end
# File lib/mail/parsers/rfc2822.rb, line 2153 2153: def _nt_domain 2154: start_index = index 2155: if node_cache[:domain].has_key?(index) 2156: cached = node_cache[:domain][index] 2157: if cached 2158: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 2159: @index = cached.interval.end 2160: end 2161: return cached 2162: end 2163: 2164: i0 = index 2165: r1 = _nt_dot_atom 2166: if r1 2167: r0 = r1 2168: else 2169: r2 = _nt_domain_literal 2170: if r2 2171: r0 = r2 2172: else 2173: r3 = _nt_obs_domain 2174: if r3 2175: r0 = r3 2176: else 2177: @index = i0 2178: r0 = nil 2179: end 2180: end 2181: end 2182: 2183: node_cache[:domain][start_index] = r0 2184: 2185: r0 2186: end
# File lib/mail/parsers/rfc2822.rb, line 1795 1795: def _nt_domain_literal 1796: start_index = index 1797: if node_cache[:domain_literal].has_key?(index) 1798: cached = node_cache[:domain_literal][index] 1799: if cached 1800: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 1801: @index = cached.interval.end 1802: end 1803: return cached 1804: end 1805: 1806: i0, s0 = index, [] 1807: r2 = _nt_CFWS 1808: if r2 1809: r1 = r2 1810: else 1811: r1 = instantiate_node(SyntaxNode,input, index...index) 1812: end 1813: s0 << r1 1814: if r1 1815: if has_terminal?("[", false, index) 1816: r3 = instantiate_node(SyntaxNode,input, index...(index + 1)) 1817: @index += 1 1818: else 1819: terminal_parse_failure("[") 1820: r3 = nil 1821: end 1822: s0 << r3 1823: if r3 1824: s4, i4 = [], index 1825: loop do 1826: i5, s5 = index, [] 1827: r7 = _nt_FWS 1828: if r7 1829: r6 = r7 1830: else 1831: r6 = instantiate_node(SyntaxNode,input, index...index) 1832: end 1833: s5 << r6 1834: if r6 1835: r8 = _nt_dcontent 1836: s5 << r8 1837: end 1838: if s5.last 1839: r5 = instantiate_node(SyntaxNode,input, i5...index, s5) 1840: r5.extend(DomainLiteral0) 1841: else 1842: @index = i5 1843: r5 = nil 1844: end 1845: if r5 1846: s4 << r5 1847: else 1848: break 1849: end 1850: end 1851: r4 = instantiate_node(SyntaxNode,input, i4...index, s4) 1852: s0 << r4 1853: if r4 1854: r10 = _nt_FWS 1855: if r10 1856: r9 = r10 1857: else 1858: r9 = instantiate_node(SyntaxNode,input, index...index) 1859: end 1860: s0 << r9 1861: if r9 1862: if has_terminal?("]", false, index) 1863: r11 = instantiate_node(SyntaxNode,input, index...(index + 1)) 1864: @index += 1 1865: else 1866: terminal_parse_failure("]") 1867: r11 = nil 1868: end 1869: s0 << r11 1870: if r11 1871: r13 = _nt_CFWS 1872: if r13 1873: r12 = r13 1874: else 1875: r12 = instantiate_node(SyntaxNode,input, index...index) 1876: end 1877: s0 << r12 1878: end 1879: end 1880: end 1881: end 1882: end 1883: if s0.last 1884: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 1885: r0.extend(DomainLiteral1) 1886: else 1887: @index = i0 1888: r0 = nil 1889: end 1890: 1891: node_cache[:domain_literal][start_index] = r0 1892: 1893: r0 1894: end
# File lib/mail/parsers/rfc2822.rb, line 1402 1402: def _nt_domain_text 1403: start_index = index 1404: if node_cache[:domain_text].has_key?(index) 1405: cached = node_cache[:domain_text][index] 1406: if cached 1407: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 1408: @index = cached.interval.end 1409: end 1410: return cached 1411: end 1412: 1413: i0 = index 1414: i1, s1 = index, [] 1415: r2 = _nt_DQUOTE 1416: s1 << r2 1417: if r2 1418: s3, i3 = [], index 1419: loop do 1420: i4, s4 = index, [] 1421: r6 = _nt_FWS 1422: if r6 1423: r5 = r6 1424: else 1425: r5 = instantiate_node(SyntaxNode,input, index...index) 1426: end 1427: s4 << r5 1428: if r5 1429: r7 = _nt_quoted_domain 1430: s4 << r7 1431: end 1432: if s4.last 1433: r4 = instantiate_node(SyntaxNode,input, i4...index, s4) 1434: r4.extend(DomainText0) 1435: else 1436: @index = i4 1437: r4 = nil 1438: end 1439: if r4 1440: s3 << r4 1441: else 1442: break 1443: end 1444: end 1445: if s3.empty? 1446: @index = i3 1447: r3 = nil 1448: else 1449: r3 = instantiate_node(SyntaxNode,input, i3...index, s3) 1450: end 1451: s1 << r3 1452: if r3 1453: r9 = _nt_FWS 1454: if r9 1455: r8 = r9 1456: else 1457: r8 = instantiate_node(SyntaxNode,input, index...index) 1458: end 1459: s1 << r8 1460: if r8 1461: r10 = _nt_DQUOTE 1462: s1 << r10 1463: end 1464: end 1465: end 1466: if s1.last 1467: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 1468: r1.extend(DomainText1) 1469: else 1470: @index = i1 1471: r1 = nil 1472: end 1473: if r1 1474: r0 = r1 1475: else 1476: s11, i11 = [], index 1477: loop do 1478: r12 = _nt_atext 1479: if r12 1480: s11 << r12 1481: else 1482: break 1483: end 1484: end 1485: if s11.empty? 1486: @index = i11 1487: r11 = nil 1488: else 1489: r11 = instantiate_node(SyntaxNode,input, i11...index, s11) 1490: end 1491: if r11 1492: r0 = r11 1493: else 1494: @index = i0 1495: r0 = nil 1496: end 1497: end 1498: 1499: node_cache[:domain_text][start_index] = r0 1500: 1501: r0 1502: end
# File lib/mail/parsers/rfc2822.rb, line 1128 1128: def _nt_dot_atom 1129: start_index = index 1130: if node_cache[:dot_atom].has_key?(index) 1131: cached = node_cache[:dot_atom][index] 1132: if cached 1133: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 1134: @index = cached.interval.end 1135: end 1136: return cached 1137: end 1138: 1139: i0, s0 = index, [] 1140: r2 = _nt_CFWS 1141: if r2 1142: r1 = r2 1143: else 1144: r1 = instantiate_node(SyntaxNode,input, index...index) 1145: end 1146: s0 << r1 1147: if r1 1148: r3 = _nt_dot_atom_text 1149: s0 << r3 1150: if r3 1151: r5 = _nt_CFWS 1152: if r5 1153: r4 = r5 1154: else 1155: r4 = instantiate_node(SyntaxNode,input, index...index) 1156: end 1157: s0 << r4 1158: end 1159: end 1160: if s0.last 1161: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 1162: r0.extend(DotAtom0) 1163: else 1164: @index = i0 1165: r0 = nil 1166: end 1167: 1168: node_cache[:dot_atom][start_index] = r0 1169: 1170: r0 1171: end
# File lib/mail/parsers/rfc2822.rb, line 1264 1264: def _nt_dot_atom_text 1265: start_index = index 1266: if node_cache[:dot_atom_text].has_key?(index) 1267: cached = node_cache[:dot_atom_text][index] 1268: if cached 1269: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 1270: @index = cached.interval.end 1271: end 1272: return cached 1273: end 1274: 1275: s0, i0 = [], index 1276: loop do 1277: i1, s1 = index, [] 1278: r2 = _nt_domain_text 1279: s1 << r2 1280: if r2 1281: if has_terminal?(".", false, index) 1282: r4 = instantiate_node(SyntaxNode,input, index...(index + 1)) 1283: @index += 1 1284: else 1285: terminal_parse_failure(".") 1286: r4 = nil 1287: end 1288: if r4 1289: r3 = r4 1290: else 1291: r3 = instantiate_node(SyntaxNode,input, index...index) 1292: end 1293: s1 << r3 1294: end 1295: if s1.last 1296: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 1297: r1.extend(DotAtomText0) 1298: else 1299: @index = i1 1300: r1 = nil 1301: end 1302: if r1 1303: s0 << r1 1304: else 1305: break 1306: end 1307: end 1308: if s0.empty? 1309: @index = i0 1310: r0 = nil 1311: else 1312: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 1313: end 1314: 1315: node_cache[:dot_atom_text][start_index] = r0 1316: 1317: r0 1318: end
# File lib/mail/parsers/rfc2822.rb, line 1926 1926: def _nt_dtext 1927: start_index = index 1928: if node_cache[:dtext].has_key?(index) 1929: cached = node_cache[:dtext][index] 1930: if cached 1931: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 1932: @index = cached.interval.end 1933: end 1934: return cached 1935: end 1936: 1937: i0 = index 1938: r1 = _nt_NO_WS_CTL 1939: if r1 1940: r0 = r1 1941: else 1942: if has_terminal?('\G[\x21-\x5a]', true, index) 1943: r2 = true 1944: @index += 1 1945: else 1946: r2 = nil 1947: end 1948: if r2 1949: r0 = r2 1950: else 1951: if has_terminal?('\G[\x5e-\x7e]', true, index) 1952: r3 = true 1953: @index += 1 1954: else 1955: r3 = nil 1956: end 1957: if r3 1958: r0 = r3 1959: else 1960: @index = i0 1961: r0 = nil 1962: end 1963: end 1964: end 1965: 1966: node_cache[:dtext][start_index] = r0 1967: 1968: r0 1969: end
# File lib/mail/parsers/rfc2822.rb, line 2199 2199: def _nt_group 2200: start_index = index 2201: if node_cache[:group].has_key?(index) 2202: cached = node_cache[:group][index] 2203: if cached 2204: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 2205: @index = cached.interval.end 2206: end 2207: return cached 2208: end 2209: 2210: i0, s0 = index, [] 2211: r1 = _nt_display_name 2212: s0 << r1 2213: if r1 2214: if has_terminal?(":", false, index) 2215: r2 = instantiate_node(SyntaxNode,input, index...(index + 1)) 2216: @index += 1 2217: else 2218: terminal_parse_failure(":") 2219: r2 = nil 2220: end 2221: s0 << r2 2222: if r2 2223: i4 = index 2224: r5 = _nt_mailbox_list_group 2225: if r5 2226: r4 = r5 2227: else 2228: r6 = _nt_CFWS 2229: if r6 2230: r4 = r6 2231: else 2232: @index = i4 2233: r4 = nil 2234: end 2235: end 2236: if r4 2237: r3 = r4 2238: else 2239: r3 = instantiate_node(SyntaxNode,input, index...index) 2240: end 2241: s0 << r3 2242: if r3 2243: if has_terminal?(";", false, index) 2244: r7 = instantiate_node(SyntaxNode,input, index...(index + 1)) 2245: @index += 1 2246: else 2247: terminal_parse_failure(";") 2248: r7 = nil 2249: end 2250: s0 << r7 2251: if r7 2252: r9 = _nt_CFWS 2253: if r9 2254: r8 = r9 2255: else 2256: r8 = instantiate_node(SyntaxNode,input, index...index) 2257: end 2258: s0 << r8 2259: end 2260: end 2261: end 2262: end 2263: if s0.last 2264: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 2265: r0.extend(Group0) 2266: else 2267: @index = i0 2268: r0 = nil 2269: end 2270: 2271: node_cache[:group][start_index] = r0 2272: 2273: r0 2274: end
# File lib/mail/parsers/rfc2822.rb, line 3763 3763: def _nt_hour 3764: start_index = index 3765: if node_cache[:hour].has_key?(index) 3766: cached = node_cache[:hour][index] 3767: if cached 3768: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3769: @index = cached.interval.end 3770: end 3771: return cached 3772: end 3773: 3774: i0 = index 3775: i1, s1 = index, [] 3776: r2 = _nt_DIGIT 3777: s1 << r2 3778: if r2 3779: r3 = _nt_DIGIT 3780: s1 << r3 3781: end 3782: if s1.last 3783: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 3784: r1.extend(Hour0) 3785: else 3786: @index = i1 3787: r1 = nil 3788: end 3789: if r1 3790: r0 = r1 3791: else 3792: r4 = _nt_obs_hour 3793: if r4 3794: r0 = r4 3795: else 3796: @index = i0 3797: r0 = nil 3798: end 3799: end 3800: 3801: node_cache[:hour][start_index] = r0 3802: 3803: r0 3804: end
# File lib/mail/parsers/rfc2822.rb, line 4687 4687: def _nt_id_left 4688: start_index = index 4689: if node_cache[:id_left].has_key?(index) 4690: cached = node_cache[:id_left][index] 4691: if cached 4692: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4693: @index = cached.interval.end 4694: end 4695: return cached 4696: end 4697: 4698: i0 = index 4699: r1 = _nt_message_id_text 4700: if r1 4701: r0 = r1 4702: else 4703: r2 = _nt_no_fold_quote 4704: if r2 4705: r0 = r2 4706: else 4707: r3 = _nt_obs_id_left 4708: if r3 4709: r0 = r3 4710: else 4711: @index = i0 4712: r0 = nil 4713: end 4714: end 4715: end 4716: 4717: node_cache[:id_left][start_index] = r0 4718: 4719: r0 4720: end
# File lib/mail/parsers/rfc2822.rb, line 4722 4722: def _nt_id_right 4723: start_index = index 4724: if node_cache[:id_right].has_key?(index) 4725: cached = node_cache[:id_right][index] 4726: if cached 4727: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4728: @index = cached.interval.end 4729: end 4730: return cached 4731: end 4732: 4733: i0 = index 4734: r1 = _nt_msg_id_dot_atom_text 4735: if r1 4736: r0 = r1 4737: else 4738: r2 = _nt_no_fold_literal 4739: if r2 4740: r0 = r2 4741: else 4742: r3 = _nt_obs_id_right 4743: if r3 4744: r0 = r3 4745: else 4746: @index = i0 4747: r0 = nil 4748: end 4749: end 4750: end 4751: 4752: node_cache[:id_right][start_index] = r0 4753: 4754: r0 4755: end
# File lib/mail/parsers/rfc2822.rb, line 4356 4356: def _nt_item_name 4357: start_index = index 4358: if node_cache[:item_name].has_key?(index) 4359: cached = node_cache[:item_name][index] 4360: if cached 4361: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4362: @index = cached.interval.end 4363: end 4364: return cached 4365: end 4366: 4367: i0, s0 = index, [] 4368: r1 = _nt_ALPHA 4369: s0 << r1 4370: if r1 4371: s2, i2 = [], index 4372: loop do 4373: i3, s3 = index, [] 4374: if has_terminal?("-", false, index) 4375: r5 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4376: @index += 1 4377: else 4378: terminal_parse_failure("-") 4379: r5 = nil 4380: end 4381: if r5 4382: r4 = r5 4383: else 4384: r4 = instantiate_node(SyntaxNode,input, index...index) 4385: end 4386: s3 << r4 4387: if r4 4388: i6 = index 4389: r7 = _nt_ALPHA 4390: if r7 4391: r6 = r7 4392: else 4393: r8 = _nt_DIGIT 4394: if r8 4395: r6 = r8 4396: else 4397: @index = i6 4398: r6 = nil 4399: end 4400: end 4401: s3 << r6 4402: end 4403: if s3.last 4404: r3 = instantiate_node(SyntaxNode,input, i3...index, s3) 4405: r3.extend(ItemName0) 4406: else 4407: @index = i3 4408: r3 = nil 4409: end 4410: if r3 4411: s2 << r3 4412: else 4413: break 4414: end 4415: end 4416: r2 = instantiate_node(SyntaxNode,input, i2...index, s2) 4417: s0 << r2 4418: end 4419: if s0.last 4420: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 4421: r0.extend(ItemName1) 4422: else 4423: @index = i0 4424: r0 = nil 4425: end 4426: 4427: node_cache[:item_name][start_index] = r0 4428: 4429: r0 4430: end
# File lib/mail/parsers/rfc2822.rb, line 4432 4432: def _nt_item_value 4433: start_index = index 4434: if node_cache[:item_value].has_key?(index) 4435: cached = node_cache[:item_value][index] 4436: if cached 4437: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4438: @index = cached.interval.end 4439: end 4440: return cached 4441: end 4442: 4443: i0 = index 4444: s1, i1 = [], index 4445: loop do 4446: r2 = _nt_angle_addr 4447: if r2 4448: s1 << r2 4449: else 4450: break 4451: end 4452: end 4453: if s1.empty? 4454: @index = i1 4455: r1 = nil 4456: else 4457: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 4458: end 4459: if r1 4460: r0 = r1 4461: else 4462: r3 = _nt_addr_spec 4463: if r3 4464: r0 = r3 4465: else 4466: r4 = _nt_atom 4467: if r4 4468: r0 = r4 4469: else 4470: r5 = _nt_domain 4471: if r5 4472: r0 = r5 4473: else 4474: r6 = _nt_msg_id 4475: if r6 4476: r0 = r6 4477: else 4478: @index = i0 4479: r0 = nil 4480: end 4481: end 4482: end 4483: end 4484: end 4485: 4486: node_cache[:item_value][start_index] = r0 4487: 4488: r0 4489: end
# File lib/mail/parsers/rfc2822.rb, line 1180 1180: def _nt_local_dot_atom 1181: start_index = index 1182: if node_cache[:local_dot_atom].has_key?(index) 1183: cached = node_cache[:local_dot_atom][index] 1184: if cached 1185: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 1186: @index = cached.interval.end 1187: end 1188: return cached 1189: end 1190: 1191: i0, s0 = index, [] 1192: r2 = _nt_CFWS 1193: if r2 1194: r1 = r2 1195: else 1196: r1 = instantiate_node(SyntaxNode,input, index...index) 1197: end 1198: s0 << r1 1199: if r1 1200: r3 = _nt_local_dot_atom_text 1201: s0 << r3 1202: if r3 1203: r5 = _nt_CFWS 1204: if r5 1205: r4 = r5 1206: else 1207: r4 = instantiate_node(SyntaxNode,input, index...index) 1208: end 1209: s0 << r4 1210: end 1211: end 1212: if s0.last 1213: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 1214: r0.extend(LocalDotAtom0) 1215: else 1216: @index = i0 1217: r0 = nil 1218: end 1219: 1220: node_cache[:local_dot_atom][start_index] = r0 1221: 1222: r0 1223: end
# File lib/mail/parsers/rfc2822.rb, line 1326 1326: def _nt_local_dot_atom_text 1327: start_index = index 1328: if node_cache[:local_dot_atom_text].has_key?(index) 1329: cached = node_cache[:local_dot_atom_text][index] 1330: if cached 1331: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 1332: @index = cached.interval.end 1333: end 1334: return cached 1335: end 1336: 1337: s0, i0 = [], index 1338: loop do 1339: i1, s1 = index, [] 1340: s2, i2 = [], index 1341: loop do 1342: if has_terminal?(".", false, index) 1343: r3 = instantiate_node(SyntaxNode,input, index...(index + 1)) 1344: @index += 1 1345: else 1346: terminal_parse_failure(".") 1347: r3 = nil 1348: end 1349: if r3 1350: s2 << r3 1351: else 1352: break 1353: end 1354: end 1355: r2 = instantiate_node(SyntaxNode,input, i2...index, s2) 1356: s1 << r2 1357: if r2 1358: r4 = _nt_domain_text 1359: s1 << r4 1360: end 1361: if s1.last 1362: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 1363: r1.extend(LocalDotAtomText0) 1364: else 1365: @index = i1 1366: r1 = nil 1367: end 1368: if r1 1369: s0 << r1 1370: else 1371: break 1372: end 1373: end 1374: if s0.empty? 1375: @index = i0 1376: r0 = nil 1377: else 1378: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 1379: end 1380: 1381: node_cache[:local_dot_atom_text][start_index] = r0 1382: 1383: r0 1384: end
# File lib/mail/parsers/rfc2822.rb, line 2118 2118: def _nt_local_part 2119: start_index = index 2120: if node_cache[:local_part].has_key?(index) 2121: cached = node_cache[:local_part][index] 2122: if cached 2123: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 2124: @index = cached.interval.end 2125: end 2126: return cached 2127: end 2128: 2129: i0 = index 2130: r1 = _nt_local_dot_atom 2131: if r1 2132: r0 = r1 2133: else 2134: r2 = _nt_quoted_string 2135: if r2 2136: r0 = r2 2137: else 2138: r3 = _nt_obs_local_part 2139: if r3 2140: r0 = r3 2141: else 2142: @index = i0 2143: r0 = nil 2144: end 2145: end 2146: end 2147: 2148: node_cache[:local_part][start_index] = r0 2149: 2150: r0 2151: end
# File lib/mail/parsers/rfc2822.rb, line 2769 2769: def _nt_mailbox 2770: start_index = index 2771: if node_cache[:mailbox].has_key?(index) 2772: cached = node_cache[:mailbox][index] 2773: if cached 2774: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 2775: @index = cached.interval.end 2776: end 2777: return cached 2778: end 2779: 2780: i0 = index 2781: r1 = _nt_name_addr 2782: if r1 2783: r0 = r1 2784: else 2785: r2 = _nt_addr_spec 2786: if r2 2787: r0 = r2 2788: else 2789: @index = i0 2790: r0 = nil 2791: end 2792: end 2793: 2794: node_cache[:mailbox][start_index] = r0 2795: 2796: r0 2797: end
# File lib/mail/parsers/rfc2822.rb, line 2698 2698: def _nt_mailbox_list 2699: start_index = index 2700: if node_cache[:mailbox_list].has_key?(index) 2701: cached = node_cache[:mailbox_list][index] 2702: if cached 2703: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 2704: @index = cached.interval.end 2705: end 2706: return cached 2707: end 2708: 2709: i0 = index 2710: i1, s1 = index, [] 2711: r2 = _nt_mailbox 2712: s1 << r2 2713: if r2 2714: s3, i3 = [], index 2715: loop do 2716: i4, s4 = index, [] 2717: if has_terminal?(",", false, index) 2718: r5 = instantiate_node(SyntaxNode,input, index...(index + 1)) 2719: @index += 1 2720: else 2721: terminal_parse_failure(",") 2722: r5 = nil 2723: end 2724: s4 << r5 2725: if r5 2726: r6 = _nt_mailbox 2727: s4 << r6 2728: end 2729: if s4.last 2730: r4 = instantiate_node(SyntaxNode,input, i4...index, s4) 2731: r4.extend(MailboxList0) 2732: else 2733: @index = i4 2734: r4 = nil 2735: end 2736: if r4 2737: s3 << r4 2738: else 2739: break 2740: end 2741: end 2742: r3 = instantiate_node(SyntaxNode,input, i3...index, s3) 2743: s1 << r3 2744: end 2745: if s1.last 2746: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 2747: r1.extend(MailboxList1) 2748: else 2749: @index = i1 2750: r1 = nil 2751: end 2752: if r1 2753: r0 = r1 2754: else 2755: r7 = _nt_obs_mbox_list 2756: if r7 2757: r0 = r7 2758: else 2759: @index = i0 2760: r0 = nil 2761: end 2762: end 2763: 2764: node_cache[:mailbox_list][start_index] = r0 2765: 2766: r0 2767: end
# File lib/mail/parsers/rfc2822.rb, line 2282 2282: def _nt_mailbox_list_group 2283: start_index = index 2284: if node_cache[:mailbox_list_group].has_key?(index) 2285: cached = node_cache[:mailbox_list_group][index] 2286: if cached 2287: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 2288: @index = cached.interval.end 2289: end 2290: return cached 2291: end 2292: 2293: r0 = _nt_mailbox_list 2294: r0.extend(MailboxListGroup0) 2295: 2296: node_cache[:mailbox_list_group][start_index] = r0 2297: 2298: r0 2299: end
# File lib/mail/parsers/rfc2822.rb, line 1225 1225: def _nt_message_id_text 1226: start_index = index 1227: if node_cache[:message_id_text].has_key?(index) 1228: cached = node_cache[:message_id_text][index] 1229: if cached 1230: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 1231: @index = cached.interval.end 1232: end 1233: return cached 1234: end 1235: 1236: s0, i0 = [], index 1237: loop do 1238: r1 = _nt_mtext 1239: if r1 1240: s0 << r1 1241: else 1242: break 1243: end 1244: end 1245: if s0.empty? 1246: @index = i0 1247: r0 = nil 1248: else 1249: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 1250: end 1251: 1252: node_cache[:message_id_text][start_index] = r0 1253: 1254: r0 1255: end
# File lib/mail/parsers/rfc2822.rb, line 4511 4511: def _nt_message_ids 4512: start_index = index 4513: if node_cache[:message_ids].has_key?(index) 4514: cached = node_cache[:message_ids][index] 4515: if cached 4516: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4517: @index = cached.interval.end 4518: end 4519: return cached 4520: end 4521: 4522: i0, s0 = index, [] 4523: r1 = _nt_msg_id 4524: s0 << r1 4525: if r1 4526: s2, i2 = [], index 4527: loop do 4528: i3, s3 = index, [] 4529: r4 = _nt_CFWS 4530: s3 << r4 4531: if r4 4532: r5 = _nt_msg_id 4533: s3 << r5 4534: end 4535: if s3.last 4536: r3 = instantiate_node(SyntaxNode,input, i3...index, s3) 4537: r3.extend(MessageIds0) 4538: else 4539: @index = i3 4540: r3 = nil 4541: end 4542: if r3 4543: s2 << r3 4544: else 4545: break 4546: end 4547: end 4548: r2 = instantiate_node(SyntaxNode,input, i2...index, s2) 4549: s0 << r2 4550: end 4551: if s0.last 4552: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 4553: r0.extend(MessageIds1) 4554: else 4555: @index = i0 4556: r0 = nil 4557: end 4558: 4559: node_cache[:message_ids][start_index] = r0 4560: 4561: r0 4562: end
# File lib/mail/parsers/rfc2822.rb, line 3816 3816: def _nt_minute 3817: start_index = index 3818: if node_cache[:minute].has_key?(index) 3819: cached = node_cache[:minute][index] 3820: if cached 3821: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3822: @index = cached.interval.end 3823: end 3824: return cached 3825: end 3826: 3827: i0 = index 3828: i1, s1 = index, [] 3829: r2 = _nt_DIGIT 3830: s1 << r2 3831: if r2 3832: r3 = _nt_DIGIT 3833: s1 << r3 3834: end 3835: if s1.last 3836: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 3837: r1.extend(Minute0) 3838: else 3839: @index = i1 3840: r1 = nil 3841: end 3842: if r1 3843: r0 = r1 3844: else 3845: r4 = _nt_obs_minute 3846: if r4 3847: r0 = r4 3848: else 3849: @index = i0 3850: r0 = nil 3851: end 3852: end 3853: 3854: node_cache[:minute][start_index] = r0 3855: 3856: r0 3857: end
# File lib/mail/parsers/rfc2822.rb, line 3355 3355: def _nt_month 3356: start_index = index 3357: if node_cache[:month].has_key?(index) 3358: cached = node_cache[:month][index] 3359: if cached 3360: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3361: @index = cached.interval.end 3362: end 3363: return cached 3364: end 3365: 3366: i0 = index 3367: i1, s1 = index, [] 3368: r2 = _nt_FWS 3369: s1 << r2 3370: if r2 3371: r3 = _nt_month_name 3372: s1 << r3 3373: if r3 3374: r4 = _nt_FWS 3375: s1 << r4 3376: end 3377: end 3378: if s1.last 3379: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 3380: r1.extend(Month0) 3381: else 3382: @index = i1 3383: r1 = nil 3384: end 3385: if r1 3386: r0 = r1 3387: else 3388: r5 = _nt_obs_month 3389: if r5 3390: r0 = r5 3391: else 3392: @index = i0 3393: r0 = nil 3394: end 3395: end 3396: 3397: node_cache[:month][start_index] = r0 3398: 3399: r0 3400: end
# File lib/mail/parsers/rfc2822.rb, line 3402 3402: def _nt_month_name 3403: start_index = index 3404: if node_cache[:month_name].has_key?(index) 3405: cached = node_cache[:month_name][index] 3406: if cached 3407: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3408: @index = cached.interval.end 3409: end 3410: return cached 3411: end 3412: 3413: i0 = index 3414: if has_terminal?("Jan", false, index) 3415: r1 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3416: @index += 3 3417: else 3418: terminal_parse_failure("Jan") 3419: r1 = nil 3420: end 3421: if r1 3422: r0 = r1 3423: else 3424: if has_terminal?("Feb", false, index) 3425: r2 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3426: @index += 3 3427: else 3428: terminal_parse_failure("Feb") 3429: r2 = nil 3430: end 3431: if r2 3432: r0 = r2 3433: else 3434: if has_terminal?("Mar", false, index) 3435: r3 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3436: @index += 3 3437: else 3438: terminal_parse_failure("Mar") 3439: r3 = nil 3440: end 3441: if r3 3442: r0 = r3 3443: else 3444: if has_terminal?("Apr", false, index) 3445: r4 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3446: @index += 3 3447: else 3448: terminal_parse_failure("Apr") 3449: r4 = nil 3450: end 3451: if r4 3452: r0 = r4 3453: else 3454: if has_terminal?("May", false, index) 3455: r5 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3456: @index += 3 3457: else 3458: terminal_parse_failure("May") 3459: r5 = nil 3460: end 3461: if r5 3462: r0 = r5 3463: else 3464: if has_terminal?("Jun", false, index) 3465: r6 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3466: @index += 3 3467: else 3468: terminal_parse_failure("Jun") 3469: r6 = nil 3470: end 3471: if r6 3472: r0 = r6 3473: else 3474: if has_terminal?("Jul", false, index) 3475: r7 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3476: @index += 3 3477: else 3478: terminal_parse_failure("Jul") 3479: r7 = nil 3480: end 3481: if r7 3482: r0 = r7 3483: else 3484: if has_terminal?("Aug", false, index) 3485: r8 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3486: @index += 3 3487: else 3488: terminal_parse_failure("Aug") 3489: r8 = nil 3490: end 3491: if r8 3492: r0 = r8 3493: else 3494: if has_terminal?("Sep", false, index) 3495: r9 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3496: @index += 3 3497: else 3498: terminal_parse_failure("Sep") 3499: r9 = nil 3500: end 3501: if r9 3502: r0 = r9 3503: else 3504: if has_terminal?("Oct", false, index) 3505: r10 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3506: @index += 3 3507: else 3508: terminal_parse_failure("Oct") 3509: r10 = nil 3510: end 3511: if r10 3512: r0 = r10 3513: else 3514: if has_terminal?("Nov", false, index) 3515: r11 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3516: @index += 3 3517: else 3518: terminal_parse_failure("Nov") 3519: r11 = nil 3520: end 3521: if r11 3522: r0 = r11 3523: else 3524: if has_terminal?("Dec", false, index) 3525: r12 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3526: @index += 3 3527: else 3528: terminal_parse_failure("Dec") 3529: r12 = nil 3530: end 3531: if r12 3532: r0 = r12 3533: else 3534: @index = i0 3535: r0 = nil 3536: end 3537: end 3538: end 3539: end 3540: end 3541: end 3542: end 3543: end 3544: end 3545: end 3546: end 3547: end 3548: 3549: node_cache[:month_name][start_index] = r0 3550: 3551: r0 3552: end
# File lib/mail/parsers/rfc2822.rb, line 4571 4571: def _nt_msg_id 4572: start_index = index 4573: if node_cache[:msg_id].has_key?(index) 4574: cached = node_cache[:msg_id][index] 4575: if cached 4576: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4577: @index = cached.interval.end 4578: end 4579: return cached 4580: end 4581: 4582: i0, s0 = index, [] 4583: r2 = _nt_CFWS 4584: if r2 4585: r1 = r2 4586: else 4587: r1 = instantiate_node(SyntaxNode,input, index...index) 4588: end 4589: s0 << r1 4590: if r1 4591: if has_terminal?("<", false, index) 4592: r3 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4593: @index += 1 4594: else 4595: terminal_parse_failure("<") 4596: r3 = nil 4597: end 4598: s0 << r3 4599: if r3 4600: r4 = _nt_msg_id_value 4601: s0 << r4 4602: if r4 4603: if has_terminal?(">", false, index) 4604: r5 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4605: @index += 1 4606: else 4607: terminal_parse_failure(">") 4608: r5 = nil 4609: end 4610: s0 << r5 4611: if r5 4612: r7 = _nt_CFWS 4613: if r7 4614: r6 = r7 4615: else 4616: r6 = instantiate_node(SyntaxNode,input, index...index) 4617: end 4618: s0 << r6 4619: end 4620: end 4621: end 4622: end 4623: if s0.last 4624: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 4625: r0.extend(MsgId0) 4626: else 4627: @index = i0 4628: r0 = nil 4629: end 4630: 4631: node_cache[:msg_id][start_index] = r0 4632: 4633: r0 4634: end
# File lib/mail/parsers/rfc2822.rb, line 4938 4938: def _nt_msg_id_atext 4939: start_index = index 4940: if node_cache[:msg_id_atext].has_key?(index) 4941: cached = node_cache[:msg_id_atext][index] 4942: if cached 4943: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4944: @index = cached.interval.end 4945: end 4946: return cached 4947: end 4948: 4949: i0 = index 4950: r1 = _nt_ALPHA 4951: if r1 4952: r0 = r1 4953: else 4954: r2 = _nt_DIGIT 4955: if r2 4956: r0 = r2 4957: else 4958: if has_terminal?("!", false, index) 4959: r3 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4960: @index += 1 4961: else 4962: terminal_parse_failure("!") 4963: r3 = nil 4964: end 4965: if r3 4966: r0 = r3 4967: else 4968: if has_terminal?("#", false, index) 4969: r4 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4970: @index += 1 4971: else 4972: terminal_parse_failure("#") 4973: r4 = nil 4974: end 4975: if r4 4976: r0 = r4 4977: else 4978: if has_terminal?("$", false, index) 4979: r5 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4980: @index += 1 4981: else 4982: terminal_parse_failure("$") 4983: r5 = nil 4984: end 4985: if r5 4986: r0 = r5 4987: else 4988: if has_terminal?("%", false, index) 4989: r6 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4990: @index += 1 4991: else 4992: terminal_parse_failure("%") 4993: r6 = nil 4994: end 4995: if r6 4996: r0 = r6 4997: else 4998: if has_terminal?("&", false, index) 4999: r7 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5000: @index += 1 5001: else 5002: terminal_parse_failure("&") 5003: r7 = nil 5004: end 5005: if r7 5006: r0 = r7 5007: else 5008: if has_terminal?("'", false, index) 5009: r8 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5010: @index += 1 5011: else 5012: terminal_parse_failure("'") 5013: r8 = nil 5014: end 5015: if r8 5016: r0 = r8 5017: else 5018: if has_terminal?("*", false, index) 5019: r9 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5020: @index += 1 5021: else 5022: terminal_parse_failure("*") 5023: r9 = nil 5024: end 5025: if r9 5026: r0 = r9 5027: else 5028: if has_terminal?("+", false, index) 5029: r10 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5030: @index += 1 5031: else 5032: terminal_parse_failure("+") 5033: r10 = nil 5034: end 5035: if r10 5036: r0 = r10 5037: else 5038: if has_terminal?("-", false, index) 5039: r11 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5040: @index += 1 5041: else 5042: terminal_parse_failure("-") 5043: r11 = nil 5044: end 5045: if r11 5046: r0 = r11 5047: else 5048: if has_terminal?("/", false, index) 5049: r12 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5050: @index += 1 5051: else 5052: terminal_parse_failure("/") 5053: r12 = nil 5054: end 5055: if r12 5056: r0 = r12 5057: else 5058: if has_terminal?("=", false, index) 5059: r13 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5060: @index += 1 5061: else 5062: terminal_parse_failure("=") 5063: r13 = nil 5064: end 5065: if r13 5066: r0 = r13 5067: else 5068: if has_terminal?("?", false, index) 5069: r14 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5070: @index += 1 5071: else 5072: terminal_parse_failure("?") 5073: r14 = nil 5074: end 5075: if r14 5076: r0 = r14 5077: else 5078: if has_terminal?("^", false, index) 5079: r15 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5080: @index += 1 5081: else 5082: terminal_parse_failure("^") 5083: r15 = nil 5084: end 5085: if r15 5086: r0 = r15 5087: else 5088: if has_terminal?("_", false, index) 5089: r16 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5090: @index += 1 5091: else 5092: terminal_parse_failure("_") 5093: r16 = nil 5094: end 5095: if r16 5096: r0 = r16 5097: else 5098: if has_terminal?("`", false, index) 5099: r17 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5100: @index += 1 5101: else 5102: terminal_parse_failure("`") 5103: r17 = nil 5104: end 5105: if r17 5106: r0 = r17 5107: else 5108: if has_terminal?("{", false, index) 5109: r18 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5110: @index += 1 5111: else 5112: terminal_parse_failure("{") 5113: r18 = nil 5114: end 5115: if r18 5116: r0 = r18 5117: else 5118: if has_terminal?("|", false, index) 5119: r19 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5120: @index += 1 5121: else 5122: terminal_parse_failure("|") 5123: r19 = nil 5124: end 5125: if r19 5126: r0 = r19 5127: else 5128: if has_terminal?("}", false, index) 5129: r20 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5130: @index += 1 5131: else 5132: terminal_parse_failure("}") 5133: r20 = nil 5134: end 5135: if r20 5136: r0 = r20 5137: else 5138: if has_terminal?("~", false, index) 5139: r21 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5140: @index += 1 5141: else 5142: terminal_parse_failure("~") 5143: r21 = nil 5144: end 5145: if r21 5146: r0 = r21 5147: else 5148: if has_terminal?("@", false, index) 5149: r22 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5150: @index += 1 5151: else 5152: terminal_parse_failure("@") 5153: r22 = nil 5154: end 5155: if r22 5156: r0 = r22 5157: else 5158: @index = i0 5159: r0 = nil 5160: end 5161: end 5162: end 5163: end 5164: end 5165: end 5166: end 5167: end 5168: end 5169: end 5170: end 5171: end 5172: end 5173: end 5174: end 5175: end 5176: end 5177: end 5178: end 5179: end 5180: end 5181: end 5182: 5183: node_cache[:msg_id_atext][start_index] = r0 5184: 5185: r0 5186: end
# File lib/mail/parsers/rfc2822.rb, line 4836 4836: def _nt_msg_id_domain_text 4837: start_index = index 4838: if node_cache[:msg_id_domain_text].has_key?(index) 4839: cached = node_cache[:msg_id_domain_text][index] 4840: if cached 4841: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4842: @index = cached.interval.end 4843: end 4844: return cached 4845: end 4846: 4847: i0 = index 4848: i1, s1 = index, [] 4849: r2 = _nt_DQUOTE 4850: s1 << r2 4851: if r2 4852: s3, i3 = [], index 4853: loop do 4854: i4, s4 = index, [] 4855: r6 = _nt_FWS 4856: if r6 4857: r5 = r6 4858: else 4859: r5 = instantiate_node(SyntaxNode,input, index...index) 4860: end 4861: s4 << r5 4862: if r5 4863: r7 = _nt_quoted_domain 4864: s4 << r7 4865: end 4866: if s4.last 4867: r4 = instantiate_node(SyntaxNode,input, i4...index, s4) 4868: r4.extend(MsgIdDomainText0) 4869: else 4870: @index = i4 4871: r4 = nil 4872: end 4873: if r4 4874: s3 << r4 4875: else 4876: break 4877: end 4878: end 4879: if s3.empty? 4880: @index = i3 4881: r3 = nil 4882: else 4883: r3 = instantiate_node(SyntaxNode,input, i3...index, s3) 4884: end 4885: s1 << r3 4886: if r3 4887: r9 = _nt_FWS 4888: if r9 4889: r8 = r9 4890: else 4891: r8 = instantiate_node(SyntaxNode,input, index...index) 4892: end 4893: s1 << r8 4894: if r8 4895: r10 = _nt_DQUOTE 4896: s1 << r10 4897: end 4898: end 4899: end 4900: if s1.last 4901: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 4902: r1.extend(MsgIdDomainText1) 4903: else 4904: @index = i1 4905: r1 = nil 4906: end 4907: if r1 4908: r0 = r1 4909: else 4910: s11, i11 = [], index 4911: loop do 4912: r12 = _nt_msg_id_atext 4913: if r12 4914: s11 << r12 4915: else 4916: break 4917: end 4918: end 4919: if s11.empty? 4920: @index = i11 4921: r11 = nil 4922: else 4923: r11 = instantiate_node(SyntaxNode,input, i11...index, s11) 4924: end 4925: if r11 4926: r0 = r11 4927: else 4928: @index = i0 4929: r0 = nil 4930: end 4931: end 4932: 4933: node_cache[:msg_id_domain_text][start_index] = r0 4934: 4935: r0 4936: end
# File lib/mail/parsers/rfc2822.rb, line 4764 4764: def _nt_msg_id_dot_atom_text 4765: start_index = index 4766: if node_cache[:msg_id_dot_atom_text].has_key?(index) 4767: cached = node_cache[:msg_id_dot_atom_text][index] 4768: if cached 4769: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4770: @index = cached.interval.end 4771: end 4772: return cached 4773: end 4774: 4775: s0, i0 = [], index 4776: loop do 4777: i1, s1 = index, [] 4778: r2 = _nt_msg_id_domain_text 4779: s1 << r2 4780: if r2 4781: if has_terminal?(".", false, index) 4782: r4 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4783: @index += 1 4784: else 4785: terminal_parse_failure(".") 4786: r4 = nil 4787: end 4788: if r4 4789: r3 = r4 4790: else 4791: r3 = instantiate_node(SyntaxNode,input, index...index) 4792: end 4793: s1 << r3 4794: end 4795: if s1.last 4796: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 4797: r1.extend(MsgIdDotAtomText0) 4798: else 4799: @index = i1 4800: r1 = nil 4801: end 4802: if r1 4803: s0 << r1 4804: else 4805: break 4806: end 4807: end 4808: if s0.empty? 4809: @index = i0 4810: r0 = nil 4811: else 4812: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 4813: end 4814: 4815: node_cache[:msg_id_dot_atom_text][start_index] = r0 4816: 4817: r0 4818: end
# File lib/mail/parsers/rfc2822.rb, line 4646 4646: def _nt_msg_id_value 4647: start_index = index 4648: if node_cache[:msg_id_value].has_key?(index) 4649: cached = node_cache[:msg_id_value][index] 4650: if cached 4651: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4652: @index = cached.interval.end 4653: end 4654: return cached 4655: end 4656: 4657: i0, s0 = index, [] 4658: r1 = _nt_id_left 4659: s0 << r1 4660: if r1 4661: if has_terminal?("@", false, index) 4662: r2 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4663: @index += 1 4664: else 4665: terminal_parse_failure("@") 4666: r2 = nil 4667: end 4668: s0 << r2 4669: if r2 4670: r3 = _nt_id_right 4671: s0 << r3 4672: end 4673: end 4674: if s0.last 4675: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 4676: r0.extend(MsgIdValue0) 4677: else 4678: @index = i0 4679: r0 = nil 4680: end 4681: 4682: node_cache[:msg_id_value][start_index] = r0 4683: 4684: r0 4685: end
# File lib/mail/parsers/rfc2822.rb, line 1009 1009: def _nt_mtext 1010: start_index = index 1011: if node_cache[:mtext].has_key?(index) 1012: cached = node_cache[:mtext][index] 1013: if cached 1014: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 1015: @index = cached.interval.end 1016: end 1017: return cached 1018: end 1019: 1020: s0, i0 = [], index 1021: loop do 1022: i1 = index 1023: r2 = _nt_atext 1024: if r2 1025: r1 = r2 1026: else 1027: if has_terminal?(".", false, index) 1028: r3 = instantiate_node(SyntaxNode,input, index...(index + 1)) 1029: @index += 1 1030: else 1031: terminal_parse_failure(".") 1032: r3 = nil 1033: end 1034: if r3 1035: r1 = r3 1036: else 1037: @index = i1 1038: r1 = nil 1039: end 1040: end 1041: if r1 1042: s0 << r1 1043: else 1044: break 1045: end 1046: end 1047: if s0.empty? 1048: @index = i0 1049: r0 = nil 1050: else 1051: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 1052: end 1053: 1054: node_cache[:mtext][start_index] = r0 1055: 1056: r0 1057: end
# File lib/mail/parsers/rfc2822.rb, line 2639 2639: def _nt_name_addr 2640: start_index = index 2641: if node_cache[:name_addr].has_key?(index) 2642: cached = node_cache[:name_addr][index] 2643: if cached 2644: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 2645: @index = cached.interval.end 2646: end 2647: return cached 2648: end 2649: 2650: i0 = index 2651: i1, s1 = index, [] 2652: r2 = _nt_display_name 2653: s1 << r2 2654: if r2 2655: r3 = _nt_angle_addr 2656: s1 << r3 2657: end 2658: if s1.last 2659: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 2660: r1.extend(NameAddr0) 2661: else 2662: @index = i1 2663: r1 = nil 2664: end 2665: if r1 2666: r0 = r1 2667: else 2668: r4 = _nt_angle_addr 2669: if r4 2670: r0 = r4 2671: else 2672: @index = i0 2673: r0 = nil 2674: end 2675: end 2676: 2677: node_cache[:name_addr][start_index] = r0 2678: 2679: r0 2680: end
# File lib/mail/parsers/rfc2822.rb, line 4226 4226: def _nt_name_val_list 4227: start_index = index 4228: if node_cache[:name_val_list].has_key?(index) 4229: cached = node_cache[:name_val_list][index] 4230: if cached 4231: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4232: @index = cached.interval.end 4233: end 4234: return cached 4235: end 4236: 4237: i0, s0 = index, [] 4238: r2 = _nt_CFWS 4239: if r2 4240: r1 = r2 4241: else 4242: r1 = instantiate_node(SyntaxNode,input, index...index) 4243: end 4244: s0 << r1 4245: if r1 4246: i3, s3 = index, [] 4247: r4 = _nt_name_val_pair 4248: s3 << r4 4249: if r4 4250: s5, i5 = [], index 4251: loop do 4252: i6, s6 = index, [] 4253: r7 = _nt_CFWS 4254: s6 << r7 4255: if r7 4256: r8 = _nt_name_val_pair 4257: s6 << r8 4258: end 4259: if s6.last 4260: r6 = instantiate_node(SyntaxNode,input, i6...index, s6) 4261: r6.extend(NameValList0) 4262: else 4263: @index = i6 4264: r6 = nil 4265: end 4266: if r6 4267: s5 << r6 4268: else 4269: break 4270: end 4271: end 4272: r5 = instantiate_node(SyntaxNode,input, i5...index, s5) 4273: s3 << r5 4274: end 4275: if s3.last 4276: r3 = instantiate_node(SyntaxNode,input, i3...index, s3) 4277: r3.extend(NameValList1) 4278: else 4279: @index = i3 4280: r3 = nil 4281: end 4282: s0 << r3 4283: end 4284: if s0.last 4285: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 4286: r0.extend(NameValList2) 4287: else 4288: @index = i0 4289: r0 = nil 4290: end 4291: 4292: node_cache[:name_val_list][start_index] = r0 4293: 4294: r0 4295: end
# File lib/mail/parsers/rfc2822.rb, line 4311 4311: def _nt_name_val_pair 4312: start_index = index 4313: if node_cache[:name_val_pair].has_key?(index) 4314: cached = node_cache[:name_val_pair][index] 4315: if cached 4316: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4317: @index = cached.interval.end 4318: end 4319: return cached 4320: end 4321: 4322: i0, s0 = index, [] 4323: r1 = _nt_item_name 4324: s0 << r1 4325: if r1 4326: r2 = _nt_CFWS 4327: s0 << r2 4328: if r2 4329: r3 = _nt_item_value 4330: s0 << r3 4331: end 4332: end 4333: if s0.last 4334: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 4335: r0.extend(NameValPair0) 4336: else 4337: @index = i0 4338: r0 = nil 4339: end 4340: 4341: node_cache[:name_val_pair][start_index] = r0 4342: 4343: r0 4344: end
# File lib/mail/parsers/rfc2822.rb, line 5262 5262: def _nt_no_fold_literal 5263: start_index = index 5264: if node_cache[:no_fold_literal].has_key?(index) 5265: cached = node_cache[:no_fold_literal][index] 5266: if cached 5267: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 5268: @index = cached.interval.end 5269: end 5270: return cached 5271: end 5272: 5273: i0, s0 = index, [] 5274: if has_terminal?("[", false, index) 5275: r1 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5276: @index += 1 5277: else 5278: terminal_parse_failure("[") 5279: r1 = nil 5280: end 5281: s0 << r1 5282: if r1 5283: s2, i2 = [], index 5284: loop do 5285: i3 = index 5286: r4 = _nt_dtext 5287: if r4 5288: r3 = r4 5289: else 5290: r5 = _nt_quoted_pair 5291: if r5 5292: r3 = r5 5293: else 5294: @index = i3 5295: r3 = nil 5296: end 5297: end 5298: if r3 5299: s2 << r3 5300: else 5301: break 5302: end 5303: end 5304: if s2.empty? 5305: @index = i2 5306: r2 = nil 5307: else 5308: r2 = instantiate_node(SyntaxNode,input, i2...index, s2) 5309: end 5310: s0 << r2 5311: if r2 5312: if has_terminal?("]", false, index) 5313: r6 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5314: @index += 1 5315: else 5316: terminal_parse_failure("]") 5317: r6 = nil 5318: end 5319: s0 << r6 5320: end 5321: end 5322: if s0.last 5323: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 5324: r0.extend(NoFoldLiteral0) 5325: else 5326: @index = i0 5327: r0 = nil 5328: end 5329: 5330: node_cache[:no_fold_literal][start_index] = r0 5331: 5332: r0 5333: end
# File lib/mail/parsers/rfc2822.rb, line 5198 5198: def _nt_no_fold_quote 5199: start_index = index 5200: if node_cache[:no_fold_quote].has_key?(index) 5201: cached = node_cache[:no_fold_quote][index] 5202: if cached 5203: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 5204: @index = cached.interval.end 5205: end 5206: return cached 5207: end 5208: 5209: i0, s0 = index, [] 5210: r1 = _nt_DQUOTE 5211: s0 << r1 5212: if r1 5213: s2, i2 = [], index 5214: loop do 5215: i3 = index 5216: r4 = _nt_qtext 5217: if r4 5218: r3 = r4 5219: else 5220: r5 = _nt_quoted_pair 5221: if r5 5222: r3 = r5 5223: else 5224: @index = i3 5225: r3 = nil 5226: end 5227: end 5228: if r3 5229: s2 << r3 5230: else 5231: break 5232: end 5233: end 5234: if s2.empty? 5235: @index = i2 5236: r2 = nil 5237: else 5238: r2 = instantiate_node(SyntaxNode,input, i2...index, s2) 5239: end 5240: s0 << r2 5241: if r2 5242: r6 = _nt_DQUOTE 5243: s0 << r6 5244: end 5245: end 5246: if s0.last 5247: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 5248: r0.extend(NoFoldQuote0) 5249: else 5250: @index = i0 5251: r0 = nil 5252: end 5253: 5254: node_cache[:no_fold_quote][start_index] = r0 5255: 5256: r0 5257: end
# File lib/mail/parsers/rfc2822.rb, line 4053 4053: def _nt_path 4054: start_index = index 4055: if node_cache[:path].has_key?(index) 4056: cached = node_cache[:path][index] 4057: if cached 4058: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4059: @index = cached.interval.end 4060: end 4061: return cached 4062: end 4063: 4064: i0 = index 4065: i1, s1 = index, [] 4066: r3 = _nt_CFWS 4067: if r3 4068: r2 = r3 4069: else 4070: r2 = instantiate_node(SyntaxNode,input, index...index) 4071: end 4072: s1 << r2 4073: if r2 4074: if has_terminal?("<", false, index) 4075: r4 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4076: @index += 1 4077: else 4078: terminal_parse_failure("<") 4079: r4 = nil 4080: end 4081: s1 << r4 4082: if r4 4083: i5 = index 4084: r7 = _nt_CFWS 4085: if r7 4086: r6 = r7 4087: else 4088: r6 = instantiate_node(SyntaxNode,input, index...index) 4089: end 4090: if r6 4091: r5 = r6 4092: else 4093: r8 = _nt_addr_spec 4094: if r8 4095: r5 = r8 4096: else 4097: @index = i5 4098: r5 = nil 4099: end 4100: end 4101: s1 << r5 4102: if r5 4103: if has_terminal?(">", false, index) 4104: r9 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4105: @index += 1 4106: else 4107: terminal_parse_failure(">") 4108: r9 = nil 4109: end 4110: s1 << r9 4111: if r9 4112: r11 = _nt_CFWS 4113: if r11 4114: r10 = r11 4115: else 4116: r10 = instantiate_node(SyntaxNode,input, index...index) 4117: end 4118: s1 << r10 4119: end 4120: end 4121: end 4122: end 4123: if s1.last 4124: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 4125: r1.extend(Path0) 4126: else 4127: @index = i1 4128: r1 = nil 4129: end 4130: if r1 4131: r0 = r1 4132: else 4133: r12 = _nt_obs_path 4134: if r12 4135: r0 = r12 4136: else 4137: @index = i0 4138: r0 = nil 4139: end 4140: end 4141: 4142: node_cache[:path][start_index] = r0 4143: 4144: r0 4145: end
# File lib/mail/parsers/rfc2822.rb, line 1624 1624: def _nt_phrase 1625: start_index = index 1626: if node_cache[:phrase].has_key?(index) 1627: cached = node_cache[:phrase][index] 1628: if cached 1629: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 1630: @index = cached.interval.end 1631: end 1632: return cached 1633: end 1634: 1635: i0 = index 1636: r1 = _nt_obs_phrase 1637: if r1 1638: r0 = r1 1639: else 1640: s2, i2 = [], index 1641: loop do 1642: r3 = _nt_word 1643: if r3 1644: s2 << r3 1645: else 1646: break 1647: end 1648: end 1649: if s2.empty? 1650: @index = i2 1651: r2 = nil 1652: else 1653: r2 = instantiate_node(SyntaxNode,input, i2...index, s2) 1654: end 1655: if r2 1656: r0 = r2 1657: else 1658: @index = i0 1659: r0 = nil 1660: end 1661: end 1662: 1663: node_cache[:phrase][start_index] = r0 1664: 1665: r0 1666: end
# File lib/mail/parsers/rfc2822.rb, line 1714 1714: def _nt_phrase_list 1715: start_index = index 1716: if node_cache[:phrase_list].has_key?(index) 1717: cached = node_cache[:phrase_list][index] 1718: if cached 1719: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 1720: @index = cached.interval.end 1721: end 1722: return cached 1723: end 1724: 1725: i0, s0 = index, [] 1726: r1 = _nt_phrase 1727: s0 << r1 1728: if r1 1729: s2, i2 = [], index 1730: loop do 1731: i3, s3 = index, [] 1732: if has_terminal?(",", false, index) 1733: r4 = instantiate_node(SyntaxNode,input, index...(index + 1)) 1734: @index += 1 1735: else 1736: terminal_parse_failure(",") 1737: r4 = nil 1738: end 1739: s3 << r4 1740: if r4 1741: s5, i5 = [], index 1742: loop do 1743: r6 = _nt_FWS 1744: if r6 1745: s5 << r6 1746: else 1747: break 1748: end 1749: end 1750: r5 = instantiate_node(SyntaxNode,input, i5...index, s5) 1751: s3 << r5 1752: if r5 1753: r7 = _nt_phrase 1754: s3 << r7 1755: end 1756: end 1757: if s3.last 1758: r3 = instantiate_node(SyntaxNode,input, i3...index, s3) 1759: r3.extend(PhraseList0) 1760: else 1761: @index = i3 1762: r3 = nil 1763: end 1764: if r3 1765: s2 << r3 1766: else 1767: break 1768: end 1769: end 1770: r2 = instantiate_node(SyntaxNode,input, i2...index, s2) 1771: s0 << r2 1772: end 1773: if s0.last 1774: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 1775: r0.extend(PhraseList1) 1776: else 1777: @index = i0 1778: r0 = nil 1779: end 1780: 1781: node_cache[:phrase_list][start_index] = r0 1782: 1783: r0 1784: end
# File lib/mail/parsers/rfc2822.rb, line 2416 2416: def _nt_qcontent 2417: start_index = index 2418: if node_cache[:qcontent].has_key?(index) 2419: cached = node_cache[:qcontent][index] 2420: if cached 2421: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 2422: @index = cached.interval.end 2423: end 2424: return cached 2425: end 2426: 2427: i0 = index 2428: r1 = _nt_qtext 2429: if r1 2430: r0 = r1 2431: else 2432: r2 = _nt_quoted_pair 2433: if r2 2434: r0 = r2 2435: else 2436: @index = i0 2437: r0 = nil 2438: end 2439: end 2440: 2441: node_cache[:qcontent][start_index] = r0 2442: 2443: r0 2444: end
# File lib/mail/parsers/rfc2822.rb, line 1559 1559: def _nt_qdcontent 1560: start_index = index 1561: if node_cache[:qdcontent].has_key?(index) 1562: cached = node_cache[:qdcontent][index] 1563: if cached 1564: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 1565: @index = cached.interval.end 1566: end 1567: return cached 1568: end 1569: 1570: i0 = index 1571: r1 = _nt_NO_WS_CTL 1572: if r1 1573: r0 = r1 1574: else 1575: if has_terminal?('\G[\x21]', true, index) 1576: r2 = true 1577: @index += 1 1578: else 1579: r2 = nil 1580: end 1581: if r2 1582: r0 = r2 1583: else 1584: if has_terminal?('\G[\x23-\x45]', true, index) 1585: r3 = true 1586: @index += 1 1587: else 1588: r3 = nil 1589: end 1590: if r3 1591: r0 = r3 1592: else 1593: if has_terminal?('\G[\x47-\x5b]', true, index) 1594: r4 = true 1595: @index += 1 1596: else 1597: r4 = nil 1598: end 1599: if r4 1600: r0 = r4 1601: else 1602: if has_terminal?('\G[\x5d-\x7e]', true, index) 1603: r5 = true 1604: @index += 1 1605: else 1606: r5 = nil 1607: end 1608: if r5 1609: r0 = r5 1610: else 1611: @index = i0 1612: r0 = nil 1613: end 1614: end 1615: end 1616: end 1617: end 1618: 1619: node_cache[:qdcontent][start_index] = r0 1620: 1621: r0 1622: end
# File lib/mail/parsers/rfc2822.rb, line 2501 2501: def _nt_qtext 2502: start_index = index 2503: if node_cache[:qtext].has_key?(index) 2504: cached = node_cache[:qtext][index] 2505: if cached 2506: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 2507: @index = cached.interval.end 2508: end 2509: return cached 2510: end 2511: 2512: i0 = index 2513: r1 = _nt_NO_WS_CTL 2514: if r1 2515: r0 = r1 2516: else 2517: if has_terminal?('\G[\x21]', true, index) 2518: r2 = true 2519: @index += 1 2520: else 2521: r2 = nil 2522: end 2523: if r2 2524: r0 = r2 2525: else 2526: if has_terminal?('\G[\x23-\x5b]', true, index) 2527: r3 = true 2528: @index += 1 2529: else 2530: r3 = nil 2531: end 2532: if r3 2533: r0 = r3 2534: else 2535: if has_terminal?('\G[\x5d-\x7e]', true, index) 2536: r4 = true 2537: @index += 1 2538: else 2539: r4 = nil 2540: end 2541: if r4 2542: r0 = r4 2543: else 2544: @index = i0 2545: r0 = nil 2546: end 2547: end 2548: end 2549: end 2550: 2551: node_cache[:qtext][start_index] = r0 2552: 2553: r0 2554: end
# File lib/mail/parsers/rfc2822.rb, line 1510 1510: def _nt_quoted_domain 1511: start_index = index 1512: if node_cache[:quoted_domain].has_key?(index) 1513: cached = node_cache[:quoted_domain][index] 1514: if cached 1515: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 1516: @index = cached.interval.end 1517: end 1518: return cached 1519: end 1520: 1521: i0 = index 1522: r1 = _nt_qdcontent 1523: if r1 1524: r0 = r1 1525: else 1526: i2, s2 = index, [] 1527: if has_terminal?("\\", false, index) 1528: r3 = instantiate_node(SyntaxNode,input, index...(index + 1)) 1529: @index += 1 1530: else 1531: terminal_parse_failure("\\") 1532: r3 = nil 1533: end 1534: s2 << r3 1535: if r3 1536: r4 = _nt_text 1537: s2 << r4 1538: end 1539: if s2.last 1540: r2 = instantiate_node(SyntaxNode,input, i2...index, s2) 1541: r2.extend(QuotedDomain0) 1542: else 1543: @index = i2 1544: r2 = nil 1545: end 1546: if r2 1547: r0 = r2 1548: else 1549: @index = i0 1550: r0 = nil 1551: end 1552: end 1553: 1554: node_cache[:quoted_domain][start_index] = r0 1555: 1556: r0 1557: end
# File lib/mail/parsers/rfc2822.rb, line 2452 2452: def _nt_quoted_pair 2453: start_index = index 2454: if node_cache[:quoted_pair].has_key?(index) 2455: cached = node_cache[:quoted_pair][index] 2456: if cached 2457: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 2458: @index = cached.interval.end 2459: end 2460: return cached 2461: end 2462: 2463: i0 = index 2464: i1, s1 = index, [] 2465: if has_terminal?("\\", false, index) 2466: r2 = instantiate_node(SyntaxNode,input, index...(index + 1)) 2467: @index += 1 2468: else 2469: terminal_parse_failure("\\") 2470: r2 = nil 2471: end 2472: s1 << r2 2473: if r2 2474: r3 = _nt_text 2475: s1 << r3 2476: end 2477: if s1.last 2478: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 2479: r1.extend(QuotedPair0) 2480: else 2481: @index = i1 2482: r1 = nil 2483: end 2484: if r1 2485: r0 = r1 2486: else 2487: r4 = _nt_obs_qp 2488: if r4 2489: r0 = r4 2490: else 2491: @index = i0 2492: r0 = nil 2493: end 2494: end 2495: 2496: node_cache[:quoted_pair][start_index] = r0 2497: 2498: r0 2499: end
# File lib/mail/parsers/rfc2822.rb, line 2322 2322: def _nt_quoted_string 2323: start_index = index 2324: if node_cache[:quoted_string].has_key?(index) 2325: cached = node_cache[:quoted_string][index] 2326: if cached 2327: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 2328: @index = cached.interval.end 2329: end 2330: return cached 2331: end 2332: 2333: i0, s0 = index, [] 2334: r2 = _nt_CFWS 2335: if r2 2336: r1 = r2 2337: else 2338: r1 = instantiate_node(SyntaxNode,input, index...index) 2339: end 2340: s0 << r1 2341: if r1 2342: r3 = _nt_DQUOTE 2343: s0 << r3 2344: if r3 2345: s4, i4 = [], index 2346: loop do 2347: i5, s5 = index, [] 2348: r7 = _nt_FWS 2349: if r7 2350: r6 = r7 2351: else 2352: r6 = instantiate_node(SyntaxNode,input, index...index) 2353: end 2354: s5 << r6 2355: if r6 2356: r8 = _nt_qcontent 2357: s5 << r8 2358: end 2359: if s5.last 2360: r5 = instantiate_node(SyntaxNode,input, i5...index, s5) 2361: r5.extend(QuotedString0) 2362: else 2363: @index = i5 2364: r5 = nil 2365: end 2366: if r5 2367: s4 << r5 2368: else 2369: break 2370: end 2371: end 2372: if s4.empty? 2373: @index = i4 2374: r4 = nil 2375: else 2376: r4 = instantiate_node(SyntaxNode,input, i4...index, s4) 2377: end 2378: s0 << r4 2379: if r4 2380: r10 = _nt_FWS 2381: if r10 2382: r9 = r10 2383: else 2384: r9 = instantiate_node(SyntaxNode,input, index...index) 2385: end 2386: s0 << r9 2387: if r9 2388: r11 = _nt_DQUOTE 2389: s0 << r11 2390: if r11 2391: r13 = _nt_CFWS 2392: if r13 2393: r12 = r13 2394: else 2395: r12 = instantiate_node(SyntaxNode,input, index...index) 2396: end 2397: s0 << r12 2398: end 2399: end 2400: end 2401: end 2402: end 2403: if s0.last 2404: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 2405: r0.extend(QuotedString1) 2406: else 2407: @index = i0 2408: r0 = nil 2409: end 2410: 2411: node_cache[:quoted_string][start_index] = r0 2412: 2413: r0 2414: end
# File lib/mail/parsers/rfc2822.rb, line 4161 4161: def _nt_received 4162: start_index = index 4163: if node_cache[:received].has_key?(index) 4164: cached = node_cache[:received][index] 4165: if cached 4166: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4167: @index = cached.interval.end 4168: end 4169: return cached 4170: end 4171: 4172: i0, s0 = index, [] 4173: r1 = _nt_name_val_list 4174: s0 << r1 4175: if r1 4176: if has_terminal?(";", false, index) 4177: r2 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4178: @index += 1 4179: else 4180: terminal_parse_failure(";") 4181: r2 = nil 4182: end 4183: s0 << r2 4184: if r2 4185: r3 = _nt_date_time 4186: s0 << r3 4187: if r3 4188: r4 = _nt_CRLF 4189: s0 << r4 4190: end 4191: end 4192: end 4193: if s0.last 4194: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 4195: r0.extend(Received0) 4196: else 4197: @index = i0 4198: r0 = nil 4199: end 4200: 4201: node_cache[:received][start_index] = r0 4202: 4203: r0 4204: end
# File lib/mail/parsers/rfc2822.rb, line 4019 4019: def _nt_return 4020: start_index = index 4021: if node_cache[:return].has_key?(index) 4022: cached = node_cache[:return][index] 4023: if cached 4024: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4025: @index = cached.interval.end 4026: end 4027: return cached 4028: end 4029: 4030: i0, s0 = index, [] 4031: r1 = _nt_path 4032: s0 << r1 4033: if r1 4034: r2 = _nt_CRLF 4035: s0 << r2 4036: end 4037: if s0.last 4038: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 4039: r0.extend(Return0) 4040: else 4041: @index = i0 4042: r0 = nil 4043: end 4044: 4045: node_cache[:return][start_index] = r0 4046: 4047: r0 4048: end
# File lib/mail/parsers/rfc2822.rb, line 3869 3869: def _nt_second 3870: start_index = index 3871: if node_cache[:second].has_key?(index) 3872: cached = node_cache[:second][index] 3873: if cached 3874: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3875: @index = cached.interval.end 3876: end 3877: return cached 3878: end 3879: 3880: i0 = index 3881: i1, s1 = index, [] 3882: r2 = _nt_DIGIT 3883: s1 << r2 3884: if r2 3885: r3 = _nt_DIGIT 3886: s1 << r3 3887: end 3888: if s1.last 3889: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 3890: r1.extend(Second0) 3891: else 3892: @index = i1 3893: r1 = nil 3894: end 3895: if r1 3896: r0 = r1 3897: else 3898: r4 = _nt_obs_second 3899: if r4 3900: r0 = r4 3901: else 3902: @index = i0 3903: r0 = nil 3904: end 3905: end 3906: 3907: node_cache[:second][start_index] = r0 3908: 3909: r0 3910: end
# File lib/mail/parsers/rfc2822.rb, line 431 431: def _nt_specials 432: start_index = index 433: if node_cache[:specials].has_key?(index) 434: cached = node_cache[:specials][index] 435: if cached 436: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 437: @index = cached.interval.end 438: end 439: return cached 440: end 441: 442: i0 = index 443: if has_terminal?("(", false, index) 444: r1 = instantiate_node(SyntaxNode,input, index...(index + 1)) 445: @index += 1 446: else 447: terminal_parse_failure("(") 448: r1 = nil 449: end 450: if r1 451: r0 = r1 452: else 453: if has_terminal?(")", false, index) 454: r2 = instantiate_node(SyntaxNode,input, index...(index + 1)) 455: @index += 1 456: else 457: terminal_parse_failure(")") 458: r2 = nil 459: end 460: if r2 461: r0 = r2 462: else 463: if has_terminal?("<", false, index) 464: r3 = instantiate_node(SyntaxNode,input, index...(index + 1)) 465: @index += 1 466: else 467: terminal_parse_failure("<") 468: r3 = nil 469: end 470: if r3 471: r0 = r3 472: else 473: if has_terminal?(">", false, index) 474: r4 = instantiate_node(SyntaxNode,input, index...(index + 1)) 475: @index += 1 476: else 477: terminal_parse_failure(">") 478: r4 = nil 479: end 480: if r4 481: r0 = r4 482: else 483: if has_terminal?("[", false, index) 484: r5 = instantiate_node(SyntaxNode,input, index...(index + 1)) 485: @index += 1 486: else 487: terminal_parse_failure("[") 488: r5 = nil 489: end 490: if r5 491: r0 = r5 492: else 493: if has_terminal?("]", false, index) 494: r6 = instantiate_node(SyntaxNode,input, index...(index + 1)) 495: @index += 1 496: else 497: terminal_parse_failure("]") 498: r6 = nil 499: end 500: if r6 501: r0 = r6 502: else 503: if has_terminal?(":", false, index) 504: r7 = instantiate_node(SyntaxNode,input, index...(index + 1)) 505: @index += 1 506: else 507: terminal_parse_failure(":") 508: r7 = nil 509: end 510: if r7 511: r0 = r7 512: else 513: if has_terminal?(";", false, index) 514: r8 = instantiate_node(SyntaxNode,input, index...(index + 1)) 515: @index += 1 516: else 517: terminal_parse_failure(";") 518: r8 = nil 519: end 520: if r8 521: r0 = r8 522: else 523: if has_terminal?("@", false, index) 524: r9 = instantiate_node(SyntaxNode,input, index...(index + 1)) 525: @index += 1 526: else 527: terminal_parse_failure("@") 528: r9 = nil 529: end 530: if r9 531: r0 = r9 532: else 533: if has_terminal?('\', false, index) 534: r10 = instantiate_node(SyntaxNode,input, index...(index + 1)) 535: @index += 1 536: else 537: terminal_parse_failure('\') 538: r10 = nil 539: end 540: if r10 541: r0 = r10 542: else 543: if has_terminal?(",", false, index) 544: r11 = instantiate_node(SyntaxNode,input, index...(index + 1)) 545: @index += 1 546: else 547: terminal_parse_failure(",") 548: r11 = nil 549: end 550: if r11 551: r0 = r11 552: else 553: if has_terminal?(".", false, index) 554: r12 = instantiate_node(SyntaxNode,input, index...(index + 1)) 555: @index += 1 556: else 557: terminal_parse_failure(".") 558: r12 = nil 559: end 560: if r12 561: r0 = r12 562: else 563: r13 = _nt_DQUOTE 564: if r13 565: r0 = r13 566: else 567: @index = i0 568: r0 = nil 569: end 570: end 571: end 572: end 573: end 574: end 575: end 576: end 577: end 578: end 579: end 580: end 581: end 582: 583: node_cache[:specials][start_index] = r0 584: 585: r0 586: end
# File lib/mail/parsers/rfc2822.rb, line 2556 2556: def _nt_text 2557: start_index = index 2558: if node_cache[:text].has_key?(index) 2559: cached = node_cache[:text][index] 2560: if cached 2561: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 2562: @index = cached.interval.end 2563: end 2564: return cached 2565: end 2566: 2567: i0 = index 2568: if has_terminal?('\G[\x01-\x09]', true, index) 2569: r1 = true 2570: @index += 1 2571: else 2572: r1 = nil 2573: end 2574: if r1 2575: r0 = r1 2576: else 2577: if has_terminal?('\G[\x0b-\x0c]', true, index) 2578: r2 = true 2579: @index += 1 2580: else 2581: r2 = nil 2582: end 2583: if r2 2584: r0 = r2 2585: else 2586: if has_terminal?('\G[\x0e-\x7e]', true, index) 2587: r3 = true 2588: @index += 1 2589: else 2590: r3 = nil 2591: end 2592: if r3 2593: r0 = r3 2594: else 2595: r4 = _nt_obs_text 2596: if r4 2597: r0 = r4 2598: else 2599: @index = i0 2600: r0 = nil 2601: end 2602: end 2603: end 2604: end 2605: 2606: node_cache[:text][start_index] = r0 2607: 2608: r0 2609: end
# File lib/mail/parsers/rfc2822.rb, line 3632 3632: def _nt_time 3633: start_index = index 3634: if node_cache[:time].has_key?(index) 3635: cached = node_cache[:time][index] 3636: if cached 3637: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3638: @index = cached.interval.end 3639: end 3640: return cached 3641: end 3642: 3643: i0, s0 = index, [] 3644: r1 = _nt_time_of_day 3645: s0 << r1 3646: if r1 3647: r2 = _nt_FWS 3648: s0 << r2 3649: if r2 3650: r3 = _nt_zone 3651: s0 << r3 3652: end 3653: end 3654: if s0.last 3655: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 3656: r0.extend(Time0) 3657: else 3658: @index = i0 3659: r0 = nil 3660: end 3661: 3662: node_cache[:time][start_index] = r0 3663: 3664: r0 3665: end
# File lib/mail/parsers/rfc2822.rb, line 3684 3684: def _nt_time_of_day 3685: start_index = index 3686: if node_cache[:time_of_day].has_key?(index) 3687: cached = node_cache[:time_of_day][index] 3688: if cached 3689: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3690: @index = cached.interval.end 3691: end 3692: return cached 3693: end 3694: 3695: i0, s0 = index, [] 3696: r1 = _nt_hour 3697: s0 << r1 3698: if r1 3699: if has_terminal?(":", false, index) 3700: r2 = instantiate_node(SyntaxNode,input, index...(index + 1)) 3701: @index += 1 3702: else 3703: terminal_parse_failure(":") 3704: r2 = nil 3705: end 3706: s0 << r2 3707: if r2 3708: r3 = _nt_minute 3709: s0 << r3 3710: if r3 3711: i5, s5 = index, [] 3712: if has_terminal?(":", false, index) 3713: r6 = instantiate_node(SyntaxNode,input, index...(index + 1)) 3714: @index += 1 3715: else 3716: terminal_parse_failure(":") 3717: r6 = nil 3718: end 3719: s5 << r6 3720: if r6 3721: r7 = _nt_second 3722: s5 << r7 3723: end 3724: if s5.last 3725: r5 = instantiate_node(SyntaxNode,input, i5...index, s5) 3726: r5.extend(TimeOfDay0) 3727: else 3728: @index = i5 3729: r5 = nil 3730: end 3731: if r5 3732: r4 = r5 3733: else 3734: r4 = instantiate_node(SyntaxNode,input, index...index) 3735: end 3736: s0 << r4 3737: end 3738: end 3739: end 3740: if s0.last 3741: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 3742: r0.extend(TimeOfDay1) 3743: else 3744: @index = i0 3745: r0 = nil 3746: end 3747: 3748: node_cache[:time_of_day][start_index] = r0 3749: 3750: r0 3751: end
# File lib/mail/parsers/rfc2822.rb, line 1668 1668: def _nt_word 1669: start_index = index 1670: if node_cache[:word].has_key?(index) 1671: cached = node_cache[:word][index] 1672: if cached 1673: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 1674: @index = cached.interval.end 1675: end 1676: return cached 1677: end 1678: 1679: i0 = index 1680: r1 = _nt_atom 1681: if r1 1682: r0 = r1 1683: else 1684: r2 = _nt_quoted_string 1685: if r2 1686: r0 = r2 1687: else 1688: @index = i0 1689: r0 = nil 1690: end 1691: end 1692: 1693: node_cache[:word][start_index] = r0 1694: 1695: r0 1696: end
# File lib/mail/parsers/rfc2822.rb, line 3290 3290: def _nt_year 3291: start_index = index 3292: if node_cache[:year].has_key?(index) 3293: cached = node_cache[:year][index] 3294: if cached 3295: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3296: @index = cached.interval.end 3297: end 3298: return cached 3299: end 3300: 3301: i0 = index 3302: i1, s1 = index, [] 3303: r2 = _nt_DIGIT 3304: s1 << r2 3305: if r2 3306: r3 = _nt_DIGIT 3307: s1 << r3 3308: if r3 3309: r4 = _nt_DIGIT 3310: s1 << r4 3311: if r4 3312: r5 = _nt_DIGIT 3313: s1 << r5 3314: end 3315: end 3316: end 3317: if s1.last 3318: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 3319: r1.extend(Year0) 3320: else 3321: @index = i1 3322: r1 = nil 3323: end 3324: if r1 3325: r0 = r1 3326: else 3327: r6 = _nt_obs_year 3328: if r6 3329: r0 = r6 3330: else 3331: @index = i0 3332: r0 = nil 3333: end 3334: end 3335: 3336: node_cache[:year][start_index] = r0 3337: 3338: r0 3339: end
# File lib/mail/parsers/rfc2822.rb, line 3930 3930: def _nt_zone 3931: start_index = index 3932: if node_cache[:zone].has_key?(index) 3933: cached = node_cache[:zone][index] 3934: if cached 3935: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3936: @index = cached.interval.end 3937: end 3938: return cached 3939: end 3940: 3941: i0 = index 3942: i1, s1 = index, [] 3943: i2 = index 3944: if has_terminal?("+", false, index) 3945: r3 = instantiate_node(SyntaxNode,input, index...(index + 1)) 3946: @index += 1 3947: else 3948: terminal_parse_failure("+") 3949: r3 = nil 3950: end 3951: if r3 3952: r2 = r3 3953: else 3954: if has_terminal?("-", false, index) 3955: r4 = instantiate_node(SyntaxNode,input, index...(index + 1)) 3956: @index += 1 3957: else 3958: terminal_parse_failure("-") 3959: r4 = nil 3960: end 3961: if r4 3962: r2 = r4 3963: else 3964: @index = i2 3965: r2 = nil 3966: end 3967: end 3968: s1 << r2 3969: if r2 3970: r5 = _nt_DIGIT 3971: s1 << r5 3972: if r5 3973: r6 = _nt_DIGIT 3974: s1 << r6 3975: if r6 3976: r7 = _nt_DIGIT 3977: s1 << r7 3978: if r7 3979: r8 = _nt_DIGIT 3980: s1 << r8 3981: end 3982: end 3983: end 3984: end 3985: if s1.last 3986: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 3987: r1.extend(Zone0) 3988: else 3989: @index = i1 3990: r1 = nil 3991: end 3992: if r1 3993: r0 = r1 3994: else 3995: r9 = _nt_obs_zone 3996: if r9 3997: r0 = r9 3998: else 3999: @index = i0 4000: r0 = nil 4001: end 4002: end 4003: 4004: node_cache[:zone][start_index] = r0 4005: 4006: r0 4007: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.