# File lib/mail/parsers/content_disposition.rb, line 429
429: def _nt_attribute
430: start_index = index
431: if node_cache[:attribute].has_key?(index)
432: cached = node_cache[:attribute][index]
433: if cached
434: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
435: @index = cached.interval.end
436: end
437: return cached
438: end
439:
440: s0, i0 = [], index
441: loop do
442: r1 = _nt_token
443: if r1
444: s0 << r1
445: else
446: break
447: end
448: end
449: if s0.empty?
450: @index = i0
451: r0 = nil
452: else
453: r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
454: end
455:
456: node_cache[:attribute][start_index] = r0
457:
458: r0
459: end
# File lib/mail/parsers/content_disposition.rb, line 48
48: def _nt_content_disposition
49: start_index = index
50: if node_cache[:content_disposition].has_key?(index)
51: cached = node_cache[:content_disposition][index]
52: if cached
53: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
54: @index = cached.interval.end
55: end
56: return cached
57: end
58:
59: i0, s0 = index, []
60: r1 = _nt_disposition_type
61: s0 << r1
62: if r1
63: s2, i2 = [], index
64: loop do
65: i3, s3 = index, []
66: r4 = _nt_CFWS
67: s3 << r4
68: if r4
69: if has_terminal?(";", false, index)
70: r5 = instantiate_node(SyntaxNode,input, index...(index + 1))
71: @index += 1
72: else
73: terminal_parse_failure(";")
74: r5 = nil
75: end
76: s3 << r5
77: if r5
78: r6 = _nt_parameter
79: s3 << r6
80: if r6
81: r7 = _nt_CFWS
82: s3 << r7
83: end
84: end
85: end
86: if s3.last
87: r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
88: r3.extend(ContentDisposition0)
89: else
90: @index = i3
91: r3 = nil
92: end
93: if r3
94: s2 << r3
95: else
96: break
97: end
98: end
99: r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
100: s0 << r2
101: end
102: if s0.last
103: r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
104: r0.extend(ContentDisposition1)
105: r0.extend(ContentDisposition2)
106: else
107: @index = i0
108: r0 = nil
109: end
110:
111: node_cache[:content_disposition][start_index] = r0
112:
113: r0
114: end
# File lib/mail/parsers/content_disposition.rb, line 122
122: def _nt_disposition_type
123: start_index = index
124: if node_cache[:disposition_type].has_key?(index)
125: cached = node_cache[:disposition_type][index]
126: if cached
127: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
128: @index = cached.interval.end
129: end
130: return cached
131: end
132:
133: i0 = index
134: i1, s1 = index, []
135: if has_terminal?('\G[iI]', true, index)
136: r2 = true
137: @index += 1
138: else
139: r2 = nil
140: end
141: s1 << r2
142: if r2
143: if has_terminal?('\G[nN]', true, index)
144: r3 = true
145: @index += 1
146: else
147: r3 = nil
148: end
149: s1 << r3
150: if r3
151: if has_terminal?('\G[lL]', true, index)
152: r4 = true
153: @index += 1
154: else
155: r4 = nil
156: end
157: s1 << r4
158: if r4
159: if has_terminal?('\G[iI]', true, index)
160: r5 = true
161: @index += 1
162: else
163: r5 = nil
164: end
165: s1 << r5
166: if r5
167: if has_terminal?('\G[nN]', true, index)
168: r6 = true
169: @index += 1
170: else
171: r6 = nil
172: end
173: s1 << r6
174: if r6
175: if has_terminal?('\G[eE]', true, index)
176: r7 = true
177: @index += 1
178: else
179: r7 = nil
180: end
181: s1 << r7
182: end
183: end
184: end
185: end
186: end
187: if s1.last
188: r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
189: r1.extend(DispositionType0)
190: else
191: @index = i1
192: r1 = nil
193: end
194: if r1
195: r0 = r1
196: else
197: i8, s8 = index, []
198: if has_terminal?('\G[aA]', true, index)
199: r9 = true
200: @index += 1
201: else
202: r9 = nil
203: end
204: s8 << r9
205: if r9
206: if has_terminal?('\G[tT]', true, index)
207: r10 = true
208: @index += 1
209: else
210: r10 = nil
211: end
212: s8 << r10
213: if r10
214: if has_terminal?('\G[tT]', true, index)
215: r11 = true
216: @index += 1
217: else
218: r11 = nil
219: end
220: s8 << r11
221: if r11
222: if has_terminal?('\G[aA]', true, index)
223: r12 = true
224: @index += 1
225: else
226: r12 = nil
227: end
228: s8 << r12
229: if r12
230: if has_terminal?('\G[cC]', true, index)
231: r13 = true
232: @index += 1
233: else
234: r13 = nil
235: end
236: s8 << r13
237: if r13
238: if has_terminal?('\G[hH]', true, index)
239: r14 = true
240: @index += 1
241: else
242: r14 = nil
243: end
244: s8 << r14
245: if r14
246: if has_terminal?('\G[mM]', true, index)
247: r15 = true
248: @index += 1
249: else
250: r15 = nil
251: end
252: s8 << r15
253: if r15
254: if has_terminal?('\G[eE]', true, index)
255: r16 = true
256: @index += 1
257: else
258: r16 = nil
259: end
260: s8 << r16
261: if r16
262: if has_terminal?('\G[nN]', true, index)
263: r17 = true
264: @index += 1
265: else
266: r17 = nil
267: end
268: s8 << r17
269: if r17
270: if has_terminal?('\G[tT]', true, index)
271: r18 = true
272: @index += 1
273: else
274: r18 = nil
275: end
276: s8 << r18
277: end
278: end
279: end
280: end
281: end
282: end
283: end
284: end
285: end
286: if s8.last
287: r8 = instantiate_node(SyntaxNode,input, i8...index, s8)
288: r8.extend(DispositionType1)
289: else
290: @index = i8
291: r8 = nil
292: end
293: if r8
294: r0 = r8
295: else
296: r19 = _nt_extension_token
297: if r19
298: r0 = r19
299: else
300: if has_terminal?('', false, index)
301: r20 = instantiate_node(SyntaxNode,input, index...(index + 0))
302: @index += 0
303: else
304: terminal_parse_failure('')
305: r20 = nil
306: end
307: if r20
308: r0 = r20
309: else
310: @index = i0
311: r0 = nil
312: end
313: end
314: end
315: end
316:
317: node_cache[:disposition_type][start_index] = r0
318:
319: r0
320: end
# File lib/mail/parsers/content_disposition.rb, line 322
322: def _nt_extension_token
323: start_index = index
324: if node_cache[:extension_token].has_key?(index)
325: cached = node_cache[:extension_token][index]
326: if cached
327: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
328: @index = cached.interval.end
329: end
330: return cached
331: end
332:
333: i0 = index
334: r1 = _nt_ietf_token
335: if r1
336: r0 = r1
337: else
338: r2 = _nt_custom_x_token
339: if r2
340: r0 = r2
341: else
342: @index = i0
343: r0 = nil
344: end
345: end
346:
347: node_cache[:extension_token][start_index] = r0
348:
349: r0
350: end
# File lib/mail/parsers/content_disposition.rb, line 369
369: def _nt_parameter
370: start_index = index
371: if node_cache[:parameter].has_key?(index)
372: cached = node_cache[:parameter][index]
373: if cached
374: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
375: @index = cached.interval.end
376: end
377: return cached
378: end
379:
380: i0, s0 = index, []
381: r2 = _nt_CFWS
382: if r2
383: r1 = r2
384: else
385: r1 = instantiate_node(SyntaxNode,input, index...index)
386: end
387: s0 << r1
388: if r1
389: r3 = _nt_attribute
390: s0 << r3
391: if r3
392: if has_terminal?("=", false, index)
393: r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
394: @index += 1
395: else
396: terminal_parse_failure("=")
397: r4 = nil
398: end
399: s0 << r4
400: if r4
401: r5 = _nt_value
402: s0 << r5
403: if r5
404: r7 = _nt_CFWS
405: if r7
406: r6 = r7
407: else
408: r6 = instantiate_node(SyntaxNode,input, index...index)
409: end
410: s0 << r6
411: end
412: end
413: end
414: end
415: if s0.last
416: r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
417: r0.extend(Parameter0)
418: r0.extend(Parameter1)
419: else
420: @index = i0
421: r0 = nil
422: end
423:
424: node_cache[:parameter][start_index] = r0
425:
426: r0
427: end
# File lib/mail/parsers/content_disposition.rb, line 467
467: def _nt_value
468: start_index = index
469: if node_cache[:value].has_key?(index)
470: cached = node_cache[:value][index]
471: if cached
472: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
473: @index = cached.interval.end
474: end
475: return cached
476: end
477:
478: i0 = index
479: r1 = _nt_quoted_string
480: r1.extend(Value0)
481: if r1
482: r0 = r1
483: else
484: s2, i2 = [], index
485: loop do
486: i3 = index
487: r4 = _nt_token
488: if r4
489: r3 = r4
490: else
491: if has_terminal?('\G[\x3d]', true, index)
492: r5 = true
493: @index += 1
494: else
495: r5 = nil
496: end
497: if r5
498: r3 = r5
499: else
500: @index = i3
501: r3 = nil
502: end
503: end
504: if r3
505: s2 << r3
506: else
507: break
508: end
509: end
510: if s2.empty?
511: @index = i2
512: r2 = nil
513: else
514: r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
515: end
516: if r2
517: r0 = r2
518: else
519: @index = i0
520: r0 = nil
521: end
522: end
523:
524: node_cache[:value][start_index] = r0
525:
526: r0
527: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.