# File lib/mail/parsers/rfc2045.rb, line 286
286: def _nt_custom_x_token
287: start_index = index
288: if node_cache[:custom_x_token].has_key?(index)
289: cached = node_cache[:custom_x_token][index]
290: if cached
291: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
292: @index = cached.interval.end
293: end
294: return cached
295: end
296:
297: i0, s0 = index, []
298: if has_terminal?('\G[xX]', true, index)
299: r1 = true
300: @index += 1
301: else
302: r1 = nil
303: end
304: s0 << r1
305: if r1
306: if has_terminal?("-", false, index)
307: r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
308: @index += 1
309: else
310: terminal_parse_failure("-")
311: r2 = nil
312: end
313: s0 << r2
314: if r2
315: s3, i3 = [], index
316: loop do
317: r4 = _nt_token
318: if r4
319: s3 << r4
320: else
321: break
322: end
323: end
324: if s3.empty?
325: @index = i3
326: r3 = nil
327: else
328: r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
329: end
330: s0 << r3
331: end
332: end
333: if s0.last
334: r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
335: r0.extend(CustomXToken0)
336: else
337: @index = i0
338: r0 = nil
339: end
340:
341: node_cache[:custom_x_token][start_index] = r0
342:
343: r0
344: end
# File lib/mail/parsers/rfc2045.rb, line 346
346: def _nt_iana_token
347: start_index = index
348: if node_cache[:iana_token].has_key?(index)
349: cached = node_cache[:iana_token][index]
350: if cached
351: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
352: @index = cached.interval.end
353: end
354: return cached
355: end
356:
357: s0, i0 = [], index
358: loop do
359: r1 = _nt_token
360: if r1
361: s0 << r1
362: else
363: break
364: end
365: end
366: if s0.empty?
367: @index = i0
368: r0 = nil
369: else
370: r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
371: end
372:
373: node_cache[:iana_token][start_index] = r0
374:
375: r0
376: end
# File lib/mail/parsers/rfc2045.rb, line 208
208: def _nt_ietf_token
209: start_index = index
210: if node_cache[:ietf_token].has_key?(index)
211: cached = node_cache[:ietf_token][index]
212: if cached
213: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
214: @index = cached.interval.end
215: end
216: return cached
217: end
218:
219: i0 = index
220: if has_terminal?("7bit", false, index)
221: r1 = instantiate_node(SyntaxNode,input, index...(index + 4))
222: @index += 4
223: else
224: terminal_parse_failure("7bit")
225: r1 = nil
226: end
227: if r1
228: r0 = r1
229: else
230: if has_terminal?("8bit", false, index)
231: r2 = instantiate_node(SyntaxNode,input, index...(index + 4))
232: @index += 4
233: else
234: terminal_parse_failure("8bit")
235: r2 = nil
236: end
237: if r2
238: r0 = r2
239: else
240: if has_terminal?("binary", false, index)
241: r3 = instantiate_node(SyntaxNode,input, index...(index + 6))
242: @index += 6
243: else
244: terminal_parse_failure("binary")
245: r3 = nil
246: end
247: if r3
248: r0 = r3
249: else
250: if has_terminal?("quoted-printable", false, index)
251: r4 = instantiate_node(SyntaxNode,input, index...(index + 16))
252: @index += 16
253: else
254: terminal_parse_failure("quoted-printable")
255: r4 = nil
256: end
257: if r4
258: r0 = r4
259: else
260: if has_terminal?("base64", false, index)
261: r5 = instantiate_node(SyntaxNode,input, index...(index + 6))
262: @index += 6
263: else
264: terminal_parse_failure("base64")
265: r5 = nil
266: end
267: if r5
268: r0 = r5
269: else
270: @index = i0
271: r0 = nil
272: end
273: end
274: end
275: end
276: end
277:
278: node_cache[:ietf_token][start_index] = r0
279:
280: r0
281: end
# File lib/mail/parsers/rfc2045.rb, line 378
378: def _nt_token
379: start_index = index
380: if node_cache[:token].has_key?(index)
381: cached = node_cache[:token][index]
382: if cached
383: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
384: @index = cached.interval.end
385: end
386: return cached
387: end
388:
389: i0 = index
390: if has_terminal?('\G[\x21-\x27]', true, index)
391: r1 = true
392: @index += 1
393: else
394: r1 = nil
395: end
396: if r1
397: r0 = r1
398: else
399: if has_terminal?('\G[\x2a-\x2b]', true, index)
400: r2 = true
401: @index += 1
402: else
403: r2 = nil
404: end
405: if r2
406: r0 = r2
407: else
408: if has_terminal?('\G[\x2c-\x2e]', true, index)
409: r3 = true
410: @index += 1
411: else
412: r3 = nil
413: end
414: if r3
415: r0 = r3
416: else
417: if has_terminal?('\G[\x30-\x39]', true, index)
418: r4 = true
419: @index += 1
420: else
421: r4 = nil
422: end
423: if r4
424: r0 = r4
425: else
426: if has_terminal?('\G[\x41-\x5a]', true, index)
427: r5 = true
428: @index += 1
429: else
430: r5 = nil
431: end
432: if r5
433: r0 = r5
434: else
435: if has_terminal?('\G[\x5e-\x7e]', true, index)
436: r6 = true
437: @index += 1
438: else
439: r6 = nil
440: end
441: if r6
442: r0 = r6
443: else
444: @index = i0
445: r0 = nil
446: end
447: end
448: end
449: end
450: end
451: end
452:
453: node_cache[:token][start_index] = r0
454:
455: r0
456: end
# File lib/mail/parsers/rfc2045.rb, line 12
12: def _nt_tspecials
13: start_index = index
14: if node_cache[:tspecials].has_key?(index)
15: cached = node_cache[:tspecials][index]
16: if cached
17: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
18: @index = cached.interval.end
19: end
20: return cached
21: end
22:
23: i0 = index
24: if has_terminal?("(", false, index)
25: r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
26: @index += 1
27: else
28: terminal_parse_failure("(")
29: r1 = nil
30: end
31: if r1
32: r0 = r1
33: else
34: if has_terminal?(")", false, index)
35: r2 = instantiate_node(SyntaxNode,input, index...(index + 1))
36: @index += 1
37: else
38: terminal_parse_failure(")")
39: r2 = nil
40: end
41: if r2
42: r0 = r2
43: else
44: if has_terminal?("<", false, index)
45: r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
46: @index += 1
47: else
48: terminal_parse_failure("<")
49: r3 = nil
50: end
51: if r3
52: r0 = r3
53: else
54: if has_terminal?(">", false, index)
55: r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
56: @index += 1
57: else
58: terminal_parse_failure(">")
59: r4 = nil
60: end
61: if r4
62: r0 = r4
63: else
64: if has_terminal?("@", false, index)
65: r5 = instantiate_node(SyntaxNode,input, index...(index + 1))
66: @index += 1
67: else
68: terminal_parse_failure("@")
69: r5 = nil
70: end
71: if r5
72: r0 = r5
73: else
74: if has_terminal?(",", false, index)
75: r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
76: @index += 1
77: else
78: terminal_parse_failure(",")
79: r6 = nil
80: end
81: if r6
82: r0 = r6
83: else
84: if has_terminal?(";", false, index)
85: r7 = instantiate_node(SyntaxNode,input, index...(index + 1))
86: @index += 1
87: else
88: terminal_parse_failure(";")
89: r7 = nil
90: end
91: if r7
92: r0 = r7
93: else
94: if has_terminal?(":", false, index)
95: r8 = instantiate_node(SyntaxNode,input, index...(index + 1))
96: @index += 1
97: else
98: terminal_parse_failure(":")
99: r8 = nil
100: end
101: if r8
102: r0 = r8
103: else
104: if has_terminal?('\', false, index)
105: r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
106: @index += 1
107: else
108: terminal_parse_failure('\')
109: r9 = nil
110: end
111: if r9
112: r0 = r9
113: else
114: if has_terminal?("<", false, index)
115: r10 = instantiate_node(SyntaxNode,input, index...(index + 1))
116: @index += 1
117: else
118: terminal_parse_failure("<")
119: r10 = nil
120: end
121: if r10
122: r0 = r10
123: else
124: if has_terminal?(">", false, index)
125: r11 = instantiate_node(SyntaxNode,input, index...(index + 1))
126: @index += 1
127: else
128: terminal_parse_failure(">")
129: r11 = nil
130: end
131: if r11
132: r0 = r11
133: else
134: if has_terminal?("/", false, index)
135: r12 = instantiate_node(SyntaxNode,input, index...(index + 1))
136: @index += 1
137: else
138: terminal_parse_failure("/")
139: r12 = nil
140: end
141: if r12
142: r0 = r12
143: else
144: if has_terminal?("[", false, index)
145: r13 = instantiate_node(SyntaxNode,input, index...(index + 1))
146: @index += 1
147: else
148: terminal_parse_failure("[")
149: r13 = nil
150: end
151: if r13
152: r0 = r13
153: else
154: if has_terminal?("]", false, index)
155: r14 = instantiate_node(SyntaxNode,input, index...(index + 1))
156: @index += 1
157: else
158: terminal_parse_failure("]")
159: r14 = nil
160: end
161: if r14
162: r0 = r14
163: else
164: if has_terminal?("?", false, index)
165: r15 = instantiate_node(SyntaxNode,input, index...(index + 1))
166: @index += 1
167: else
168: terminal_parse_failure("?")
169: r15 = nil
170: end
171: if r15
172: r0 = r15
173: else
174: if has_terminal?("=", false, index)
175: r16 = instantiate_node(SyntaxNode,input, index...(index + 1))
176: @index += 1
177: else
178: terminal_parse_failure("=")
179: r16 = nil
180: end
181: if r16
182: r0 = r16
183: else
184: @index = i0
185: r0 = nil
186: end
187: end
188: end
189: end
190: end
191: end
192: end
193: end
194: end
195: end
196: end
197: end
198: end
199: end
200: end
201: end
202:
203: node_cache[:tspecials][start_index] = r0
204:
205: r0
206: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.