# File lib/mail/parsers/content_disposition.rb, line 281
281: def _nt_attribute
282: start_index = index
283: if node_cache[:attribute].has_key?(index)
284: cached = node_cache[:attribute][index]
285: if cached
286: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
287: @index = cached.interval.end
288: end
289: return cached
290: end
291:
292: s0, i0 = [], index
293: loop do
294: r1 = _nt_token
295: if r1
296: s0 << r1
297: else
298: break
299: end
300: end
301: if s0.empty?
302: @index = i0
303: r0 = nil
304: else
305: r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
306: end
307:
308: node_cache[:attribute][start_index] = r0
309:
310: r0
311: 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 116
116: def _nt_disposition_type
117: start_index = index
118: if node_cache[:disposition_type].has_key?(index)
119: cached = node_cache[:disposition_type][index]
120: if cached
121: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
122: @index = cached.interval.end
123: end
124: return cached
125: end
126:
127: i0 = index
128: if has_terminal?("inline", false, index)
129: r1 = instantiate_node(SyntaxNode,input, index...(index + 6))
130: @index += 6
131: else
132: terminal_parse_failure("inline")
133: r1 = nil
134: end
135: if r1
136: r0 = r1
137: else
138: if has_terminal?("attachment", false, index)
139: r2 = instantiate_node(SyntaxNode,input, index...(index + 10))
140: @index += 10
141: else
142: terminal_parse_failure("attachment")
143: r2 = nil
144: end
145: if r2
146: r0 = r2
147: else
148: r3 = _nt_extension_token
149: if r3
150: r0 = r3
151: else
152: if has_terminal?('', false, index)
153: r4 = instantiate_node(SyntaxNode,input, index...(index + 0))
154: @index += 0
155: else
156: terminal_parse_failure('')
157: r4 = nil
158: end
159: if r4
160: r0 = r4
161: else
162: @index = i0
163: r0 = nil
164: end
165: end
166: end
167: end
168:
169: node_cache[:disposition_type][start_index] = r0
170:
171: r0
172: end
# File lib/mail/parsers/content_disposition.rb, line 174
174: def _nt_extension_token
175: start_index = index
176: if node_cache[:extension_token].has_key?(index)
177: cached = node_cache[:extension_token][index]
178: if cached
179: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
180: @index = cached.interval.end
181: end
182: return cached
183: end
184:
185: i0 = index
186: r1 = _nt_ietf_token
187: if r1
188: r0 = r1
189: else
190: r2 = _nt_custom_x_token
191: if r2
192: r0 = r2
193: else
194: @index = i0
195: r0 = nil
196: end
197: end
198:
199: node_cache[:extension_token][start_index] = r0
200:
201: r0
202: end
# File lib/mail/parsers/content_disposition.rb, line 221
221: def _nt_parameter
222: start_index = index
223: if node_cache[:parameter].has_key?(index)
224: cached = node_cache[:parameter][index]
225: if cached
226: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
227: @index = cached.interval.end
228: end
229: return cached
230: end
231:
232: i0, s0 = index, []
233: r2 = _nt_CFWS
234: if r2
235: r1 = r2
236: else
237: r1 = instantiate_node(SyntaxNode,input, index...index)
238: end
239: s0 << r1
240: if r1
241: r3 = _nt_attribute
242: s0 << r3
243: if r3
244: if has_terminal?("=", false, index)
245: r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
246: @index += 1
247: else
248: terminal_parse_failure("=")
249: r4 = nil
250: end
251: s0 << r4
252: if r4
253: r5 = _nt_value
254: s0 << r5
255: if r5
256: r7 = _nt_CFWS
257: if r7
258: r6 = r7
259: else
260: r6 = instantiate_node(SyntaxNode,input, index...index)
261: end
262: s0 << r6
263: end
264: end
265: end
266: end
267: if s0.last
268: r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
269: r0.extend(Parameter0)
270: r0.extend(Parameter1)
271: else
272: @index = i0
273: r0 = nil
274: end
275:
276: node_cache[:parameter][start_index] = r0
277:
278: r0
279: end
# File lib/mail/parsers/content_disposition.rb, line 319
319: def _nt_value
320: start_index = index
321: if node_cache[:value].has_key?(index)
322: cached = node_cache[:value][index]
323: if cached
324: cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
325: @index = cached.interval.end
326: end
327: return cached
328: end
329:
330: i0 = index
331: r1 = _nt_quoted_string
332: r1.extend(Value0)
333: if r1
334: r0 = r1
335: else
336: s2, i2 = [], index
337: loop do
338: i3 = index
339: r4 = _nt_token
340: if r4
341: r3 = r4
342: else
343: if has_terminal?('\G[\x3d]', true, index)
344: r5 = true
345: @index += 1
346: else
347: r5 = nil
348: end
349: if r5
350: r3 = r5
351: else
352: @index = i3
353: r3 = nil
354: end
355: end
356: if r3
357: s2 << r3
358: else
359: break
360: end
361: end
362: if s2.empty?
363: @index = i2
364: r2 = nil
365: else
366: r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
367: end
368: if r2
369: r0 = r2
370: else
371: @index = i0
372: r0 = nil
373: end
374: end
375:
376: node_cache[:value][start_index] = r0
377:
378: r0
379: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.