# 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: r1 = _nt_address 2896: s0 << r1 2897: if r1 2898: s2, i2 = [], index 2899: loop do 2900: i3, s3 = index, [] 2901: if has_terminal?(",", false, index) 2902: r4 = instantiate_node(SyntaxNode,input, index...(index + 1)) 2903: @index += 1 2904: else 2905: terminal_parse_failure(",") 2906: r4 = nil 2907: end 2908: s3 << r4 2909: if r4 2910: s5, i5 = [], index 2911: loop do 2912: r6 = _nt_FWS 2913: if r6 2914: s5 << r6 2915: else 2916: break 2917: end 2918: end 2919: r5 = instantiate_node(SyntaxNode,input, i5...index, s5) 2920: s3 << r5 2921: if r5 2922: r7 = _nt_address 2923: s3 << r7 2924: end 2925: end 2926: if s3.last 2927: r3 = instantiate_node(SyntaxNode,input, i3...index, s3) 2928: r3.extend(AddressList0) 2929: else 2930: @index = i3 2931: r3 = nil 2932: end 2933: if r3 2934: s2 << r3 2935: else 2936: break 2937: end 2938: end 2939: r2 = instantiate_node(SyntaxNode,input, i2...index, s2) 2940: s0 << r2 2941: end 2942: if s0.last 2943: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 2944: r0.extend(AddressList1) 2945: else 2946: @index = i0 2947: r0 = nil 2948: end 2949: 2950: node_cache[:address_list][start_index] = r0 2951: 2952: r0 2953: 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 3214 3214: def _nt_date 3215: start_index = index 3216: if node_cache[:date].has_key?(index) 3217: cached = node_cache[:date][index] 3218: if cached 3219: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3220: @index = cached.interval.end 3221: end 3222: return cached 3223: end 3224: 3225: i0, s0 = index, [] 3226: r1 = _nt_day 3227: s0 << r1 3228: if r1 3229: r2 = _nt_month 3230: s0 << r2 3231: if r2 3232: r3 = _nt_year 3233: s0 << r3 3234: end 3235: end 3236: if s0.last 3237: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 3238: r0.extend(Date0) 3239: else 3240: @index = i0 3241: r0 = nil 3242: end 3243: 3244: node_cache[:date][start_index] = r0 3245: 3246: r0 3247: end
# File lib/mail/parsers/rfc2822.rb, line 2977 2977: def _nt_date_time 2978: start_index = index 2979: if node_cache[:date_time].has_key?(index) 2980: cached = node_cache[:date_time][index] 2981: if cached 2982: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 2983: @index = cached.interval.end 2984: end 2985: return cached 2986: end 2987: 2988: i0, s0 = index, [] 2989: i2, s2 = index, [] 2990: r3 = _nt_day_of_week 2991: s2 << r3 2992: if r3 2993: if has_terminal?(",", false, index) 2994: r4 = instantiate_node(SyntaxNode,input, index...(index + 1)) 2995: @index += 1 2996: else 2997: terminal_parse_failure(",") 2998: r4 = nil 2999: end 3000: s2 << r4 3001: end 3002: if s2.last 3003: r2 = instantiate_node(SyntaxNode,input, i2...index, s2) 3004: r2.extend(DateTime0) 3005: else 3006: @index = i2 3007: r2 = nil 3008: end 3009: if r2 3010: r1 = r2 3011: else 3012: r1 = instantiate_node(SyntaxNode,input, index...index) 3013: end 3014: s0 << r1 3015: if r1 3016: r5 = _nt_date 3017: s0 << r5 3018: if r5 3019: r6 = _nt_FWS 3020: s0 << r6 3021: if r6 3022: r7 = _nt_time 3023: s0 << r7 3024: if r7 3025: r9 = _nt_CFWS 3026: if r9 3027: r8 = r9 3028: else 3029: r8 = instantiate_node(SyntaxNode,input, index...index) 3030: end 3031: s0 << r8 3032: end 3033: end 3034: end 3035: end 3036: if s0.last 3037: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 3038: r0.extend(DateTime1) 3039: else 3040: @index = i0 3041: r0 = nil 3042: end 3043: 3044: node_cache[:date_time][start_index] = r0 3045: 3046: r0 3047: end
# File lib/mail/parsers/rfc2822.rb, line 3538 3538: def _nt_day 3539: start_index = index 3540: if node_cache[:day].has_key?(index) 3541: cached = node_cache[:day][index] 3542: if cached 3543: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3544: @index = cached.interval.end 3545: end 3546: return cached 3547: end 3548: 3549: i0 = index 3550: i1, s1 = index, [] 3551: r3 = _nt_FWS 3552: if r3 3553: r2 = r3 3554: else 3555: r2 = instantiate_node(SyntaxNode,input, index...index) 3556: end 3557: s1 << r2 3558: if r2 3559: r4 = _nt_DIGIT 3560: s1 << r4 3561: if r4 3562: r6 = _nt_DIGIT 3563: if r6 3564: r5 = r6 3565: else 3566: r5 = instantiate_node(SyntaxNode,input, index...index) 3567: end 3568: s1 << r5 3569: end 3570: end 3571: if s1.last 3572: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 3573: r1.extend(Day0) 3574: else 3575: @index = i1 3576: r1 = nil 3577: end 3578: if r1 3579: r0 = r1 3580: else 3581: r7 = _nt_obs_day 3582: if r7 3583: r0 = r7 3584: else 3585: @index = i0 3586: r0 = nil 3587: end 3588: end 3589: 3590: node_cache[:day][start_index] = r0 3591: 3592: r0 3593: end
# File lib/mail/parsers/rfc2822.rb, line 3103 3103: def _nt_day_name 3104: start_index = index 3105: if node_cache[:day_name].has_key?(index) 3106: cached = node_cache[:day_name][index] 3107: if cached 3108: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3109: @index = cached.interval.end 3110: end 3111: return cached 3112: end 3113: 3114: i0 = index 3115: if has_terminal?("Mon", false, index) 3116: r1 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3117: @index += 3 3118: else 3119: terminal_parse_failure("Mon") 3120: r1 = nil 3121: end 3122: if r1 3123: r0 = r1 3124: else 3125: if has_terminal?("Tue", false, index) 3126: r2 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3127: @index += 3 3128: else 3129: terminal_parse_failure("Tue") 3130: r2 = nil 3131: end 3132: if r2 3133: r0 = r2 3134: else 3135: if has_terminal?("Wed", false, index) 3136: r3 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3137: @index += 3 3138: else 3139: terminal_parse_failure("Wed") 3140: r3 = nil 3141: end 3142: if r3 3143: r0 = r3 3144: else 3145: if has_terminal?("Thu", false, index) 3146: r4 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3147: @index += 3 3148: else 3149: terminal_parse_failure("Thu") 3150: r4 = nil 3151: end 3152: if r4 3153: r0 = r4 3154: else 3155: if has_terminal?("Fri", false, index) 3156: r5 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3157: @index += 3 3158: else 3159: terminal_parse_failure("Fri") 3160: r5 = nil 3161: end 3162: if r5 3163: r0 = r5 3164: else 3165: if has_terminal?("Sat", false, index) 3166: r6 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3167: @index += 3 3168: else 3169: terminal_parse_failure("Sat") 3170: r6 = nil 3171: end 3172: if r6 3173: r0 = r6 3174: else 3175: if has_terminal?("Sun", false, index) 3176: r7 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3177: @index += 3 3178: else 3179: terminal_parse_failure("Sun") 3180: r7 = nil 3181: end 3182: if r7 3183: r0 = r7 3184: else 3185: @index = i0 3186: r0 = nil 3187: end 3188: end 3189: end 3190: end 3191: end 3192: end 3193: end 3194: 3195: node_cache[:day_name][start_index] = r0 3196: 3197: r0 3198: end
# File lib/mail/parsers/rfc2822.rb, line 3055 3055: def _nt_day_of_week 3056: start_index = index 3057: if node_cache[:day_of_week].has_key?(index) 3058: cached = node_cache[:day_of_week][index] 3059: if cached 3060: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3061: @index = cached.interval.end 3062: end 3063: return cached 3064: end 3065: 3066: i0 = index 3067: i1, s1 = index, [] 3068: r3 = _nt_FWS 3069: if r3 3070: r2 = r3 3071: else 3072: r2 = instantiate_node(SyntaxNode,input, index...index) 3073: end 3074: s1 << r2 3075: if r2 3076: r4 = _nt_day_name 3077: s1 << r4 3078: end 3079: if s1.last 3080: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 3081: r1.extend(DayOfWeek0) 3082: else 3083: @index = i1 3084: r1 = nil 3085: end 3086: if r1 3087: r0 = r1 3088: else 3089: r5 = _nt_obs_day_of_week 3090: if r5 3091: r0 = r5 3092: else 3093: @index = i0 3094: r0 = nil 3095: end 3096: end 3097: 3098: node_cache[:day_of_week][start_index] = r0 3099: 3100: r0 3101: 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 3740 3740: def _nt_hour 3741: start_index = index 3742: if node_cache[:hour].has_key?(index) 3743: cached = node_cache[:hour][index] 3744: if cached 3745: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3746: @index = cached.interval.end 3747: end 3748: return cached 3749: end 3750: 3751: i0 = index 3752: i1, s1 = index, [] 3753: r2 = _nt_DIGIT 3754: s1 << r2 3755: if r2 3756: r3 = _nt_DIGIT 3757: s1 << r3 3758: end 3759: if s1.last 3760: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 3761: r1.extend(Hour0) 3762: else 3763: @index = i1 3764: r1 = nil 3765: end 3766: if r1 3767: r0 = r1 3768: else 3769: r4 = _nt_obs_hour 3770: if r4 3771: r0 = r4 3772: else 3773: @index = i0 3774: r0 = nil 3775: end 3776: end 3777: 3778: node_cache[:hour][start_index] = r0 3779: 3780: r0 3781: end
# File lib/mail/parsers/rfc2822.rb, line 4664 4664: def _nt_id_left 4665: start_index = index 4666: if node_cache[:id_left].has_key?(index) 4667: cached = node_cache[:id_left][index] 4668: if cached 4669: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4670: @index = cached.interval.end 4671: end 4672: return cached 4673: end 4674: 4675: i0 = index 4676: r1 = _nt_message_id_text 4677: if r1 4678: r0 = r1 4679: else 4680: r2 = _nt_no_fold_quote 4681: if r2 4682: r0 = r2 4683: else 4684: r3 = _nt_obs_id_left 4685: if r3 4686: r0 = r3 4687: else 4688: @index = i0 4689: r0 = nil 4690: end 4691: end 4692: end 4693: 4694: node_cache[:id_left][start_index] = r0 4695: 4696: r0 4697: end
# File lib/mail/parsers/rfc2822.rb, line 4699 4699: def _nt_id_right 4700: start_index = index 4701: if node_cache[:id_right].has_key?(index) 4702: cached = node_cache[:id_right][index] 4703: if cached 4704: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4705: @index = cached.interval.end 4706: end 4707: return cached 4708: end 4709: 4710: i0 = index 4711: r1 = _nt_msg_id_dot_atom_text 4712: if r1 4713: r0 = r1 4714: else 4715: r2 = _nt_no_fold_literal 4716: if r2 4717: r0 = r2 4718: else 4719: r3 = _nt_obs_id_right 4720: if r3 4721: r0 = r3 4722: else 4723: @index = i0 4724: r0 = nil 4725: end 4726: end 4727: end 4728: 4729: node_cache[:id_right][start_index] = r0 4730: 4731: r0 4732: end
# File lib/mail/parsers/rfc2822.rb, line 4333 4333: def _nt_item_name 4334: start_index = index 4335: if node_cache[:item_name].has_key?(index) 4336: cached = node_cache[:item_name][index] 4337: if cached 4338: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4339: @index = cached.interval.end 4340: end 4341: return cached 4342: end 4343: 4344: i0, s0 = index, [] 4345: r1 = _nt_ALPHA 4346: s0 << r1 4347: if r1 4348: s2, i2 = [], index 4349: loop do 4350: i3, s3 = index, [] 4351: if has_terminal?("-", false, index) 4352: r5 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4353: @index += 1 4354: else 4355: terminal_parse_failure("-") 4356: r5 = nil 4357: end 4358: if r5 4359: r4 = r5 4360: else 4361: r4 = instantiate_node(SyntaxNode,input, index...index) 4362: end 4363: s3 << r4 4364: if r4 4365: i6 = index 4366: r7 = _nt_ALPHA 4367: if r7 4368: r6 = r7 4369: else 4370: r8 = _nt_DIGIT 4371: if r8 4372: r6 = r8 4373: else 4374: @index = i6 4375: r6 = nil 4376: end 4377: end 4378: s3 << r6 4379: end 4380: if s3.last 4381: r3 = instantiate_node(SyntaxNode,input, i3...index, s3) 4382: r3.extend(ItemName0) 4383: else 4384: @index = i3 4385: r3 = nil 4386: end 4387: if r3 4388: s2 << r3 4389: else 4390: break 4391: end 4392: end 4393: r2 = instantiate_node(SyntaxNode,input, i2...index, s2) 4394: s0 << r2 4395: end 4396: if s0.last 4397: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 4398: r0.extend(ItemName1) 4399: else 4400: @index = i0 4401: r0 = nil 4402: end 4403: 4404: node_cache[:item_name][start_index] = r0 4405: 4406: r0 4407: end
# File lib/mail/parsers/rfc2822.rb, line 4409 4409: def _nt_item_value 4410: start_index = index 4411: if node_cache[:item_value].has_key?(index) 4412: cached = node_cache[:item_value][index] 4413: if cached 4414: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4415: @index = cached.interval.end 4416: end 4417: return cached 4418: end 4419: 4420: i0 = index 4421: s1, i1 = [], index 4422: loop do 4423: r2 = _nt_angle_addr 4424: if r2 4425: s1 << r2 4426: else 4427: break 4428: end 4429: end 4430: if s1.empty? 4431: @index = i1 4432: r1 = nil 4433: else 4434: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 4435: end 4436: if r1 4437: r0 = r1 4438: else 4439: r3 = _nt_addr_spec 4440: if r3 4441: r0 = r3 4442: else 4443: r4 = _nt_atom 4444: if r4 4445: r0 = r4 4446: else 4447: r5 = _nt_domain 4448: if r5 4449: r0 = r5 4450: else 4451: r6 = _nt_msg_id 4452: if r6 4453: r0 = r6 4454: else 4455: @index = i0 4456: r0 = nil 4457: end 4458: end 4459: end 4460: end 4461: end 4462: 4463: node_cache[:item_value][start_index] = r0 4464: 4465: r0 4466: 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 4488 4488: def _nt_message_ids 4489: start_index = index 4490: if node_cache[:message_ids].has_key?(index) 4491: cached = node_cache[:message_ids][index] 4492: if cached 4493: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4494: @index = cached.interval.end 4495: end 4496: return cached 4497: end 4498: 4499: i0, s0 = index, [] 4500: r1 = _nt_msg_id 4501: s0 << r1 4502: if r1 4503: s2, i2 = [], index 4504: loop do 4505: i3, s3 = index, [] 4506: r4 = _nt_CFWS 4507: s3 << r4 4508: if r4 4509: r5 = _nt_msg_id 4510: s3 << r5 4511: end 4512: if s3.last 4513: r3 = instantiate_node(SyntaxNode,input, i3...index, s3) 4514: r3.extend(MessageIds0) 4515: else 4516: @index = i3 4517: r3 = nil 4518: end 4519: if r3 4520: s2 << r3 4521: else 4522: break 4523: end 4524: end 4525: r2 = instantiate_node(SyntaxNode,input, i2...index, s2) 4526: s0 << r2 4527: end 4528: if s0.last 4529: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 4530: r0.extend(MessageIds1) 4531: else 4532: @index = i0 4533: r0 = nil 4534: end 4535: 4536: node_cache[:message_ids][start_index] = r0 4537: 4538: r0 4539: end
# File lib/mail/parsers/rfc2822.rb, line 3793 3793: def _nt_minute 3794: start_index = index 3795: if node_cache[:minute].has_key?(index) 3796: cached = node_cache[:minute][index] 3797: if cached 3798: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3799: @index = cached.interval.end 3800: end 3801: return cached 3802: end 3803: 3804: i0 = index 3805: i1, s1 = index, [] 3806: r2 = _nt_DIGIT 3807: s1 << r2 3808: if r2 3809: r3 = _nt_DIGIT 3810: s1 << r3 3811: end 3812: if s1.last 3813: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 3814: r1.extend(Minute0) 3815: else 3816: @index = i1 3817: r1 = nil 3818: end 3819: if r1 3820: r0 = r1 3821: else 3822: r4 = _nt_obs_minute 3823: if r4 3824: r0 = r4 3825: else 3826: @index = i0 3827: r0 = nil 3828: end 3829: end 3830: 3831: node_cache[:minute][start_index] = r0 3832: 3833: r0 3834: end
# File lib/mail/parsers/rfc2822.rb, line 3332 3332: def _nt_month 3333: start_index = index 3334: if node_cache[:month].has_key?(index) 3335: cached = node_cache[:month][index] 3336: if cached 3337: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3338: @index = cached.interval.end 3339: end 3340: return cached 3341: end 3342: 3343: i0 = index 3344: i1, s1 = index, [] 3345: r2 = _nt_FWS 3346: s1 << r2 3347: if r2 3348: r3 = _nt_month_name 3349: s1 << r3 3350: if r3 3351: r4 = _nt_FWS 3352: s1 << r4 3353: end 3354: end 3355: if s1.last 3356: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 3357: r1.extend(Month0) 3358: else 3359: @index = i1 3360: r1 = nil 3361: end 3362: if r1 3363: r0 = r1 3364: else 3365: r5 = _nt_obs_month 3366: if r5 3367: r0 = r5 3368: else 3369: @index = i0 3370: r0 = nil 3371: end 3372: end 3373: 3374: node_cache[:month][start_index] = r0 3375: 3376: r0 3377: end
# File lib/mail/parsers/rfc2822.rb, line 3379 3379: def _nt_month_name 3380: start_index = index 3381: if node_cache[:month_name].has_key?(index) 3382: cached = node_cache[:month_name][index] 3383: if cached 3384: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3385: @index = cached.interval.end 3386: end 3387: return cached 3388: end 3389: 3390: i0 = index 3391: if has_terminal?("Jan", false, index) 3392: r1 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3393: @index += 3 3394: else 3395: terminal_parse_failure("Jan") 3396: r1 = nil 3397: end 3398: if r1 3399: r0 = r1 3400: else 3401: if has_terminal?("Feb", false, index) 3402: r2 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3403: @index += 3 3404: else 3405: terminal_parse_failure("Feb") 3406: r2 = nil 3407: end 3408: if r2 3409: r0 = r2 3410: else 3411: if has_terminal?("Mar", false, index) 3412: r3 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3413: @index += 3 3414: else 3415: terminal_parse_failure("Mar") 3416: r3 = nil 3417: end 3418: if r3 3419: r0 = r3 3420: else 3421: if has_terminal?("Apr", false, index) 3422: r4 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3423: @index += 3 3424: else 3425: terminal_parse_failure("Apr") 3426: r4 = nil 3427: end 3428: if r4 3429: r0 = r4 3430: else 3431: if has_terminal?("May", false, index) 3432: r5 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3433: @index += 3 3434: else 3435: terminal_parse_failure("May") 3436: r5 = nil 3437: end 3438: if r5 3439: r0 = r5 3440: else 3441: if has_terminal?("Jun", false, index) 3442: r6 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3443: @index += 3 3444: else 3445: terminal_parse_failure("Jun") 3446: r6 = nil 3447: end 3448: if r6 3449: r0 = r6 3450: else 3451: if has_terminal?("Jul", false, index) 3452: r7 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3453: @index += 3 3454: else 3455: terminal_parse_failure("Jul") 3456: r7 = nil 3457: end 3458: if r7 3459: r0 = r7 3460: else 3461: if has_terminal?("Aug", false, index) 3462: r8 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3463: @index += 3 3464: else 3465: terminal_parse_failure("Aug") 3466: r8 = nil 3467: end 3468: if r8 3469: r0 = r8 3470: else 3471: if has_terminal?("Sep", false, index) 3472: r9 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3473: @index += 3 3474: else 3475: terminal_parse_failure("Sep") 3476: r9 = nil 3477: end 3478: if r9 3479: r0 = r9 3480: else 3481: if has_terminal?("Oct", false, index) 3482: r10 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3483: @index += 3 3484: else 3485: terminal_parse_failure("Oct") 3486: r10 = nil 3487: end 3488: if r10 3489: r0 = r10 3490: else 3491: if has_terminal?("Nov", false, index) 3492: r11 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3493: @index += 3 3494: else 3495: terminal_parse_failure("Nov") 3496: r11 = nil 3497: end 3498: if r11 3499: r0 = r11 3500: else 3501: if has_terminal?("Dec", false, index) 3502: r12 = instantiate_node(SyntaxNode,input, index...(index + 3)) 3503: @index += 3 3504: else 3505: terminal_parse_failure("Dec") 3506: r12 = nil 3507: end 3508: if r12 3509: r0 = r12 3510: else 3511: @index = i0 3512: r0 = nil 3513: end 3514: end 3515: end 3516: end 3517: end 3518: end 3519: end 3520: end 3521: end 3522: end 3523: end 3524: end 3525: 3526: node_cache[:month_name][start_index] = r0 3527: 3528: r0 3529: end
# File lib/mail/parsers/rfc2822.rb, line 4548 4548: def _nt_msg_id 4549: start_index = index 4550: if node_cache[:msg_id].has_key?(index) 4551: cached = node_cache[:msg_id][index] 4552: if cached 4553: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4554: @index = cached.interval.end 4555: end 4556: return cached 4557: end 4558: 4559: i0, s0 = index, [] 4560: r2 = _nt_CFWS 4561: if r2 4562: r1 = r2 4563: else 4564: r1 = instantiate_node(SyntaxNode,input, index...index) 4565: end 4566: s0 << r1 4567: if r1 4568: if has_terminal?("<", false, index) 4569: r3 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4570: @index += 1 4571: else 4572: terminal_parse_failure("<") 4573: r3 = nil 4574: end 4575: s0 << r3 4576: if r3 4577: r4 = _nt_msg_id_value 4578: s0 << r4 4579: if r4 4580: if has_terminal?(">", false, index) 4581: r5 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4582: @index += 1 4583: else 4584: terminal_parse_failure(">") 4585: r5 = nil 4586: end 4587: s0 << r5 4588: if r5 4589: r7 = _nt_CFWS 4590: if r7 4591: r6 = r7 4592: else 4593: r6 = instantiate_node(SyntaxNode,input, index...index) 4594: end 4595: s0 << r6 4596: end 4597: end 4598: end 4599: end 4600: if s0.last 4601: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 4602: r0.extend(MsgId0) 4603: else 4604: @index = i0 4605: r0 = nil 4606: end 4607: 4608: node_cache[:msg_id][start_index] = r0 4609: 4610: r0 4611: end
# File lib/mail/parsers/rfc2822.rb, line 4915 4915: def _nt_msg_id_atext 4916: start_index = index 4917: if node_cache[:msg_id_atext].has_key?(index) 4918: cached = node_cache[:msg_id_atext][index] 4919: if cached 4920: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4921: @index = cached.interval.end 4922: end 4923: return cached 4924: end 4925: 4926: i0 = index 4927: r1 = _nt_ALPHA 4928: if r1 4929: r0 = r1 4930: else 4931: r2 = _nt_DIGIT 4932: if r2 4933: r0 = r2 4934: else 4935: if has_terminal?("!", false, index) 4936: r3 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4937: @index += 1 4938: else 4939: terminal_parse_failure("!") 4940: r3 = nil 4941: end 4942: if r3 4943: r0 = r3 4944: else 4945: if has_terminal?("#", false, index) 4946: r4 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4947: @index += 1 4948: else 4949: terminal_parse_failure("#") 4950: r4 = nil 4951: end 4952: if r4 4953: r0 = r4 4954: else 4955: if has_terminal?("$", false, index) 4956: r5 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4957: @index += 1 4958: else 4959: terminal_parse_failure("$") 4960: r5 = nil 4961: end 4962: if r5 4963: r0 = r5 4964: else 4965: if has_terminal?("%", false, index) 4966: r6 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4967: @index += 1 4968: else 4969: terminal_parse_failure("%") 4970: r6 = nil 4971: end 4972: if r6 4973: r0 = r6 4974: else 4975: if has_terminal?("&", false, index) 4976: r7 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4977: @index += 1 4978: else 4979: terminal_parse_failure("&") 4980: r7 = nil 4981: end 4982: if r7 4983: r0 = r7 4984: else 4985: if has_terminal?("'", false, index) 4986: r8 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4987: @index += 1 4988: else 4989: terminal_parse_failure("'") 4990: r8 = nil 4991: end 4992: if r8 4993: r0 = r8 4994: else 4995: if has_terminal?("*", false, index) 4996: r9 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4997: @index += 1 4998: else 4999: terminal_parse_failure("*") 5000: r9 = nil 5001: end 5002: if r9 5003: r0 = r9 5004: else 5005: if has_terminal?("+", false, index) 5006: r10 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5007: @index += 1 5008: else 5009: terminal_parse_failure("+") 5010: r10 = nil 5011: end 5012: if r10 5013: r0 = r10 5014: else 5015: if has_terminal?("-", false, index) 5016: r11 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5017: @index += 1 5018: else 5019: terminal_parse_failure("-") 5020: r11 = nil 5021: end 5022: if r11 5023: r0 = r11 5024: else 5025: if has_terminal?("/", false, index) 5026: r12 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5027: @index += 1 5028: else 5029: terminal_parse_failure("/") 5030: r12 = nil 5031: end 5032: if r12 5033: r0 = r12 5034: else 5035: if has_terminal?("=", false, index) 5036: r13 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5037: @index += 1 5038: else 5039: terminal_parse_failure("=") 5040: r13 = nil 5041: end 5042: if r13 5043: r0 = r13 5044: else 5045: if has_terminal?("?", false, index) 5046: r14 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5047: @index += 1 5048: else 5049: terminal_parse_failure("?") 5050: r14 = nil 5051: end 5052: if r14 5053: r0 = r14 5054: else 5055: if has_terminal?("^", false, index) 5056: r15 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5057: @index += 1 5058: else 5059: terminal_parse_failure("^") 5060: r15 = nil 5061: end 5062: if r15 5063: r0 = r15 5064: else 5065: if has_terminal?("_", false, index) 5066: r16 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5067: @index += 1 5068: else 5069: terminal_parse_failure("_") 5070: r16 = nil 5071: end 5072: if r16 5073: r0 = r16 5074: else 5075: if has_terminal?("`", false, index) 5076: r17 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5077: @index += 1 5078: else 5079: terminal_parse_failure("`") 5080: r17 = nil 5081: end 5082: if r17 5083: r0 = r17 5084: else 5085: if has_terminal?("{", false, index) 5086: r18 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5087: @index += 1 5088: else 5089: terminal_parse_failure("{") 5090: r18 = nil 5091: end 5092: if r18 5093: r0 = r18 5094: else 5095: if has_terminal?("|", false, index) 5096: r19 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5097: @index += 1 5098: else 5099: terminal_parse_failure("|") 5100: r19 = nil 5101: end 5102: if r19 5103: r0 = r19 5104: else 5105: if has_terminal?("}", false, index) 5106: r20 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5107: @index += 1 5108: else 5109: terminal_parse_failure("}") 5110: r20 = nil 5111: end 5112: if r20 5113: r0 = r20 5114: else 5115: if has_terminal?("~", false, index) 5116: r21 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5117: @index += 1 5118: else 5119: terminal_parse_failure("~") 5120: r21 = nil 5121: end 5122: if r21 5123: r0 = r21 5124: else 5125: if has_terminal?("@", false, index) 5126: r22 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5127: @index += 1 5128: else 5129: terminal_parse_failure("@") 5130: r22 = nil 5131: end 5132: if r22 5133: r0 = r22 5134: else 5135: @index = i0 5136: r0 = nil 5137: end 5138: end 5139: end 5140: end 5141: end 5142: end 5143: end 5144: end 5145: end 5146: end 5147: end 5148: end 5149: end 5150: end 5151: end 5152: end 5153: end 5154: end 5155: end 5156: end 5157: end 5158: end 5159: 5160: node_cache[:msg_id_atext][start_index] = r0 5161: 5162: r0 5163: end
# File lib/mail/parsers/rfc2822.rb, line 4813 4813: def _nt_msg_id_domain_text 4814: start_index = index 4815: if node_cache[:msg_id_domain_text].has_key?(index) 4816: cached = node_cache[:msg_id_domain_text][index] 4817: if cached 4818: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4819: @index = cached.interval.end 4820: end 4821: return cached 4822: end 4823: 4824: i0 = index 4825: i1, s1 = index, [] 4826: r2 = _nt_DQUOTE 4827: s1 << r2 4828: if r2 4829: s3, i3 = [], index 4830: loop do 4831: i4, s4 = index, [] 4832: r6 = _nt_FWS 4833: if r6 4834: r5 = r6 4835: else 4836: r5 = instantiate_node(SyntaxNode,input, index...index) 4837: end 4838: s4 << r5 4839: if r5 4840: r7 = _nt_quoted_domain 4841: s4 << r7 4842: end 4843: if s4.last 4844: r4 = instantiate_node(SyntaxNode,input, i4...index, s4) 4845: r4.extend(MsgIdDomainText0) 4846: else 4847: @index = i4 4848: r4 = nil 4849: end 4850: if r4 4851: s3 << r4 4852: else 4853: break 4854: end 4855: end 4856: if s3.empty? 4857: @index = i3 4858: r3 = nil 4859: else 4860: r3 = instantiate_node(SyntaxNode,input, i3...index, s3) 4861: end 4862: s1 << r3 4863: if r3 4864: r9 = _nt_FWS 4865: if r9 4866: r8 = r9 4867: else 4868: r8 = instantiate_node(SyntaxNode,input, index...index) 4869: end 4870: s1 << r8 4871: if r8 4872: r10 = _nt_DQUOTE 4873: s1 << r10 4874: end 4875: end 4876: end 4877: if s1.last 4878: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 4879: r1.extend(MsgIdDomainText1) 4880: else 4881: @index = i1 4882: r1 = nil 4883: end 4884: if r1 4885: r0 = r1 4886: else 4887: s11, i11 = [], index 4888: loop do 4889: r12 = _nt_msg_id_atext 4890: if r12 4891: s11 << r12 4892: else 4893: break 4894: end 4895: end 4896: if s11.empty? 4897: @index = i11 4898: r11 = nil 4899: else 4900: r11 = instantiate_node(SyntaxNode,input, i11...index, s11) 4901: end 4902: if r11 4903: r0 = r11 4904: else 4905: @index = i0 4906: r0 = nil 4907: end 4908: end 4909: 4910: node_cache[:msg_id_domain_text][start_index] = r0 4911: 4912: r0 4913: end
# File lib/mail/parsers/rfc2822.rb, line 4741 4741: def _nt_msg_id_dot_atom_text 4742: start_index = index 4743: if node_cache[:msg_id_dot_atom_text].has_key?(index) 4744: cached = node_cache[:msg_id_dot_atom_text][index] 4745: if cached 4746: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4747: @index = cached.interval.end 4748: end 4749: return cached 4750: end 4751: 4752: s0, i0 = [], index 4753: loop do 4754: i1, s1 = index, [] 4755: r2 = _nt_msg_id_domain_text 4756: s1 << r2 4757: if r2 4758: if has_terminal?(".", false, index) 4759: r4 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4760: @index += 1 4761: else 4762: terminal_parse_failure(".") 4763: r4 = nil 4764: end 4765: if r4 4766: r3 = r4 4767: else 4768: r3 = instantiate_node(SyntaxNode,input, index...index) 4769: end 4770: s1 << r3 4771: end 4772: if s1.last 4773: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 4774: r1.extend(MsgIdDotAtomText0) 4775: else 4776: @index = i1 4777: r1 = nil 4778: end 4779: if r1 4780: s0 << r1 4781: else 4782: break 4783: end 4784: end 4785: if s0.empty? 4786: @index = i0 4787: r0 = nil 4788: else 4789: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 4790: end 4791: 4792: node_cache[:msg_id_dot_atom_text][start_index] = r0 4793: 4794: r0 4795: end
# File lib/mail/parsers/rfc2822.rb, line 4623 4623: def _nt_msg_id_value 4624: start_index = index 4625: if node_cache[:msg_id_value].has_key?(index) 4626: cached = node_cache[:msg_id_value][index] 4627: if cached 4628: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4629: @index = cached.interval.end 4630: end 4631: return cached 4632: end 4633: 4634: i0, s0 = index, [] 4635: r1 = _nt_id_left 4636: s0 << r1 4637: if r1 4638: if has_terminal?("@", false, index) 4639: r2 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4640: @index += 1 4641: else 4642: terminal_parse_failure("@") 4643: r2 = nil 4644: end 4645: s0 << r2 4646: if r2 4647: r3 = _nt_id_right 4648: s0 << r3 4649: end 4650: end 4651: if s0.last 4652: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 4653: r0.extend(MsgIdValue0) 4654: else 4655: @index = i0 4656: r0 = nil 4657: end 4658: 4659: node_cache[:msg_id_value][start_index] = r0 4660: 4661: r0 4662: 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 4203 4203: def _nt_name_val_list 4204: start_index = index 4205: if node_cache[:name_val_list].has_key?(index) 4206: cached = node_cache[:name_val_list][index] 4207: if cached 4208: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4209: @index = cached.interval.end 4210: end 4211: return cached 4212: end 4213: 4214: i0, s0 = index, [] 4215: r2 = _nt_CFWS 4216: if r2 4217: r1 = r2 4218: else 4219: r1 = instantiate_node(SyntaxNode,input, index...index) 4220: end 4221: s0 << r1 4222: if r1 4223: i3, s3 = index, [] 4224: r4 = _nt_name_val_pair 4225: s3 << r4 4226: if r4 4227: s5, i5 = [], index 4228: loop do 4229: i6, s6 = index, [] 4230: r7 = _nt_CFWS 4231: s6 << r7 4232: if r7 4233: r8 = _nt_name_val_pair 4234: s6 << r8 4235: end 4236: if s6.last 4237: r6 = instantiate_node(SyntaxNode,input, i6...index, s6) 4238: r6.extend(NameValList0) 4239: else 4240: @index = i6 4241: r6 = nil 4242: end 4243: if r6 4244: s5 << r6 4245: else 4246: break 4247: end 4248: end 4249: r5 = instantiate_node(SyntaxNode,input, i5...index, s5) 4250: s3 << r5 4251: end 4252: if s3.last 4253: r3 = instantiate_node(SyntaxNode,input, i3...index, s3) 4254: r3.extend(NameValList1) 4255: else 4256: @index = i3 4257: r3 = nil 4258: end 4259: s0 << r3 4260: end 4261: if s0.last 4262: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 4263: r0.extend(NameValList2) 4264: else 4265: @index = i0 4266: r0 = nil 4267: end 4268: 4269: node_cache[:name_val_list][start_index] = r0 4270: 4271: r0 4272: end
# File lib/mail/parsers/rfc2822.rb, line 4288 4288: def _nt_name_val_pair 4289: start_index = index 4290: if node_cache[:name_val_pair].has_key?(index) 4291: cached = node_cache[:name_val_pair][index] 4292: if cached 4293: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4294: @index = cached.interval.end 4295: end 4296: return cached 4297: end 4298: 4299: i0, s0 = index, [] 4300: r1 = _nt_item_name 4301: s0 << r1 4302: if r1 4303: r2 = _nt_CFWS 4304: s0 << r2 4305: if r2 4306: r3 = _nt_item_value 4307: s0 << r3 4308: end 4309: end 4310: if s0.last 4311: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 4312: r0.extend(NameValPair0) 4313: else 4314: @index = i0 4315: r0 = nil 4316: end 4317: 4318: node_cache[:name_val_pair][start_index] = r0 4319: 4320: r0 4321: end
# File lib/mail/parsers/rfc2822.rb, line 5239 5239: def _nt_no_fold_literal 5240: start_index = index 5241: if node_cache[:no_fold_literal].has_key?(index) 5242: cached = node_cache[:no_fold_literal][index] 5243: if cached 5244: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 5245: @index = cached.interval.end 5246: end 5247: return cached 5248: end 5249: 5250: i0, s0 = index, [] 5251: if has_terminal?("[", false, index) 5252: r1 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5253: @index += 1 5254: else 5255: terminal_parse_failure("[") 5256: r1 = nil 5257: end 5258: s0 << r1 5259: if r1 5260: s2, i2 = [], index 5261: loop do 5262: i3 = index 5263: r4 = _nt_dtext 5264: if r4 5265: r3 = r4 5266: else 5267: r5 = _nt_quoted_pair 5268: if r5 5269: r3 = r5 5270: else 5271: @index = i3 5272: r3 = nil 5273: end 5274: end 5275: if r3 5276: s2 << r3 5277: else 5278: break 5279: end 5280: end 5281: if s2.empty? 5282: @index = i2 5283: r2 = nil 5284: else 5285: r2 = instantiate_node(SyntaxNode,input, i2...index, s2) 5286: end 5287: s0 << r2 5288: if r2 5289: if has_terminal?("]", false, index) 5290: r6 = instantiate_node(SyntaxNode,input, index...(index + 1)) 5291: @index += 1 5292: else 5293: terminal_parse_failure("]") 5294: r6 = nil 5295: end 5296: s0 << r6 5297: end 5298: end 5299: if s0.last 5300: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 5301: r0.extend(NoFoldLiteral0) 5302: else 5303: @index = i0 5304: r0 = nil 5305: end 5306: 5307: node_cache[:no_fold_literal][start_index] = r0 5308: 5309: r0 5310: end
# File lib/mail/parsers/rfc2822.rb, line 5175 5175: def _nt_no_fold_quote 5176: start_index = index 5177: if node_cache[:no_fold_quote].has_key?(index) 5178: cached = node_cache[:no_fold_quote][index] 5179: if cached 5180: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 5181: @index = cached.interval.end 5182: end 5183: return cached 5184: end 5185: 5186: i0, s0 = index, [] 5187: r1 = _nt_DQUOTE 5188: s0 << r1 5189: if r1 5190: s2, i2 = [], index 5191: loop do 5192: i3 = index 5193: r4 = _nt_qtext 5194: if r4 5195: r3 = r4 5196: else 5197: r5 = _nt_quoted_pair 5198: if r5 5199: r3 = r5 5200: else 5201: @index = i3 5202: r3 = nil 5203: end 5204: end 5205: if r3 5206: s2 << r3 5207: else 5208: break 5209: end 5210: end 5211: if s2.empty? 5212: @index = i2 5213: r2 = nil 5214: else 5215: r2 = instantiate_node(SyntaxNode,input, i2...index, s2) 5216: end 5217: s0 << r2 5218: if r2 5219: r6 = _nt_DQUOTE 5220: s0 << r6 5221: end 5222: end 5223: if s0.last 5224: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 5225: r0.extend(NoFoldQuote0) 5226: else 5227: @index = i0 5228: r0 = nil 5229: end 5230: 5231: node_cache[:no_fold_quote][start_index] = r0 5232: 5233: r0 5234: end
# File lib/mail/parsers/rfc2822.rb, line 4030 4030: def _nt_path 4031: start_index = index 4032: if node_cache[:path].has_key?(index) 4033: cached = node_cache[:path][index] 4034: if cached 4035: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4036: @index = cached.interval.end 4037: end 4038: return cached 4039: end 4040: 4041: i0 = index 4042: i1, s1 = index, [] 4043: r3 = _nt_CFWS 4044: if r3 4045: r2 = r3 4046: else 4047: r2 = instantiate_node(SyntaxNode,input, index...index) 4048: end 4049: s1 << r2 4050: if r2 4051: if has_terminal?("<", false, index) 4052: r4 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4053: @index += 1 4054: else 4055: terminal_parse_failure("<") 4056: r4 = nil 4057: end 4058: s1 << r4 4059: if r4 4060: i5 = index 4061: r7 = _nt_CFWS 4062: if r7 4063: r6 = r7 4064: else 4065: r6 = instantiate_node(SyntaxNode,input, index...index) 4066: end 4067: if r6 4068: r5 = r6 4069: else 4070: r8 = _nt_addr_spec 4071: if r8 4072: r5 = r8 4073: else 4074: @index = i5 4075: r5 = nil 4076: end 4077: end 4078: s1 << r5 4079: if r5 4080: if has_terminal?(">", false, index) 4081: r9 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4082: @index += 1 4083: else 4084: terminal_parse_failure(">") 4085: r9 = nil 4086: end 4087: s1 << r9 4088: if r9 4089: r11 = _nt_CFWS 4090: if r11 4091: r10 = r11 4092: else 4093: r10 = instantiate_node(SyntaxNode,input, index...index) 4094: end 4095: s1 << r10 4096: end 4097: end 4098: end 4099: end 4100: if s1.last 4101: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 4102: r1.extend(Path0) 4103: else 4104: @index = i1 4105: r1 = nil 4106: end 4107: if r1 4108: r0 = r1 4109: else 4110: r12 = _nt_obs_path 4111: if r12 4112: r0 = r12 4113: else 4114: @index = i0 4115: r0 = nil 4116: end 4117: end 4118: 4119: node_cache[:path][start_index] = r0 4120: 4121: r0 4122: 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 4138 4138: def _nt_received 4139: start_index = index 4140: if node_cache[:received].has_key?(index) 4141: cached = node_cache[:received][index] 4142: if cached 4143: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4144: @index = cached.interval.end 4145: end 4146: return cached 4147: end 4148: 4149: i0, s0 = index, [] 4150: r1 = _nt_name_val_list 4151: s0 << r1 4152: if r1 4153: if has_terminal?(";", false, index) 4154: r2 = instantiate_node(SyntaxNode,input, index...(index + 1)) 4155: @index += 1 4156: else 4157: terminal_parse_failure(";") 4158: r2 = nil 4159: end 4160: s0 << r2 4161: if r2 4162: r3 = _nt_date_time 4163: s0 << r3 4164: if r3 4165: r4 = _nt_CRLF 4166: s0 << r4 4167: end 4168: end 4169: end 4170: if s0.last 4171: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 4172: r0.extend(Received0) 4173: else 4174: @index = i0 4175: r0 = nil 4176: end 4177: 4178: node_cache[:received][start_index] = r0 4179: 4180: r0 4181: end
# File lib/mail/parsers/rfc2822.rb, line 3996 3996: def _nt_return 3997: start_index = index 3998: if node_cache[:return].has_key?(index) 3999: cached = node_cache[:return][index] 4000: if cached 4001: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 4002: @index = cached.interval.end 4003: end 4004: return cached 4005: end 4006: 4007: i0, s0 = index, [] 4008: r1 = _nt_path 4009: s0 << r1 4010: if r1 4011: r2 = _nt_CRLF 4012: s0 << r2 4013: end 4014: if s0.last 4015: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 4016: r0.extend(Return0) 4017: else 4018: @index = i0 4019: r0 = nil 4020: end 4021: 4022: node_cache[:return][start_index] = r0 4023: 4024: r0 4025: end
# File lib/mail/parsers/rfc2822.rb, line 3846 3846: def _nt_second 3847: start_index = index 3848: if node_cache[:second].has_key?(index) 3849: cached = node_cache[:second][index] 3850: if cached 3851: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3852: @index = cached.interval.end 3853: end 3854: return cached 3855: end 3856: 3857: i0 = index 3858: i1, s1 = index, [] 3859: r2 = _nt_DIGIT 3860: s1 << r2 3861: if r2 3862: r3 = _nt_DIGIT 3863: s1 << r3 3864: end 3865: if s1.last 3866: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 3867: r1.extend(Second0) 3868: else 3869: @index = i1 3870: r1 = nil 3871: end 3872: if r1 3873: r0 = r1 3874: else 3875: r4 = _nt_obs_second 3876: if r4 3877: r0 = r4 3878: else 3879: @index = i0 3880: r0 = nil 3881: end 3882: end 3883: 3884: node_cache[:second][start_index] = r0 3885: 3886: r0 3887: 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 3609 3609: def _nt_time 3610: start_index = index 3611: if node_cache[:time].has_key?(index) 3612: cached = node_cache[:time][index] 3613: if cached 3614: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3615: @index = cached.interval.end 3616: end 3617: return cached 3618: end 3619: 3620: i0, s0 = index, [] 3621: r1 = _nt_time_of_day 3622: s0 << r1 3623: if r1 3624: r2 = _nt_FWS 3625: s0 << r2 3626: if r2 3627: r3 = _nt_zone 3628: s0 << r3 3629: end 3630: end 3631: if s0.last 3632: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 3633: r0.extend(Time0) 3634: else 3635: @index = i0 3636: r0 = nil 3637: end 3638: 3639: node_cache[:time][start_index] = r0 3640: 3641: r0 3642: end
# File lib/mail/parsers/rfc2822.rb, line 3661 3661: def _nt_time_of_day 3662: start_index = index 3663: if node_cache[:time_of_day].has_key?(index) 3664: cached = node_cache[:time_of_day][index] 3665: if cached 3666: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3667: @index = cached.interval.end 3668: end 3669: return cached 3670: end 3671: 3672: i0, s0 = index, [] 3673: r1 = _nt_hour 3674: s0 << r1 3675: if r1 3676: if has_terminal?(":", false, index) 3677: r2 = instantiate_node(SyntaxNode,input, index...(index + 1)) 3678: @index += 1 3679: else 3680: terminal_parse_failure(":") 3681: r2 = nil 3682: end 3683: s0 << r2 3684: if r2 3685: r3 = _nt_minute 3686: s0 << r3 3687: if r3 3688: i5, s5 = index, [] 3689: if has_terminal?(":", false, index) 3690: r6 = instantiate_node(SyntaxNode,input, index...(index + 1)) 3691: @index += 1 3692: else 3693: terminal_parse_failure(":") 3694: r6 = nil 3695: end 3696: s5 << r6 3697: if r6 3698: r7 = _nt_second 3699: s5 << r7 3700: end 3701: if s5.last 3702: r5 = instantiate_node(SyntaxNode,input, i5...index, s5) 3703: r5.extend(TimeOfDay0) 3704: else 3705: @index = i5 3706: r5 = nil 3707: end 3708: if r5 3709: r4 = r5 3710: else 3711: r4 = instantiate_node(SyntaxNode,input, index...index) 3712: end 3713: s0 << r4 3714: end 3715: end 3716: end 3717: if s0.last 3718: r0 = instantiate_node(SyntaxNode,input, i0...index, s0) 3719: r0.extend(TimeOfDay1) 3720: else 3721: @index = i0 3722: r0 = nil 3723: end 3724: 3725: node_cache[:time_of_day][start_index] = r0 3726: 3727: r0 3728: 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 3267 3267: def _nt_year 3268: start_index = index 3269: if node_cache[:year].has_key?(index) 3270: cached = node_cache[:year][index] 3271: if cached 3272: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3273: @index = cached.interval.end 3274: end 3275: return cached 3276: end 3277: 3278: i0 = index 3279: i1, s1 = index, [] 3280: r2 = _nt_DIGIT 3281: s1 << r2 3282: if r2 3283: r3 = _nt_DIGIT 3284: s1 << r3 3285: if r3 3286: r4 = _nt_DIGIT 3287: s1 << r4 3288: if r4 3289: r5 = _nt_DIGIT 3290: s1 << r5 3291: end 3292: end 3293: end 3294: if s1.last 3295: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 3296: r1.extend(Year0) 3297: else 3298: @index = i1 3299: r1 = nil 3300: end 3301: if r1 3302: r0 = r1 3303: else 3304: r6 = _nt_obs_year 3305: if r6 3306: r0 = r6 3307: else 3308: @index = i0 3309: r0 = nil 3310: end 3311: end 3312: 3313: node_cache[:year][start_index] = r0 3314: 3315: r0 3316: end
# File lib/mail/parsers/rfc2822.rb, line 3907 3907: def _nt_zone 3908: start_index = index 3909: if node_cache[:zone].has_key?(index) 3910: cached = node_cache[:zone][index] 3911: if cached 3912: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true 3913: @index = cached.interval.end 3914: end 3915: return cached 3916: end 3917: 3918: i0 = index 3919: i1, s1 = index, [] 3920: i2 = index 3921: if has_terminal?("+", false, index) 3922: r3 = instantiate_node(SyntaxNode,input, index...(index + 1)) 3923: @index += 1 3924: else 3925: terminal_parse_failure("+") 3926: r3 = nil 3927: end 3928: if r3 3929: r2 = r3 3930: else 3931: if has_terminal?("-", false, index) 3932: r4 = instantiate_node(SyntaxNode,input, index...(index + 1)) 3933: @index += 1 3934: else 3935: terminal_parse_failure("-") 3936: r4 = nil 3937: end 3938: if r4 3939: r2 = r4 3940: else 3941: @index = i2 3942: r2 = nil 3943: end 3944: end 3945: s1 << r2 3946: if r2 3947: r5 = _nt_DIGIT 3948: s1 << r5 3949: if r5 3950: r6 = _nt_DIGIT 3951: s1 << r6 3952: if r6 3953: r7 = _nt_DIGIT 3954: s1 << r7 3955: if r7 3956: r8 = _nt_DIGIT 3957: s1 << r8 3958: end 3959: end 3960: end 3961: end 3962: if s1.last 3963: r1 = instantiate_node(SyntaxNode,input, i1...index, s1) 3964: r1.extend(Zone0) 3965: else 3966: @index = i1 3967: r1 = nil 3968: end 3969: if r1 3970: r0 = r1 3971: else 3972: r9 = _nt_obs_zone 3973: if r9 3974: r0 = r9 3975: else 3976: @index = i0 3977: r0 = nil 3978: end 3979: end 3980: 3981: node_cache[:zone][start_index] = r0 3982: 3983: r0 3984: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.