mail 2.1.3 → 2.1.5
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of mail might be problematic. Click here for more details.
- data/CHANGELOG.rdoc +37 -0
- data/README.rdoc +1 -1
- data/Rakefile +2 -3
- data/TODO.rdoc +2 -12
- data/lib/mail.rb +7 -4
- data/lib/mail/attachments_list.rb +28 -10
- data/lib/mail/body.rb +44 -15
- data/lib/mail/core_extensions/string.rb +4 -0
- data/lib/mail/elements/content_transfer_encoding_element.rb +4 -1
- data/lib/mail/encodings/7bit.rb +29 -0
- data/lib/mail/encodings/8bit.rb +29 -0
- data/lib/mail/encodings/base64.rb +18 -5
- data/lib/mail/encodings/binary.rb +29 -0
- data/lib/mail/encodings/encodings.rb +22 -6
- data/lib/mail/encodings/quoted_printable.rb +27 -4
- data/lib/mail/encodings/transfer_encoding.rb +58 -0
- data/lib/mail/field.rb +4 -2
- data/lib/mail/fields/common/parameter_hash.rb +12 -3
- data/lib/mail/fields/content_disposition_field.rb +12 -2
- data/lib/mail/fields/content_location_field.rb +2 -2
- data/lib/mail/fields/content_transfer_encoding_field.rb +5 -3
- data/lib/mail/fields/content_type_field.rb +14 -4
- data/lib/mail/fields/mime_version_field.rb +2 -2
- data/lib/mail/fields/received_field.rb +8 -4
- data/lib/mail/fields/structured_field.rb +4 -0
- data/lib/mail/fields/unstructured_field.rb +5 -0
- data/lib/mail/header.rb +13 -6
- data/lib/mail/mail.rb +1 -1
- data/lib/mail/message.rb +100 -28
- data/lib/mail/network/delivery_methods/smtp.rb +1 -1
- data/lib/mail/parsers/address_lists.rb +4 -1
- data/lib/mail/parsers/content_disposition.rb +24 -6
- data/lib/mail/parsers/content_location.rb +8 -2
- data/lib/mail/parsers/content_transfer_encoding.rb +73 -83
- data/lib/mail/parsers/content_transfer_encoding.treetop +5 -10
- data/lib/mail/parsers/content_type.rb +36 -9
- data/lib/mail/parsers/date_time.rb +4 -1
- data/lib/mail/parsers/envelope_from.rb +8 -2
- data/lib/mail/parsers/message_ids.rb +4 -1
- data/lib/mail/parsers/mime_version.rb +4 -1
- data/lib/mail/parsers/phrase_lists.rb +4 -1
- data/lib/mail/parsers/received.rb +4 -1
- data/lib/mail/parsers/rfc2045.rb +75 -17
- data/lib/mail/parsers/rfc2045.treetop +2 -1
- data/lib/mail/parsers/rfc2822.rb +316 -79
- data/lib/mail/parsers/rfc2822_obsolete.rb +200 -50
- data/lib/mail/part.rb +21 -6
- data/lib/mail/patterns.rb +3 -3
- data/lib/mail/utilities.rb +4 -4
- data/lib/mail/vendor/treetop-1.4.3/Or +0 -0
- data/lib/mail/vendor/treetop-1.4.3/Rakefile +11 -6
- data/lib/mail/vendor/treetop-1.4.3/Treetop.tmbundle/Preferences/Comments.tmPreferences +22 -0
- data/lib/mail/vendor/treetop-1.4.3/Treetop.tmbundle/Syntaxes/Treetop Grammar.tmLanguage +28 -1
- data/lib/mail/vendor/treetop-1.4.3/bin/tt +5 -5
- data/lib/mail/vendor/treetop-1.4.3/lib/treetop.rb +3 -19
- data/lib/mail/vendor/treetop-1.4.3/lib/treetop/bootstrap_gen_1_metagrammar.rb +4 -7
- data/lib/mail/vendor/treetop-1.4.3/lib/treetop/compiler.rb +7 -6
- data/lib/mail/vendor/treetop-1.4.3/lib/treetop/compiler/metagrammar.rb +1 -1
- data/lib/mail/vendor/treetop-1.4.3/lib/treetop/compiler/node_classes.rb +19 -20
- data/lib/mail/vendor/treetop-1.4.3/lib/treetop/polyglot.rb +9 -0
- data/lib/mail/vendor/treetop-1.4.3/lib/treetop/ruby_extensions.rb +1 -2
- data/lib/mail/vendor/treetop-1.4.3/lib/treetop/runtime.rb +6 -5
- data/lib/mail/vendor/treetop-1.4.3/lib/treetop/runtime/interval_skip_list.rb +3 -4
- data/lib/mail/vendor/treetop-1.4.3/lib/treetop/runtime/syntax_node.rb +7 -7
- data/lib/mail/vendor/treetop-1.4.3/lib/treetop/version.rb +1 -1
- data/lib/mail/vendor/treetop-1.4.3/script/generate_metagrammar.rb +3 -4
- data/lib/mail/vendor/treetop-1.4.3/spec/compiler/and_predicate_spec.rb +2 -2
- data/lib/mail/vendor/treetop-1.4.3/spec/compiler/anything_symbol_spec.rb +2 -2
- data/lib/mail/vendor/treetop-1.4.3/spec/compiler/character_class_spec.rb +1 -1
- data/lib/mail/vendor/treetop-1.4.3/spec/compiler/choice_spec.rb +2 -2
- data/lib/mail/vendor/treetop-1.4.3/spec/compiler/circular_compilation_spec.rb +3 -1
- data/lib/mail/vendor/treetop-1.4.3/spec/compiler/failure_propagation_functional_spec.rb +2 -2
- data/lib/mail/vendor/treetop-1.4.3/spec/compiler/grammar_compiler_spec.rb +1 -1
- data/lib/mail/vendor/treetop-1.4.3/spec/compiler/grammar_spec.rb +1 -1
- data/lib/mail/vendor/treetop-1.4.3/spec/compiler/multibyte_chars_spec.rb +1 -9
- data/lib/mail/vendor/treetop-1.4.3/spec/compiler/nonterminal_symbol_spec.rb +2 -2
- data/lib/mail/vendor/treetop-1.4.3/spec/compiler/not_predicate_spec.rb +2 -2
- data/lib/mail/vendor/treetop-1.4.3/spec/compiler/one_or_more_spec.rb +2 -2
- data/lib/mail/vendor/treetop-1.4.3/spec/compiler/optional_spec.rb +1 -1
- data/lib/mail/vendor/treetop-1.4.3/spec/compiler/parenthesized_expression_spec.rb +1 -1
- data/lib/mail/vendor/treetop-1.4.3/spec/compiler/parsing_rule_spec.rb +1 -1
- data/lib/mail/vendor/treetop-1.4.3/spec/compiler/repeated_subrule_spec.rb +1 -1
- data/lib/mail/vendor/treetop-1.4.3/spec/compiler/semantic_predicate_spec.rb +1 -1
- data/lib/mail/vendor/treetop-1.4.3/spec/compiler/sequence_spec.rb +1 -1
- data/lib/mail/vendor/treetop-1.4.3/spec/compiler/terminal_spec.rb +1 -1
- data/lib/mail/vendor/treetop-1.4.3/spec/compiler/terminal_symbol_spec.rb +1 -1
- data/lib/mail/vendor/treetop-1.4.3/spec/compiler/tt_compiler_spec.rb +1 -1
- data/lib/mail/vendor/treetop-1.4.3/spec/compiler/zero_or_more_spec.rb +1 -1
- data/lib/mail/vendor/treetop-1.4.3/spec/composition/grammar_composition_spec.rb +1 -1
- data/lib/mail/vendor/treetop-1.4.3/spec/ruby_extensions/string_spec.rb +1 -1
- data/lib/mail/vendor/treetop-1.4.3/spec/runtime/compiled_parser_spec.rb +1 -1
- data/lib/mail/vendor/treetop-1.4.3/spec/runtime/interval_skip_list/delete_spec.rb +2 -2
- data/lib/mail/vendor/treetop-1.4.3/spec/runtime/interval_skip_list/expire_range_spec.rb +2 -2
- data/lib/mail/vendor/treetop-1.4.3/spec/runtime/interval_skip_list/insert_spec.rb +1 -1
- data/lib/mail/vendor/treetop-1.4.3/spec/runtime/interval_skip_list/interval_skip_list_spec.rb +2 -2
- data/lib/mail/vendor/treetop-1.4.3/spec/runtime/interval_skip_list/palindromic_fixture_spec.rb +2 -3
- data/lib/mail/vendor/treetop-1.4.3/spec/runtime/interval_skip_list/spec_helper.rb +2 -2
- data/lib/mail/vendor/treetop-1.4.3/spec/runtime/syntax_node_spec.rb +1 -1
- data/lib/mail/vendor/treetop-1.4.3/spec/spec_helper.rb +4 -5
- data/lib/mail/vendor/treetop-1.4.3/treetop.gemspec +2 -2
- data/lib/mail/version.rb +1 -1
- data/lib/mail/version_specific/ruby_1_8.rb +1 -3
- data/lib/mail/version_specific/ruby_1_9.rb +1 -2
- data/lib/tasks/treetop.rake +1 -1
- metadata +33 -14
- data/lib/mail/vendor/treetop-1.4.3/spec/spec_suite.rb +0 -4
@@ -5,20 +5,15 @@ module Mail
|
|
5
5
|
include RFC2045
|
6
6
|
|
7
7
|
rule primary
|
8
|
-
CFWS encoding CFWS
|
8
|
+
CFWS encoding CFWS ";"? CFWS
|
9
9
|
end
|
10
10
|
|
11
11
|
rule encoding
|
12
|
-
|
13
|
-
def
|
14
|
-
|
12
|
+
ietf_token "s"? {
|
13
|
+
def text_value
|
14
|
+
ietf_token.text_value
|
15
15
|
end
|
16
|
-
}
|
17
|
-
end
|
18
|
-
|
19
|
-
rule known_tokens
|
20
|
-
"7bit" / "8bit" / "binary" /
|
21
|
-
"quoted-printable" / "base64"
|
16
|
+
} / x_token
|
22
17
|
end
|
23
18
|
|
24
19
|
end
|
@@ -53,7 +53,10 @@ module Mail
|
|
53
53
|
start_index = index
|
54
54
|
if node_cache[:content_type].has_key?(index)
|
55
55
|
cached = node_cache[:content_type][index]
|
56
|
-
|
56
|
+
if cached
|
57
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
58
|
+
@index = cached.interval.end
|
59
|
+
end
|
57
60
|
return cached
|
58
61
|
end
|
59
62
|
|
@@ -137,7 +140,10 @@ module Mail
|
|
137
140
|
start_index = index
|
138
141
|
if node_cache[:main_type].has_key?(index)
|
139
142
|
cached = node_cache[:main_type][index]
|
140
|
-
|
143
|
+
if cached
|
144
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
145
|
+
@index = cached.interval.end
|
146
|
+
end
|
141
147
|
return cached
|
142
148
|
end
|
143
149
|
|
@@ -164,7 +170,10 @@ module Mail
|
|
164
170
|
start_index = index
|
165
171
|
if node_cache[:discrete_type].has_key?(index)
|
166
172
|
cached = node_cache[:discrete_type][index]
|
167
|
-
|
173
|
+
if cached
|
174
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
175
|
+
@index = cached.interval.end
|
176
|
+
end
|
168
177
|
return cached
|
169
178
|
end
|
170
179
|
|
@@ -241,7 +250,10 @@ module Mail
|
|
241
250
|
start_index = index
|
242
251
|
if node_cache[:composite_type].has_key?(index)
|
243
252
|
cached = node_cache[:composite_type][index]
|
244
|
-
|
253
|
+
if cached
|
254
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
255
|
+
@index = cached.interval.end
|
256
|
+
end
|
245
257
|
return cached
|
246
258
|
end
|
247
259
|
|
@@ -285,7 +297,10 @@ module Mail
|
|
285
297
|
start_index = index
|
286
298
|
if node_cache[:extension_token].has_key?(index)
|
287
299
|
cached = node_cache[:extension_token][index]
|
288
|
-
|
300
|
+
if cached
|
301
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
302
|
+
@index = cached.interval.end
|
303
|
+
end
|
289
304
|
return cached
|
290
305
|
end
|
291
306
|
|
@@ -312,7 +327,10 @@ module Mail
|
|
312
327
|
start_index = index
|
313
328
|
if node_cache[:sub_type].has_key?(index)
|
314
329
|
cached = node_cache[:sub_type][index]
|
315
|
-
|
330
|
+
if cached
|
331
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
332
|
+
@index = cached.interval.end
|
333
|
+
end
|
316
334
|
return cached
|
317
335
|
end
|
318
336
|
|
@@ -356,7 +374,10 @@ module Mail
|
|
356
374
|
start_index = index
|
357
375
|
if node_cache[:parameter].has_key?(index)
|
358
376
|
cached = node_cache[:parameter][index]
|
359
|
-
|
377
|
+
if cached
|
378
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
379
|
+
@index = cached.interval.end
|
380
|
+
end
|
360
381
|
return cached
|
361
382
|
end
|
362
383
|
|
@@ -413,7 +434,10 @@ module Mail
|
|
413
434
|
start_index = index
|
414
435
|
if node_cache[:attribute].has_key?(index)
|
415
436
|
cached = node_cache[:attribute][index]
|
416
|
-
|
437
|
+
if cached
|
438
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
439
|
+
@index = cached.interval.end
|
440
|
+
end
|
417
441
|
return cached
|
418
442
|
end
|
419
443
|
|
@@ -448,7 +472,10 @@ module Mail
|
|
448
472
|
start_index = index
|
449
473
|
if node_cache[:value].has_key?(index)
|
450
474
|
cached = node_cache[:value][index]
|
451
|
-
|
475
|
+
if cached
|
476
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
477
|
+
@index = cached.interval.end
|
478
|
+
end
|
452
479
|
return cached
|
453
480
|
end
|
454
481
|
|
@@ -37,7 +37,10 @@ module Mail
|
|
37
37
|
start_index = index
|
38
38
|
if node_cache[:primary].has_key?(index)
|
39
39
|
cached = node_cache[:primary][index]
|
40
|
-
|
40
|
+
if cached
|
41
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
42
|
+
@index = cached.interval.end
|
43
|
+
end
|
41
44
|
return cached
|
42
45
|
end
|
43
46
|
|
@@ -25,7 +25,10 @@ module Mail
|
|
25
25
|
start_index = index
|
26
26
|
if node_cache[:primary].has_key?(index)
|
27
27
|
cached = node_cache[:primary][index]
|
28
|
-
|
28
|
+
if cached
|
29
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
30
|
+
@index = cached.interval.end
|
31
|
+
end
|
29
32
|
return cached
|
30
33
|
end
|
31
34
|
|
@@ -75,7 +78,10 @@ module Mail
|
|
75
78
|
start_index = index
|
76
79
|
if node_cache[:ctime_date].has_key?(index)
|
77
80
|
cached = node_cache[:ctime_date][index]
|
78
|
-
|
81
|
+
if cached
|
82
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
83
|
+
@index = cached.interval.end
|
84
|
+
end
|
79
85
|
return cached
|
80
86
|
end
|
81
87
|
|
@@ -21,7 +21,10 @@ module Mail
|
|
21
21
|
start_index = index
|
22
22
|
if node_cache[:primary].has_key?(index)
|
23
23
|
cached = node_cache[:primary][index]
|
24
|
-
|
24
|
+
if cached
|
25
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
26
|
+
@index = cached.interval.end
|
27
|
+
end
|
25
28
|
return cached
|
26
29
|
end
|
27
30
|
|
@@ -43,7 +43,10 @@ module Mail
|
|
43
43
|
start_index = index
|
44
44
|
if node_cache[:version].has_key?(index)
|
45
45
|
cached = node_cache[:version][index]
|
46
|
-
|
46
|
+
if cached
|
47
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
48
|
+
@index = cached.interval.end
|
49
|
+
end
|
47
50
|
return cached
|
48
51
|
end
|
49
52
|
|
@@ -21,7 +21,10 @@ module Mail
|
|
21
21
|
start_index = index
|
22
22
|
if node_cache[:primary_phrase].has_key?(index)
|
23
23
|
cached = node_cache[:primary_phrase][index]
|
24
|
-
|
24
|
+
if cached
|
25
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
26
|
+
@index = cached.interval.end
|
27
|
+
end
|
25
28
|
return cached
|
26
29
|
end
|
27
30
|
|
@@ -25,7 +25,10 @@ module Mail
|
|
25
25
|
start_index = index
|
26
26
|
if node_cache[:primary].has_key?(index)
|
27
27
|
cached = node_cache[:primary][index]
|
28
|
-
|
28
|
+
if cached
|
29
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
30
|
+
@index = cached.interval.end
|
31
|
+
end
|
29
32
|
return cached
|
30
33
|
end
|
31
34
|
|
data/lib/mail/parsers/rfc2045.rb
CHANGED
@@ -13,7 +13,10 @@ module Mail
|
|
13
13
|
start_index = index
|
14
14
|
if node_cache[:tspecials].has_key?(index)
|
15
15
|
cached = node_cache[:tspecials][index]
|
16
|
-
|
16
|
+
if cached
|
17
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
18
|
+
@index = cached.interval.end
|
19
|
+
end
|
17
20
|
return cached
|
18
21
|
end
|
19
22
|
|
@@ -206,24 +209,70 @@ module Mail
|
|
206
209
|
start_index = index
|
207
210
|
if node_cache[:ietf_token].has_key?(index)
|
208
211
|
cached = node_cache[:ietf_token][index]
|
209
|
-
|
212
|
+
if cached
|
213
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
214
|
+
@index = cached.interval.end
|
215
|
+
end
|
210
216
|
return cached
|
211
217
|
end
|
212
218
|
|
213
|
-
|
214
|
-
|
215
|
-
r1 =
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
end
|
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
|
221
226
|
end
|
222
|
-
if
|
223
|
-
|
224
|
-
r0 = nil
|
227
|
+
if r1
|
228
|
+
r0 = r1
|
225
229
|
else
|
226
|
-
|
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
|
227
276
|
end
|
228
277
|
|
229
278
|
node_cache[:ietf_token][start_index] = r0
|
@@ -238,7 +287,10 @@ module Mail
|
|
238
287
|
start_index = index
|
239
288
|
if node_cache[:x_token].has_key?(index)
|
240
289
|
cached = node_cache[:x_token][index]
|
241
|
-
|
290
|
+
if cached
|
291
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
292
|
+
@index = cached.interval.end
|
293
|
+
end
|
242
294
|
return cached
|
243
295
|
end
|
244
296
|
|
@@ -295,7 +347,10 @@ module Mail
|
|
295
347
|
start_index = index
|
296
348
|
if node_cache[:iana_token].has_key?(index)
|
297
349
|
cached = node_cache[:iana_token][index]
|
298
|
-
|
350
|
+
if cached
|
351
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
352
|
+
@index = cached.interval.end
|
353
|
+
end
|
299
354
|
return cached
|
300
355
|
end
|
301
356
|
|
@@ -324,7 +379,10 @@ module Mail
|
|
324
379
|
start_index = index
|
325
380
|
if node_cache[:token].has_key?(index)
|
326
381
|
cached = node_cache[:token][index]
|
327
|
-
|
382
|
+
if cached
|
383
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
384
|
+
@index = cached.interval.end
|
385
|
+
end
|
328
386
|
return cached
|
329
387
|
end
|
330
388
|
|
data/lib/mail/parsers/rfc2822.rb
CHANGED
@@ -15,7 +15,10 @@ module Mail
|
|
15
15
|
start_index = index
|
16
16
|
if node_cache[:ALPHA].has_key?(index)
|
17
17
|
cached = node_cache[:ALPHA][index]
|
18
|
-
|
18
|
+
if cached
|
19
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
20
|
+
@index = cached.interval.end
|
21
|
+
end
|
19
22
|
return cached
|
20
23
|
end
|
21
24
|
|
@@ -35,7 +38,10 @@ module Mail
|
|
35
38
|
start_index = index
|
36
39
|
if node_cache[:DIGIT].has_key?(index)
|
37
40
|
cached = node_cache[:DIGIT][index]
|
38
|
-
|
41
|
+
if cached
|
42
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
43
|
+
@index = cached.interval.end
|
44
|
+
end
|
39
45
|
return cached
|
40
46
|
end
|
41
47
|
|
@@ -55,7 +61,10 @@ module Mail
|
|
55
61
|
start_index = index
|
56
62
|
if node_cache[:DQUOTE].has_key?(index)
|
57
63
|
cached = node_cache[:DQUOTE][index]
|
58
|
-
|
64
|
+
if cached
|
65
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
66
|
+
@index = cached.interval.end
|
67
|
+
end
|
59
68
|
return cached
|
60
69
|
end
|
61
70
|
|
@@ -76,7 +85,10 @@ module Mail
|
|
76
85
|
start_index = index
|
77
86
|
if node_cache[:LF].has_key?(index)
|
78
87
|
cached = node_cache[:LF][index]
|
79
|
-
|
88
|
+
if cached
|
89
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
90
|
+
@index = cached.interval.end
|
91
|
+
end
|
80
92
|
return cached
|
81
93
|
end
|
82
94
|
|
@@ -97,7 +109,10 @@ module Mail
|
|
97
109
|
start_index = index
|
98
110
|
if node_cache[:CR].has_key?(index)
|
99
111
|
cached = node_cache[:CR][index]
|
100
|
-
|
112
|
+
if cached
|
113
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
114
|
+
@index = cached.interval.end
|
115
|
+
end
|
101
116
|
return cached
|
102
117
|
end
|
103
118
|
|
@@ -118,7 +133,10 @@ module Mail
|
|
118
133
|
start_index = index
|
119
134
|
if node_cache[:CRLF].has_key?(index)
|
120
135
|
cached = node_cache[:CRLF][index]
|
121
|
-
|
136
|
+
if cached
|
137
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
138
|
+
@index = cached.interval.end
|
139
|
+
end
|
122
140
|
return cached
|
123
141
|
end
|
124
142
|
|
@@ -139,7 +157,10 @@ module Mail
|
|
139
157
|
start_index = index
|
140
158
|
if node_cache[:WSP].has_key?(index)
|
141
159
|
cached = node_cache[:WSP][index]
|
142
|
-
|
160
|
+
if cached
|
161
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
162
|
+
@index = cached.interval.end
|
163
|
+
end
|
143
164
|
return cached
|
144
165
|
end
|
145
166
|
|
@@ -159,7 +180,10 @@ module Mail
|
|
159
180
|
start_index = index
|
160
181
|
if node_cache[:NO_WS_CTL].has_key?(index)
|
161
182
|
cached = node_cache[:NO_WS_CTL][index]
|
162
|
-
|
183
|
+
if cached
|
184
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
185
|
+
@index = cached.interval.end
|
186
|
+
end
|
163
187
|
return cached
|
164
188
|
end
|
165
189
|
|
@@ -216,7 +240,10 @@ module Mail
|
|
216
240
|
start_index = index
|
217
241
|
if node_cache[:specials].has_key?(index)
|
218
242
|
cached = node_cache[:specials][index]
|
219
|
-
|
243
|
+
if cached
|
244
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
245
|
+
@index = cached.interval.end
|
246
|
+
end
|
220
247
|
return cached
|
221
248
|
end
|
222
249
|
|
@@ -384,7 +411,10 @@ module Mail
|
|
384
411
|
start_index = index
|
385
412
|
if node_cache[:FWS].has_key?(index)
|
386
413
|
cached = node_cache[:FWS][index]
|
387
|
-
|
414
|
+
if cached
|
415
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
416
|
+
@index = cached.interval.end
|
417
|
+
end
|
388
418
|
return cached
|
389
419
|
end
|
390
420
|
|
@@ -492,7 +522,10 @@ module Mail
|
|
492
522
|
start_index = index
|
493
523
|
if node_cache[:CFWS].has_key?(index)
|
494
524
|
cached = node_cache[:CFWS][index]
|
495
|
-
|
525
|
+
if cached
|
526
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
527
|
+
@index = cached.interval.end
|
528
|
+
end
|
496
529
|
return cached
|
497
530
|
end
|
498
531
|
|
@@ -556,7 +589,10 @@ module Mail
|
|
556
589
|
start_index = index
|
557
590
|
if node_cache[:ctext].has_key?(index)
|
558
591
|
cached = node_cache[:ctext][index]
|
559
|
-
|
592
|
+
if cached
|
593
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
594
|
+
@index = cached.interval.end
|
595
|
+
end
|
560
596
|
return cached
|
561
597
|
end
|
562
598
|
|
@@ -608,7 +644,10 @@ module Mail
|
|
608
644
|
start_index = index
|
609
645
|
if node_cache[:ccontent].has_key?(index)
|
610
646
|
cached = node_cache[:ccontent][index]
|
611
|
-
|
647
|
+
if cached
|
648
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
649
|
+
@index = cached.interval.end
|
650
|
+
end
|
612
651
|
return cached
|
613
652
|
end
|
614
653
|
|
@@ -649,7 +688,10 @@ module Mail
|
|
649
688
|
start_index = index
|
650
689
|
if node_cache[:comment].has_key?(index)
|
651
690
|
cached = node_cache[:comment][index]
|
652
|
-
|
691
|
+
if cached
|
692
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
693
|
+
@index = cached.interval.end
|
694
|
+
end
|
653
695
|
return cached
|
654
696
|
end
|
655
697
|
|
@@ -729,7 +771,10 @@ module Mail
|
|
729
771
|
start_index = index
|
730
772
|
if node_cache[:atext].has_key?(index)
|
731
773
|
cached = node_cache[:atext][index]
|
732
|
-
|
774
|
+
if cached
|
775
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
776
|
+
@index = cached.interval.end
|
777
|
+
end
|
733
778
|
return cached
|
734
779
|
end
|
735
780
|
|
@@ -965,7 +1010,10 @@ module Mail
|
|
965
1010
|
start_index = index
|
966
1011
|
if node_cache[:mtext].has_key?(index)
|
967
1012
|
cached = node_cache[:mtext][index]
|
968
|
-
|
1013
|
+
if cached
|
1014
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1015
|
+
@index = cached.interval.end
|
1016
|
+
end
|
969
1017
|
return cached
|
970
1018
|
end
|
971
1019
|
|
@@ -1015,7 +1063,10 @@ module Mail
|
|
1015
1063
|
start_index = index
|
1016
1064
|
if node_cache[:atom].has_key?(index)
|
1017
1065
|
cached = node_cache[:atom][index]
|
1018
|
-
|
1066
|
+
if cached
|
1067
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1068
|
+
@index = cached.interval.end
|
1069
|
+
end
|
1019
1070
|
return cached
|
1020
1071
|
end
|
1021
1072
|
|
@@ -1078,7 +1129,10 @@ module Mail
|
|
1078
1129
|
start_index = index
|
1079
1130
|
if node_cache[:dot_atom].has_key?(index)
|
1080
1131
|
cached = node_cache[:dot_atom][index]
|
1081
|
-
|
1132
|
+
if cached
|
1133
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1134
|
+
@index = cached.interval.end
|
1135
|
+
end
|
1082
1136
|
return cached
|
1083
1137
|
end
|
1084
1138
|
|
@@ -1127,7 +1181,10 @@ module Mail
|
|
1127
1181
|
start_index = index
|
1128
1182
|
if node_cache[:local_dot_atom].has_key?(index)
|
1129
1183
|
cached = node_cache[:local_dot_atom][index]
|
1130
|
-
|
1184
|
+
if cached
|
1185
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1186
|
+
@index = cached.interval.end
|
1187
|
+
end
|
1131
1188
|
return cached
|
1132
1189
|
end
|
1133
1190
|
|
@@ -1169,7 +1226,10 @@ module Mail
|
|
1169
1226
|
start_index = index
|
1170
1227
|
if node_cache[:message_id_text].has_key?(index)
|
1171
1228
|
cached = node_cache[:message_id_text][index]
|
1172
|
-
|
1229
|
+
if cached
|
1230
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1231
|
+
@index = cached.interval.end
|
1232
|
+
end
|
1173
1233
|
return cached
|
1174
1234
|
end
|
1175
1235
|
|
@@ -1205,7 +1265,10 @@ module Mail
|
|
1205
1265
|
start_index = index
|
1206
1266
|
if node_cache[:dot_atom_text].has_key?(index)
|
1207
1267
|
cached = node_cache[:dot_atom_text][index]
|
1208
|
-
|
1268
|
+
if cached
|
1269
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1270
|
+
@index = cached.interval.end
|
1271
|
+
end
|
1209
1272
|
return cached
|
1210
1273
|
end
|
1211
1274
|
|
@@ -1264,7 +1327,10 @@ module Mail
|
|
1264
1327
|
start_index = index
|
1265
1328
|
if node_cache[:local_dot_atom_text].has_key?(index)
|
1266
1329
|
cached = node_cache[:local_dot_atom_text][index]
|
1267
|
-
|
1330
|
+
if cached
|
1331
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1332
|
+
@index = cached.interval.end
|
1333
|
+
end
|
1268
1334
|
return cached
|
1269
1335
|
end
|
1270
1336
|
|
@@ -1337,7 +1403,10 @@ module Mail
|
|
1337
1403
|
start_index = index
|
1338
1404
|
if node_cache[:domain_text].has_key?(index)
|
1339
1405
|
cached = node_cache[:domain_text][index]
|
1340
|
-
|
1406
|
+
if cached
|
1407
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1408
|
+
@index = cached.interval.end
|
1409
|
+
end
|
1341
1410
|
return cached
|
1342
1411
|
end
|
1343
1412
|
|
@@ -1442,7 +1511,10 @@ module Mail
|
|
1442
1511
|
start_index = index
|
1443
1512
|
if node_cache[:quoted_domain].has_key?(index)
|
1444
1513
|
cached = node_cache[:quoted_domain][index]
|
1445
|
-
|
1514
|
+
if cached
|
1515
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1516
|
+
@index = cached.interval.end
|
1517
|
+
end
|
1446
1518
|
return cached
|
1447
1519
|
end
|
1448
1520
|
|
@@ -1488,7 +1560,10 @@ module Mail
|
|
1488
1560
|
start_index = index
|
1489
1561
|
if node_cache[:qdcontent].has_key?(index)
|
1490
1562
|
cached = node_cache[:qdcontent][index]
|
1491
|
-
|
1563
|
+
if cached
|
1564
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1565
|
+
@index = cached.interval.end
|
1566
|
+
end
|
1492
1567
|
return cached
|
1493
1568
|
end
|
1494
1569
|
|
@@ -1550,7 +1625,10 @@ module Mail
|
|
1550
1625
|
start_index = index
|
1551
1626
|
if node_cache[:word].has_key?(index)
|
1552
1627
|
cached = node_cache[:word][index]
|
1553
|
-
|
1628
|
+
if cached
|
1629
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1630
|
+
@index = cached.interval.end
|
1631
|
+
end
|
1554
1632
|
return cached
|
1555
1633
|
end
|
1556
1634
|
|
@@ -1593,7 +1671,10 @@ module Mail
|
|
1593
1671
|
start_index = index
|
1594
1672
|
if node_cache[:phrase_list].has_key?(index)
|
1595
1673
|
cached = node_cache[:phrase_list][index]
|
1596
|
-
|
1674
|
+
if cached
|
1675
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1676
|
+
@index = cached.interval.end
|
1677
|
+
end
|
1597
1678
|
return cached
|
1598
1679
|
end
|
1599
1680
|
|
@@ -1662,7 +1743,10 @@ module Mail
|
|
1662
1743
|
start_index = index
|
1663
1744
|
if node_cache[:phrase].has_key?(index)
|
1664
1745
|
cached = node_cache[:phrase][index]
|
1665
|
-
|
1746
|
+
if cached
|
1747
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1748
|
+
@index = cached.interval.end
|
1749
|
+
end
|
1666
1750
|
return cached
|
1667
1751
|
end
|
1668
1752
|
|
@@ -1712,7 +1796,10 @@ module Mail
|
|
1712
1796
|
start_index = index
|
1713
1797
|
if node_cache[:domain_literal].has_key?(index)
|
1714
1798
|
cached = node_cache[:domain_literal][index]
|
1715
|
-
|
1799
|
+
if cached
|
1800
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1801
|
+
@index = cached.interval.end
|
1802
|
+
end
|
1716
1803
|
return cached
|
1717
1804
|
end
|
1718
1805
|
|
@@ -1810,7 +1897,10 @@ module Mail
|
|
1810
1897
|
start_index = index
|
1811
1898
|
if node_cache[:dcontent].has_key?(index)
|
1812
1899
|
cached = node_cache[:dcontent][index]
|
1813
|
-
|
1900
|
+
if cached
|
1901
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1902
|
+
@index = cached.interval.end
|
1903
|
+
end
|
1814
1904
|
return cached
|
1815
1905
|
end
|
1816
1906
|
|
@@ -1837,7 +1927,10 @@ module Mail
|
|
1837
1927
|
start_index = index
|
1838
1928
|
if node_cache[:dtext].has_key?(index)
|
1839
1929
|
cached = node_cache[:dtext][index]
|
1840
|
-
|
1930
|
+
if cached
|
1931
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1932
|
+
@index = cached.interval.end
|
1933
|
+
end
|
1841
1934
|
return cached
|
1842
1935
|
end
|
1843
1936
|
|
@@ -1886,7 +1979,10 @@ module Mail
|
|
1886
1979
|
start_index = index
|
1887
1980
|
if node_cache[:angle_addr].has_key?(index)
|
1888
1981
|
cached = node_cache[:angle_addr][index]
|
1889
|
-
|
1982
|
+
if cached
|
1983
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
1984
|
+
@index = cached.interval.end
|
1985
|
+
end
|
1890
1986
|
return cached
|
1891
1987
|
end
|
1892
1988
|
|
@@ -1970,7 +2066,10 @@ module Mail
|
|
1970
2066
|
start_index = index
|
1971
2067
|
if node_cache[:addr_spec].has_key?(index)
|
1972
2068
|
cached = node_cache[:addr_spec][index]
|
1973
|
-
|
2069
|
+
if cached
|
2070
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2071
|
+
@index = cached.interval.end
|
2072
|
+
end
|
1974
2073
|
return cached
|
1975
2074
|
end
|
1976
2075
|
|
@@ -2020,7 +2119,10 @@ module Mail
|
|
2020
2119
|
start_index = index
|
2021
2120
|
if node_cache[:local_part].has_key?(index)
|
2022
2121
|
cached = node_cache[:local_part][index]
|
2023
|
-
|
2122
|
+
if cached
|
2123
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2124
|
+
@index = cached.interval.end
|
2125
|
+
end
|
2024
2126
|
return cached
|
2025
2127
|
end
|
2026
2128
|
|
@@ -2052,7 +2154,10 @@ module Mail
|
|
2052
2154
|
start_index = index
|
2053
2155
|
if node_cache[:domain].has_key?(index)
|
2054
2156
|
cached = node_cache[:domain][index]
|
2055
|
-
|
2157
|
+
if cached
|
2158
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2159
|
+
@index = cached.interval.end
|
2160
|
+
end
|
2056
2161
|
return cached
|
2057
2162
|
end
|
2058
2163
|
|
@@ -2095,7 +2200,10 @@ module Mail
|
|
2095
2200
|
start_index = index
|
2096
2201
|
if node_cache[:group].has_key?(index)
|
2097
2202
|
cached = node_cache[:group][index]
|
2098
|
-
|
2203
|
+
if cached
|
2204
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2205
|
+
@index = cached.interval.end
|
2206
|
+
end
|
2099
2207
|
return cached
|
2100
2208
|
end
|
2101
2209
|
|
@@ -2175,7 +2283,10 @@ module Mail
|
|
2175
2283
|
start_index = index
|
2176
2284
|
if node_cache[:mailbox_list_group].has_key?(index)
|
2177
2285
|
cached = node_cache[:mailbox_list_group][index]
|
2178
|
-
|
2286
|
+
if cached
|
2287
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2288
|
+
@index = cached.interval.end
|
2289
|
+
end
|
2179
2290
|
return cached
|
2180
2291
|
end
|
2181
2292
|
|
@@ -2212,7 +2323,10 @@ module Mail
|
|
2212
2323
|
start_index = index
|
2213
2324
|
if node_cache[:quoted_string].has_key?(index)
|
2214
2325
|
cached = node_cache[:quoted_string][index]
|
2215
|
-
|
2326
|
+
if cached
|
2327
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2328
|
+
@index = cached.interval.end
|
2329
|
+
end
|
2216
2330
|
return cached
|
2217
2331
|
end
|
2218
2332
|
|
@@ -2303,7 +2417,10 @@ module Mail
|
|
2303
2417
|
start_index = index
|
2304
2418
|
if node_cache[:qcontent].has_key?(index)
|
2305
2419
|
cached = node_cache[:qcontent][index]
|
2306
|
-
|
2420
|
+
if cached
|
2421
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2422
|
+
@index = cached.interval.end
|
2423
|
+
end
|
2307
2424
|
return cached
|
2308
2425
|
end
|
2309
2426
|
|
@@ -2336,7 +2453,10 @@ module Mail
|
|
2336
2453
|
start_index = index
|
2337
2454
|
if node_cache[:quoted_pair].has_key?(index)
|
2338
2455
|
cached = node_cache[:quoted_pair][index]
|
2339
|
-
|
2456
|
+
if cached
|
2457
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2458
|
+
@index = cached.interval.end
|
2459
|
+
end
|
2340
2460
|
return cached
|
2341
2461
|
end
|
2342
2462
|
|
@@ -2382,7 +2502,10 @@ module Mail
|
|
2382
2502
|
start_index = index
|
2383
2503
|
if node_cache[:qtext].has_key?(index)
|
2384
2504
|
cached = node_cache[:qtext][index]
|
2385
|
-
|
2505
|
+
if cached
|
2506
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2507
|
+
@index = cached.interval.end
|
2508
|
+
end
|
2386
2509
|
return cached
|
2387
2510
|
end
|
2388
2511
|
|
@@ -2434,7 +2557,10 @@ module Mail
|
|
2434
2557
|
start_index = index
|
2435
2558
|
if node_cache[:text].has_key?(index)
|
2436
2559
|
cached = node_cache[:text][index]
|
2437
|
-
|
2560
|
+
if cached
|
2561
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2562
|
+
@index = cached.interval.end
|
2563
|
+
end
|
2438
2564
|
return cached
|
2439
2565
|
end
|
2440
2566
|
|
@@ -2486,7 +2612,10 @@ module Mail
|
|
2486
2612
|
start_index = index
|
2487
2613
|
if node_cache[:display_name].has_key?(index)
|
2488
2614
|
cached = node_cache[:display_name][index]
|
2489
|
-
|
2615
|
+
if cached
|
2616
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2617
|
+
@index = cached.interval.end
|
2618
|
+
end
|
2490
2619
|
return cached
|
2491
2620
|
end
|
2492
2621
|
|
@@ -2511,7 +2640,10 @@ module Mail
|
|
2511
2640
|
start_index = index
|
2512
2641
|
if node_cache[:name_addr].has_key?(index)
|
2513
2642
|
cached = node_cache[:name_addr][index]
|
2514
|
-
|
2643
|
+
if cached
|
2644
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2645
|
+
@index = cached.interval.end
|
2646
|
+
end
|
2515
2647
|
return cached
|
2516
2648
|
end
|
2517
2649
|
|
@@ -2567,7 +2699,10 @@ module Mail
|
|
2567
2699
|
start_index = index
|
2568
2700
|
if node_cache[:mailbox_list].has_key?(index)
|
2569
2701
|
cached = node_cache[:mailbox_list][index]
|
2570
|
-
|
2702
|
+
if cached
|
2703
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2704
|
+
@index = cached.interval.end
|
2705
|
+
end
|
2571
2706
|
return cached
|
2572
2707
|
end
|
2573
2708
|
|
@@ -2635,7 +2770,10 @@ module Mail
|
|
2635
2770
|
start_index = index
|
2636
2771
|
if node_cache[:mailbox].has_key?(index)
|
2637
2772
|
cached = node_cache[:mailbox][index]
|
2638
|
-
|
2773
|
+
if cached
|
2774
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2775
|
+
@index = cached.interval.end
|
2776
|
+
end
|
2639
2777
|
return cached
|
2640
2778
|
end
|
2641
2779
|
|
@@ -2698,7 +2836,10 @@ module Mail
|
|
2698
2836
|
start_index = index
|
2699
2837
|
if node_cache[:address].has_key?(index)
|
2700
2838
|
cached = node_cache[:address][index]
|
2701
|
-
|
2839
|
+
if cached
|
2840
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2841
|
+
@index = cached.interval.end
|
2842
|
+
end
|
2702
2843
|
return cached
|
2703
2844
|
end
|
2704
2845
|
|
@@ -2743,7 +2884,10 @@ module Mail
|
|
2743
2884
|
start_index = index
|
2744
2885
|
if node_cache[:address_list].has_key?(index)
|
2745
2886
|
cached = node_cache[:address_list][index]
|
2746
|
-
|
2887
|
+
if cached
|
2888
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2889
|
+
@index = cached.interval.end
|
2890
|
+
end
|
2747
2891
|
return cached
|
2748
2892
|
end
|
2749
2893
|
|
@@ -2834,7 +2978,10 @@ module Mail
|
|
2834
2978
|
start_index = index
|
2835
2979
|
if node_cache[:date_time].has_key?(index)
|
2836
2980
|
cached = node_cache[:date_time][index]
|
2837
|
-
|
2981
|
+
if cached
|
2982
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
2983
|
+
@index = cached.interval.end
|
2984
|
+
end
|
2838
2985
|
return cached
|
2839
2986
|
end
|
2840
2987
|
|
@@ -2909,7 +3056,10 @@ module Mail
|
|
2909
3056
|
start_index = index
|
2910
3057
|
if node_cache[:day_of_week].has_key?(index)
|
2911
3058
|
cached = node_cache[:day_of_week][index]
|
2912
|
-
|
3059
|
+
if cached
|
3060
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3061
|
+
@index = cached.interval.end
|
3062
|
+
end
|
2913
3063
|
return cached
|
2914
3064
|
end
|
2915
3065
|
|
@@ -2954,7 +3104,10 @@ module Mail
|
|
2954
3104
|
start_index = index
|
2955
3105
|
if node_cache[:day_name].has_key?(index)
|
2956
3106
|
cached = node_cache[:day_name][index]
|
2957
|
-
|
3107
|
+
if cached
|
3108
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3109
|
+
@index = cached.interval.end
|
3110
|
+
end
|
2958
3111
|
return cached
|
2959
3112
|
end
|
2960
3113
|
|
@@ -3062,7 +3215,10 @@ module Mail
|
|
3062
3215
|
start_index = index
|
3063
3216
|
if node_cache[:date].has_key?(index)
|
3064
3217
|
cached = node_cache[:date][index]
|
3065
|
-
|
3218
|
+
if cached
|
3219
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3220
|
+
@index = cached.interval.end
|
3221
|
+
end
|
3066
3222
|
return cached
|
3067
3223
|
end
|
3068
3224
|
|
@@ -3112,7 +3268,10 @@ module Mail
|
|
3112
3268
|
start_index = index
|
3113
3269
|
if node_cache[:year].has_key?(index)
|
3114
3270
|
cached = node_cache[:year][index]
|
3115
|
-
|
3271
|
+
if cached
|
3272
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3273
|
+
@index = cached.interval.end
|
3274
|
+
end
|
3116
3275
|
return cached
|
3117
3276
|
end
|
3118
3277
|
|
@@ -3174,7 +3333,10 @@ module Mail
|
|
3174
3333
|
start_index = index
|
3175
3334
|
if node_cache[:month].has_key?(index)
|
3176
3335
|
cached = node_cache[:month][index]
|
3177
|
-
|
3336
|
+
if cached
|
3337
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3338
|
+
@index = cached.interval.end
|
3339
|
+
end
|
3178
3340
|
return cached
|
3179
3341
|
end
|
3180
3342
|
|
@@ -3218,7 +3380,10 @@ module Mail
|
|
3218
3380
|
start_index = index
|
3219
3381
|
if node_cache[:month_name].has_key?(index)
|
3220
3382
|
cached = node_cache[:month_name][index]
|
3221
|
-
|
3383
|
+
if cached
|
3384
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3385
|
+
@index = cached.interval.end
|
3386
|
+
end
|
3222
3387
|
return cached
|
3223
3388
|
end
|
3224
3389
|
|
@@ -3374,7 +3539,10 @@ module Mail
|
|
3374
3539
|
start_index = index
|
3375
3540
|
if node_cache[:day].has_key?(index)
|
3376
3541
|
cached = node_cache[:day][index]
|
3377
|
-
|
3542
|
+
if cached
|
3543
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3544
|
+
@index = cached.interval.end
|
3545
|
+
end
|
3378
3546
|
return cached
|
3379
3547
|
end
|
3380
3548
|
|
@@ -3442,7 +3610,10 @@ module Mail
|
|
3442
3610
|
start_index = index
|
3443
3611
|
if node_cache[:time].has_key?(index)
|
3444
3612
|
cached = node_cache[:time][index]
|
3445
|
-
|
3613
|
+
if cached
|
3614
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3615
|
+
@index = cached.interval.end
|
3616
|
+
end
|
3446
3617
|
return cached
|
3447
3618
|
end
|
3448
3619
|
|
@@ -3491,7 +3662,10 @@ module Mail
|
|
3491
3662
|
start_index = index
|
3492
3663
|
if node_cache[:time_of_day].has_key?(index)
|
3493
3664
|
cached = node_cache[:time_of_day][index]
|
3494
|
-
|
3665
|
+
if cached
|
3666
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3667
|
+
@index = cached.interval.end
|
3668
|
+
end
|
3495
3669
|
return cached
|
3496
3670
|
end
|
3497
3671
|
|
@@ -3567,7 +3741,10 @@ module Mail
|
|
3567
3741
|
start_index = index
|
3568
3742
|
if node_cache[:hour].has_key?(index)
|
3569
3743
|
cached = node_cache[:hour][index]
|
3570
|
-
|
3744
|
+
if cached
|
3745
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3746
|
+
@index = cached.interval.end
|
3747
|
+
end
|
3571
3748
|
return cached
|
3572
3749
|
end
|
3573
3750
|
|
@@ -3617,7 +3794,10 @@ module Mail
|
|
3617
3794
|
start_index = index
|
3618
3795
|
if node_cache[:minute].has_key?(index)
|
3619
3796
|
cached = node_cache[:minute][index]
|
3620
|
-
|
3797
|
+
if cached
|
3798
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3799
|
+
@index = cached.interval.end
|
3800
|
+
end
|
3621
3801
|
return cached
|
3622
3802
|
end
|
3623
3803
|
|
@@ -3667,7 +3847,10 @@ module Mail
|
|
3667
3847
|
start_index = index
|
3668
3848
|
if node_cache[:second].has_key?(index)
|
3669
3849
|
cached = node_cache[:second][index]
|
3670
|
-
|
3850
|
+
if cached
|
3851
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3852
|
+
@index = cached.interval.end
|
3853
|
+
end
|
3671
3854
|
return cached
|
3672
3855
|
end
|
3673
3856
|
|
@@ -3725,7 +3908,10 @@ module Mail
|
|
3725
3908
|
start_index = index
|
3726
3909
|
if node_cache[:zone].has_key?(index)
|
3727
3910
|
cached = node_cache[:zone][index]
|
3728
|
-
|
3911
|
+
if cached
|
3912
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
3913
|
+
@index = cached.interval.end
|
3914
|
+
end
|
3729
3915
|
return cached
|
3730
3916
|
end
|
3731
3917
|
|
@@ -3811,7 +3997,10 @@ module Mail
|
|
3811
3997
|
start_index = index
|
3812
3998
|
if node_cache[:return].has_key?(index)
|
3813
3999
|
cached = node_cache[:return][index]
|
3814
|
-
|
4000
|
+
if cached
|
4001
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4002
|
+
@index = cached.interval.end
|
4003
|
+
end
|
3815
4004
|
return cached
|
3816
4005
|
end
|
3817
4006
|
|
@@ -3842,7 +4031,10 @@ module Mail
|
|
3842
4031
|
start_index = index
|
3843
4032
|
if node_cache[:path].has_key?(index)
|
3844
4033
|
cached = node_cache[:path][index]
|
3845
|
-
|
4034
|
+
if cached
|
4035
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4036
|
+
@index = cached.interval.end
|
4037
|
+
end
|
3846
4038
|
return cached
|
3847
4039
|
end
|
3848
4040
|
|
@@ -3947,7 +4139,10 @@ module Mail
|
|
3947
4139
|
start_index = index
|
3948
4140
|
if node_cache[:received].has_key?(index)
|
3949
4141
|
cached = node_cache[:received][index]
|
3950
|
-
|
4142
|
+
if cached
|
4143
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4144
|
+
@index = cached.interval.end
|
4145
|
+
end
|
3951
4146
|
return cached
|
3952
4147
|
end
|
3953
4148
|
|
@@ -4009,7 +4204,10 @@ module Mail
|
|
4009
4204
|
start_index = index
|
4010
4205
|
if node_cache[:name_val_list].has_key?(index)
|
4011
4206
|
cached = node_cache[:name_val_list][index]
|
4012
|
-
|
4207
|
+
if cached
|
4208
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4209
|
+
@index = cached.interval.end
|
4210
|
+
end
|
4013
4211
|
return cached
|
4014
4212
|
end
|
4015
4213
|
|
@@ -4091,7 +4289,10 @@ module Mail
|
|
4091
4289
|
start_index = index
|
4092
4290
|
if node_cache[:name_val_pair].has_key?(index)
|
4093
4291
|
cached = node_cache[:name_val_pair][index]
|
4094
|
-
|
4292
|
+
if cached
|
4293
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4294
|
+
@index = cached.interval.end
|
4295
|
+
end
|
4095
4296
|
return cached
|
4096
4297
|
end
|
4097
4298
|
|
@@ -4133,7 +4334,10 @@ module Mail
|
|
4133
4334
|
start_index = index
|
4134
4335
|
if node_cache[:item_name].has_key?(index)
|
4135
4336
|
cached = node_cache[:item_name][index]
|
4136
|
-
|
4337
|
+
if cached
|
4338
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4339
|
+
@index = cached.interval.end
|
4340
|
+
end
|
4137
4341
|
return cached
|
4138
4342
|
end
|
4139
4343
|
|
@@ -4206,7 +4410,10 @@ module Mail
|
|
4206
4410
|
start_index = index
|
4207
4411
|
if node_cache[:item_value].has_key?(index)
|
4208
4412
|
cached = node_cache[:item_value][index]
|
4209
|
-
|
4413
|
+
if cached
|
4414
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4415
|
+
@index = cached.interval.end
|
4416
|
+
end
|
4210
4417
|
return cached
|
4211
4418
|
end
|
4212
4419
|
|
@@ -4282,7 +4489,10 @@ module Mail
|
|
4282
4489
|
start_index = index
|
4283
4490
|
if node_cache[:message_ids].has_key?(index)
|
4284
4491
|
cached = node_cache[:message_ids][index]
|
4285
|
-
|
4492
|
+
if cached
|
4493
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4494
|
+
@index = cached.interval.end
|
4495
|
+
end
|
4286
4496
|
return cached
|
4287
4497
|
end
|
4288
4498
|
|
@@ -4339,7 +4549,10 @@ module Mail
|
|
4339
4549
|
start_index = index
|
4340
4550
|
if node_cache[:msg_id].has_key?(index)
|
4341
4551
|
cached = node_cache[:msg_id][index]
|
4342
|
-
|
4552
|
+
if cached
|
4553
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4554
|
+
@index = cached.interval.end
|
4555
|
+
end
|
4343
4556
|
return cached
|
4344
4557
|
end
|
4345
4558
|
|
@@ -4411,7 +4624,10 @@ module Mail
|
|
4411
4624
|
start_index = index
|
4412
4625
|
if node_cache[:msg_id_value].has_key?(index)
|
4413
4626
|
cached = node_cache[:msg_id_value][index]
|
4414
|
-
|
4627
|
+
if cached
|
4628
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4629
|
+
@index = cached.interval.end
|
4630
|
+
end
|
4415
4631
|
return cached
|
4416
4632
|
end
|
4417
4633
|
|
@@ -4449,7 +4665,10 @@ module Mail
|
|
4449
4665
|
start_index = index
|
4450
4666
|
if node_cache[:id_left].has_key?(index)
|
4451
4667
|
cached = node_cache[:id_left][index]
|
4452
|
-
|
4668
|
+
if cached
|
4669
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4670
|
+
@index = cached.interval.end
|
4671
|
+
end
|
4453
4672
|
return cached
|
4454
4673
|
end
|
4455
4674
|
|
@@ -4481,7 +4700,10 @@ module Mail
|
|
4481
4700
|
start_index = index
|
4482
4701
|
if node_cache[:id_right].has_key?(index)
|
4483
4702
|
cached = node_cache[:id_right][index]
|
4484
|
-
|
4703
|
+
if cached
|
4704
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4705
|
+
@index = cached.interval.end
|
4706
|
+
end
|
4485
4707
|
return cached
|
4486
4708
|
end
|
4487
4709
|
|
@@ -4520,7 +4742,10 @@ module Mail
|
|
4520
4742
|
start_index = index
|
4521
4743
|
if node_cache[:msg_id_dot_atom_text].has_key?(index)
|
4522
4744
|
cached = node_cache[:msg_id_dot_atom_text][index]
|
4523
|
-
|
4745
|
+
if cached
|
4746
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4747
|
+
@index = cached.interval.end
|
4748
|
+
end
|
4524
4749
|
return cached
|
4525
4750
|
end
|
4526
4751
|
|
@@ -4589,7 +4814,10 @@ module Mail
|
|
4589
4814
|
start_index = index
|
4590
4815
|
if node_cache[:msg_id_domain_text].has_key?(index)
|
4591
4816
|
cached = node_cache[:msg_id_domain_text][index]
|
4592
|
-
|
4817
|
+
if cached
|
4818
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4819
|
+
@index = cached.interval.end
|
4820
|
+
end
|
4593
4821
|
return cached
|
4594
4822
|
end
|
4595
4823
|
|
@@ -4688,7 +4916,10 @@ module Mail
|
|
4688
4916
|
start_index = index
|
4689
4917
|
if node_cache[:msg_id_atext].has_key?(index)
|
4690
4918
|
cached = node_cache[:msg_id_atext][index]
|
4691
|
-
|
4919
|
+
if cached
|
4920
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
4921
|
+
@index = cached.interval.end
|
4922
|
+
end
|
4692
4923
|
return cached
|
4693
4924
|
end
|
4694
4925
|
|
@@ -4945,7 +5176,10 @@ module Mail
|
|
4945
5176
|
start_index = index
|
4946
5177
|
if node_cache[:no_fold_quote].has_key?(index)
|
4947
5178
|
cached = node_cache[:no_fold_quote][index]
|
4948
|
-
|
5179
|
+
if cached
|
5180
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
5181
|
+
@index = cached.interval.end
|
5182
|
+
end
|
4949
5183
|
return cached
|
4950
5184
|
end
|
4951
5185
|
|
@@ -5006,7 +5240,10 @@ module Mail
|
|
5006
5240
|
start_index = index
|
5007
5241
|
if node_cache[:no_fold_literal].has_key?(index)
|
5008
5242
|
cached = node_cache[:no_fold_literal][index]
|
5009
|
-
|
5243
|
+
if cached
|
5244
|
+
cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
|
5245
|
+
@index = cached.interval.end
|
5246
|
+
end
|
5010
5247
|
return cached
|
5011
5248
|
end
|
5012
5249
|
|