mailparser 0.4.22a

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,883 @@
1
+ #
2
+ # DO NOT MODIFY!!!!
3
+ # This file is automatically generated by racc 1.4.5
4
+ # from racc grammer file "lib/mailparser/rfc2822/parser.y".
5
+ #
6
+
7
+ require 'racc/parser'
8
+
9
+
10
+ module MailParser
11
+
12
+ module RFC2822
13
+
14
+ class Parser < Racc::Parser
15
+
16
+ module_eval <<'..end lib/mailparser/rfc2822/parser.y modeval..id191275a7dd', 'lib/mailparser/rfc2822/parser.y', 346
17
+
18
+ require "mailparser/rfc2822/scanner"
19
+
20
+ def initialize(opt={})
21
+ @opt = opt
22
+ super()
23
+ end
24
+
25
+ def parse(header_type, value)
26
+ @header_type = header_type
27
+ @value = value
28
+ @last_id = nil
29
+ @comma_list = []
30
+ @scanner = Scanner.new(header_type, value)
31
+ ret = yyparse(self, :parse_sub)
32
+ class << ret
33
+ attr_accessor :comments
34
+ end
35
+ ret.comments = decode2(@scanner.comments)
36
+ ret
37
+ end
38
+
39
+ def parse_sub(&block)
40
+ yield @header_type, nil
41
+ @scanner.scan(&block)
42
+ end
43
+
44
+ def on_error(t, val, vstack)
45
+ # p t, val, vstack
46
+ # p racc_token2str(t)
47
+ raise MailParser::ParseError, val+@scanner.rest
48
+ end
49
+
50
+ def decode(s)
51
+ return s unless @opt[:decode_mime_header]
52
+ RFC2047.decode(s, @opt)
53
+ end
54
+
55
+ def decode2(ary)
56
+ ary.map{|i| decode(i)}
57
+ end
58
+ ..end lib/mailparser/rfc2822/parser.y modeval..id191275a7dd
59
+
60
+ ##### racc 1.4.5 generates ###
61
+
62
+ racc_reduce_table = [
63
+ 0, 0, :racc_error,
64
+ 2, 28, :_reduce_1,
65
+ 2, 28, :_reduce_2,
66
+ 2, 28, :_reduce_3,
67
+ 2, 28, :_reduce_4,
68
+ 2, 28, :_reduce_5,
69
+ 2, 28, :_reduce_6,
70
+ 2, 28, :_reduce_7,
71
+ 2, 28, :_reduce_8,
72
+ 2, 28, :_reduce_9,
73
+ 2, 28, :_reduce_10,
74
+ 2, 28, :_reduce_11,
75
+ 2, 28, :_reduce_12,
76
+ 1, 29, :_reduce_13,
77
+ 1, 39, :_reduce_14,
78
+ 3, 39, :_reduce_15,
79
+ 0, 40, :_reduce_none,
80
+ 1, 40, :_reduce_none,
81
+ 1, 31, :_reduce_18,
82
+ 1, 41, :_reduce_19,
83
+ 3, 41, :_reduce_20,
84
+ 0, 42, :_reduce_none,
85
+ 1, 42, :_reduce_none,
86
+ 1, 43, :_reduce_none,
87
+ 1, 43, :_reduce_none,
88
+ 1, 30, :_reduce_none,
89
+ 1, 30, :_reduce_26,
90
+ 1, 45, :_reduce_27,
91
+ 2, 45, :_reduce_28,
92
+ 1, 49, :_reduce_29,
93
+ 2, 49, :_reduce_30,
94
+ 3, 47, :_reduce_31,
95
+ 4, 47, :_reduce_32,
96
+ 2, 50, :_reduce_none,
97
+ 2, 51, :_reduce_none,
98
+ 4, 51, :_reduce_none,
99
+ 0, 53, :_reduce_none,
100
+ 2, 53, :_reduce_none,
101
+ 4, 44, :_reduce_38,
102
+ 1, 48, :_reduce_39,
103
+ 1, 34, :_reduce_40,
104
+ 3, 34, :_reduce_41,
105
+ 0, 55, :_reduce_none,
106
+ 1, 55, :_reduce_43,
107
+ 1, 56, :_reduce_none,
108
+ 1, 56, :_reduce_none,
109
+ 1, 54, :_reduce_46,
110
+ 2, 54, :_reduce_47,
111
+ 3, 46, :_reduce_48,
112
+ 1, 57, :_reduce_none,
113
+ 2, 57, :_reduce_50,
114
+ 2, 57, :_reduce_51,
115
+ 1, 52, :_reduce_none,
116
+ 2, 52, :_reduce_53,
117
+ 1, 52, :_reduce_none,
118
+ 1, 63, :_reduce_none,
119
+ 1, 63, :_reduce_none,
120
+ 1, 59, :_reduce_none,
121
+ 1, 59, :_reduce_none,
122
+ 1, 62, :_reduce_none,
123
+ 1, 62, :_reduce_none,
124
+ 2, 60, :_reduce_61,
125
+ 3, 60, :_reduce_62,
126
+ 3, 60, :_reduce_63,
127
+ 2, 58, :_reduce_64,
128
+ 2, 58, :_reduce_65,
129
+ 2, 61, :_reduce_66,
130
+ 3, 61, :_reduce_67,
131
+ 1, 64, :_reduce_none,
132
+ 1, 64, :_reduce_none,
133
+ 1, 33, :_reduce_70,
134
+ 2, 33, :_reduce_71,
135
+ 5, 32, :_reduce_72,
136
+ 0, 35, :_reduce_73,
137
+ 2, 35, :_reduce_none,
138
+ 2, 35, :_reduce_75,
139
+ 1, 65, :_reduce_none,
140
+ 1, 66, :_reduce_none,
141
+ 2, 37, :_reduce_78,
142
+ 1, 37, :_reduce_none,
143
+ 3, 38, :_reduce_80,
144
+ 0, 67, :_reduce_81,
145
+ 2, 67, :_reduce_82,
146
+ 2, 68, :_reduce_83,
147
+ 1, 69, :_reduce_none,
148
+ 1, 69, :_reduce_none,
149
+ 1, 69, :_reduce_none,
150
+ 6, 36, :_reduce_87,
151
+ 0, 70, :_reduce_none,
152
+ 2, 70, :_reduce_89,
153
+ 3, 71, :_reduce_90,
154
+ 5, 71, :_reduce_91,
155
+ 1, 72, :_reduce_92 ]
156
+
157
+ racc_reduce_n = 93
158
+
159
+ racc_shift_n = 148
160
+
161
+ racc_action_table = [
162
+ 4, 5, 6, 7, 8, 10, 11, 12, 13, 1,
163
+ 2, 3, 51, 20, 21, 61, 26, 29, -57, 20,
164
+ 21, 31, 26, 29, 120, 99, 106, 107, 20, 21,
165
+ 31, 26, 29, -57, 31, 31, 89, 20, 21, 85,
166
+ 26, 29, 20, 21, 31, 26, 29, 73, 74, 31,
167
+ 71, 20, 21, 100, 26, 29, 20, 21, 31, 26,
168
+ 29, 20, 21, 31, 84, 20, 21, 31, 26, 29,
169
+ 20, 21, 31, 26, 29, 85, 108, 130, 75, 20,
170
+ 21, 131, 26, 29, 66, 61, 69, 86, 119, 120,
171
+ 20, 21, 69, 26, 29, 121, 20, 21, 74, 26,
172
+ 29, 20, 21, 95, 26, 29, 20, 21, 98, 26,
173
+ 29, 20, 21, 125, 26, 29, 20, 21, 51, 26,
174
+ 29, 20, 21, 127, 26, 29, 20, 21, 128, 26,
175
+ 29, 20, 21, 51, 26, 29, 20, 21, 85, 26,
176
+ 29, 20, 21, 77, 26, 29, 106, 107, 20, 21,
177
+ 106, 107, 20, 21, 106, 107, 20, 21, 106, 107,
178
+ 20, 21, 53, 31, 51, 19, 134, 93, 137, 120,
179
+ 90, 15, 139, 140, 142, 143, 145, 146, 147 ]
180
+
181
+ racc_action_check = [
182
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
183
+ 0, 0, 60, 68, 68, 13, 68, 68, 133, 60,
184
+ 60, 71, 60, 60, 133, 63, 71, 71, 71, 71,
185
+ 4, 71, 71, 115, 44, 5, 44, 4, 4, 115,
186
+ 4, 4, 5, 5, 6, 5, 5, 17, 64, 7,
187
+ 17, 6, 6, 65, 6, 6, 7, 7, 84, 7,
188
+ 7, 102, 102, 89, 35, 84, 84, 32, 84, 84,
189
+ 89, 89, 90, 89, 89, 36, 70, 109, 27, 90,
190
+ 90, 109, 90, 90, 15, 73, 15, 40, 80, 82,
191
+ 15, 15, 31, 15, 15, 83, 31, 31, 24, 31,
192
+ 31, 11, 11, 57, 11, 11, 114, 114, 61, 114,
193
+ 114, 51, 51, 92, 51, 51, 34, 34, 10, 34,
194
+ 34, 67, 67, 99, 67, 67, 95, 95, 101, 95,
195
+ 95, 59, 59, 54, 59, 59, 41, 41, 103, 41,
196
+ 41, 33, 33, 33, 33, 33, 69, 69, 69, 69,
197
+ 131, 131, 131, 131, 125, 125, 125, 125, 74, 74,
198
+ 74, 74, 9, 113, 8, 3, 123, 53, 127, 129,
199
+ 46, 1, 135, 137, 140, 141, 142, 145, 146 ]
200
+
201
+ racc_action_pointer = [
202
+ -2, 156, nil, 152, 15, 20, 29, 34, 149, 162,
203
+ 103, 79, nil, -7, nil, 68, nil, 28, nil, nil,
204
+ nil, nil, nil, nil, 80, nil, nil, 54, nil, nil,
205
+ nil, 74, 52, 119, 94, 50, 51, nil, nil, nil,
206
+ 63, 114, nil, nil, 19, nil, 156, nil, nil, nil,
207
+ nil, 89, nil, 167, 118, nil, nil, 89, nil, 109,
208
+ -3, 94, nil, 2, 30, 37, nil, 99, -9, 126,
209
+ 59, 6, nil, 63, 138, nil, nil, nil, nil, nil,
210
+ 64, nil, 65, 71, 43, nil, nil, nil, nil, 48,
211
+ 57, nil, 95, nil, nil, 104, nil, nil, nil, 101,
212
+ nil, 112, 39, 114, nil, nil, nil, nil, nil, 63,
213
+ nil, nil, nil, 148, 84, 15, nil, nil, nil, nil,
214
+ nil, nil, nil, 147, nil, 134, nil, 145, nil, 145,
215
+ nil, 130, nil, 0, nil, 156, nil, 150, nil, nil,
216
+ 157, 153, 153, nil, nil, 160, 155, nil ]
217
+
218
+ racc_action_default = [
219
+ -93, -93, -81, -93, -16, -93, -21, -21, -93, -93,
220
+ -93, -42, -73, -88, -79, -93, -10, -93, -11, -12,
221
+ -59, -60, -46, -25, -44, -26, -68, -45, -27, -69,
222
+ -49, -93, -93, -93, -93, -13, -57, -14, -1, -17,
223
+ -58, -39, -2, -24, -93, -23, -18, -19, -3, -22,
224
+ -4, -93, -5, -93, -6, -70, -40, -7, -44, -43,
225
+ -8, -93, -9, -93, -93, -93, -78, -93, -93, -93,
226
+ -36, -93, -82, -88, -93, -65, -28, -64, -50, -57,
227
+ -58, -51, -57, -58, -16, -66, -61, -47, -58, -16,
228
+ -21, -76, -93, 148, -71, -42, -74, -75, -89, -93,
229
+ -31, -93, -93, -52, -54, -34, -55, -56, -33, -93,
230
+ -85, -83, -29, -84, -93, -52, -86, -80, -48, -62,
231
+ -67, -63, -15, -93, -20, -93, -41, -93, -32, -53,
232
+ -37, -93, -30, -53, -38, -93, -77, -93, -35, -72,
233
+ -93, -93, -93, -92, -87, -90, -93, -91 ]
234
+
235
+ racc_goto_table = [
236
+ 14, 38, 62, 79, 82, 42, 45, 45, 59, 56,
237
+ 9, 79, 44, 44, 58, 109, 80, 83, 64, 78,
238
+ 81, 102, 65, 114, 88, 113, 102, 87, 124, 79,
239
+ 52, 76, 55, 96, 64, 48, 50, 79, 65, 103,
240
+ 122, 115, 88, 76, 103, 87, 105, 18, 116, 16,
241
+ 80, 118, 60, 78, 91, 57, 54, 92, 135, 17,
242
+ 72, 111, 117, 58, 141, 144, nil, nil, nil, 67,
243
+ 112, 64, 129, nil, 64, 101, 94, 102, 110, nil,
244
+ nil, nil, 97, 102, 133, 67, 123, nil, nil, nil,
245
+ 45, nil, 59, 126, nil, 103, 44, 83, 58, nil,
246
+ 81, 103, 136, nil, nil, 67, nil, nil, 138, nil,
247
+ nil, nil, 132, nil, nil, nil, nil, nil, nil, nil,
248
+ nil, nil, 67, nil, nil, 67 ]
249
+
250
+ racc_goto_check = [
251
+ 20, 2, 9, 35, 35, 3, 3, 3, 27, 28,
252
+ 1, 35, 21, 21, 30, 26, 37, 37, 30, 32,
253
+ 32, 34, 19, 34, 37, 22, 34, 32, 15, 35,
254
+ 5, 20, 5, 29, 30, 4, 4, 35, 19, 35,
255
+ 13, 35, 37, 20, 35, 32, 25, 11, 25, 10,
256
+ 37, 25, 8, 32, 30, 7, 6, 38, 39, 40,
257
+ 41, 42, 9, 30, 44, 45, nil, nil, nil, 33,
258
+ 20, 30, 35, nil, 30, 19, 5, 34, 19, nil,
259
+ nil, nil, 5, 34, 35, 33, 2, nil, nil, nil,
260
+ 3, nil, 27, 28, nil, 35, 21, 37, 30, nil,
261
+ 32, 35, 25, nil, nil, 33, nil, nil, 25, nil,
262
+ nil, nil, 20, nil, nil, nil, nil, nil, nil, nil,
263
+ nil, nil, 33, nil, nil, 33 ]
264
+
265
+ racc_goto_pointer = [
266
+ nil, 10, -3, 0, 29, 22, 46, 44, 40, -11,
267
+ 48, 45, nil, -44, nil, -62, nil, nil, nil, 7,
268
+ -1, 6, -46, nil, nil, -23, -55, -3, -2, -27,
269
+ 3, nil, -14, 54, -48, -30, nil, -17, 6, -67,
270
+ 57, 43, -10, nil, -73, -76 ]
271
+
272
+ racc_goto_default = [
273
+ nil, nil, nil, 39, nil, nil, nil, nil, nil, nil,
274
+ nil, nil, 35, 37, 46, 47, 49, 43, 23, 25,
275
+ 28, 32, nil, 68, 70, nil, nil, 41, nil, 22,
276
+ 24, 27, 30, 33, 34, 36, 104, 40, nil, nil,
277
+ nil, nil, nil, 63, nil, nil ]
278
+
279
+ racc_token_table = {
280
+ false => 0,
281
+ Object.new => 1,
282
+ :MAILBOX_LIST => 2,
283
+ :MAILBOX => 3,
284
+ :ADDRESS_LIST => 4,
285
+ :ADDRESS_LIST_BCC => 5,
286
+ :MSG_ID => 6,
287
+ :MSG_ID_LIST => 7,
288
+ :PHRASE_LIST => 8,
289
+ :PHRASE_MSG_ID_LIST => 9,
290
+ :DATE_TIME => 10,
291
+ :RETURN_PATH => 11,
292
+ :RECEIVED => 12,
293
+ :UNSTRUCTURED => 13,
294
+ "," => 14,
295
+ "<" => 15,
296
+ ">" => 16,
297
+ ":" => 17,
298
+ "@" => 18,
299
+ ";" => 19,
300
+ :DOMAIN_LITERAL => 20,
301
+ :NO_FOLD_LITERAL => 21,
302
+ :ATOM => 22,
303
+ :DIGIT => 23,
304
+ "." => 24,
305
+ :QUOTED_STRING => 25,
306
+ :NO_FOLD_QUOTE => 26 }
307
+
308
+ racc_use_result_var = false
309
+
310
+ racc_nt_base = 27
311
+
312
+ Racc_arg = [
313
+ racc_action_table,
314
+ racc_action_check,
315
+ racc_action_default,
316
+ racc_action_pointer,
317
+ racc_goto_table,
318
+ racc_goto_check,
319
+ racc_goto_default,
320
+ racc_goto_pointer,
321
+ racc_nt_base,
322
+ racc_reduce_table,
323
+ racc_token_table,
324
+ racc_shift_n,
325
+ racc_reduce_n,
326
+ racc_use_result_var ]
327
+
328
+ Racc_token_to_s_table = [
329
+ '$end',
330
+ 'error',
331
+ 'MAILBOX_LIST',
332
+ 'MAILBOX',
333
+ 'ADDRESS_LIST',
334
+ 'ADDRESS_LIST_BCC',
335
+ 'MSG_ID',
336
+ 'MSG_ID_LIST',
337
+ 'PHRASE_LIST',
338
+ 'PHRASE_MSG_ID_LIST',
339
+ 'DATE_TIME',
340
+ 'RETURN_PATH',
341
+ 'RECEIVED',
342
+ 'UNSTRUCTURED',
343
+ '","',
344
+ '"<"',
345
+ '">"',
346
+ '":"',
347
+ '"@"',
348
+ '";"',
349
+ 'DOMAIN_LITERAL',
350
+ 'NO_FOLD_LITERAL',
351
+ 'ATOM',
352
+ 'DIGIT',
353
+ '"."',
354
+ 'QUOTED_STRING',
355
+ 'NO_FOLD_QUOTE',
356
+ '$start',
357
+ 'all',
358
+ 'mailbox_list',
359
+ 'mailbox',
360
+ 'address_list',
361
+ 'msg_id',
362
+ 'msg_id_list',
363
+ 'phrase_list',
364
+ 'phrase_msg_id_list',
365
+ 'date_time',
366
+ 'return_path',
367
+ 'received',
368
+ 'mailbox_list_',
369
+ 'mailbox_opt',
370
+ 'address_list_',
371
+ 'address_opt',
372
+ 'address',
373
+ 'group',
374
+ 'name_addr',
375
+ 'addr_spec',
376
+ 'angle_addr',
377
+ 'display_name',
378
+ 'angle_addr_list',
379
+ 'obs_route',
380
+ 'obs_domain_list',
381
+ 'domain',
382
+ 'obs_domain_list_delim',
383
+ 'phrase',
384
+ 'phrase_opt',
385
+ 'phrase0',
386
+ 'local_part',
387
+ 'word_dot_list_dot',
388
+ 'word',
389
+ 'word_dot_list',
390
+ 'atom_dot_list',
391
+ 'atom',
392
+ 'domain_literal',
393
+ 'quoted_string',
394
+ 'id_left',
395
+ 'id_right',
396
+ 'name_val_list',
397
+ 'name_val_pair',
398
+ 'item_value',
399
+ 'day_of_week',
400
+ 'time_of_day',
401
+ 'zone']
402
+
403
+ Racc_debug_parser = false
404
+
405
+ ##### racc system variables end #####
406
+
407
+ # reduce 0 omitted
408
+
409
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 9
410
+ def _reduce_1( val, _values)
411
+ val[1]
412
+ end
413
+ .,.,
414
+
415
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 10
416
+ def _reduce_2( val, _values)
417
+ val[1]
418
+ end
419
+ .,.,
420
+
421
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 11
422
+ def _reduce_3( val, _values)
423
+ val[1]
424
+ end
425
+ .,.,
426
+
427
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 12
428
+ def _reduce_4( val, _values)
429
+ val[1]
430
+ end
431
+ .,.,
432
+
433
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 13
434
+ def _reduce_5( val, _values)
435
+ val[1]
436
+ end
437
+ .,.,
438
+
439
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 14
440
+ def _reduce_6( val, _values)
441
+ val[1]
442
+ end
443
+ .,.,
444
+
445
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 15
446
+ def _reduce_7( val, _values)
447
+ val[1]
448
+ end
449
+ .,.,
450
+
451
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 16
452
+ def _reduce_8( val, _values)
453
+ val[1]
454
+ end
455
+ .,.,
456
+
457
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 17
458
+ def _reduce_9( val, _values)
459
+ val[1]
460
+ end
461
+ .,.,
462
+
463
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 18
464
+ def _reduce_10( val, _values)
465
+ val[1]
466
+ end
467
+ .,.,
468
+
469
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 19
470
+ def _reduce_11( val, _values)
471
+ val[1]
472
+ end
473
+ .,.,
474
+
475
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 20
476
+ def _reduce_12( val, _values)
477
+ val[1]
478
+ end
479
+ .,.,
480
+
481
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 29
482
+ def _reduce_13( val, _values)
483
+ unless val[0].empty? then
484
+ val[0].last.comments = decode2(@scanner.get_comment_by_id(@comma_list[-1], nil))
485
+ end
486
+ val[0]
487
+ end
488
+ .,.,
489
+
490
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 34
491
+ def _reduce_14( val, _values)
492
+ val[0] ? [val[0]] : []
493
+ end
494
+ .,.,
495
+
496
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 41
497
+ def _reduce_15( val, _values)
498
+ @comma_list << val[1].object_id
499
+ val[0].last.comments = decode2(@scanner.get_comment_by_id(@comma_list[-2], @comma_list[-1])) if val[0].last.kind_of? Mailbox
500
+ val[0] << val[2] if val[2]
501
+ val[0]
502
+ end
503
+ .,.,
504
+
505
+ # reduce 16 omitted
506
+
507
+ # reduce 17 omitted
508
+
509
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 52
510
+ def _reduce_18( val, _values)
511
+ if not val[0].empty? and val[0].last.kind_of? Mailbox then
512
+ val[0].last.comments = decode2(@scanner.get_comment_by_id(@comma_list[-1], nil))
513
+ end
514
+ val[0]
515
+ end
516
+ .,.,
517
+
518
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 57
519
+ def _reduce_19( val, _values)
520
+ val[0] ? [val[0]] : []
521
+ end
522
+ .,.,
523
+
524
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 66
525
+ def _reduce_20( val, _values)
526
+ @comma_list << val[1].object_id
527
+ if val[0].last.kind_of? Mailbox then
528
+ val[0].last.comments = decode2(@scanner.get_comment_by_id(@comma_list[-2], @comma_list[-1]))
529
+ end
530
+ val[0] << val[2] if val[2]
531
+ val[0]
532
+ end
533
+ .,.,
534
+
535
+ # reduce 21 omitted
536
+
537
+ # reduce 22 omitted
538
+
539
+ # reduce 23 omitted
540
+
541
+ # reduce 24 omitted
542
+
543
+ # reduce 25 omitted
544
+
545
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 78
546
+ def _reduce_26( val, _values)
547
+ Mailbox.new(val[0])
548
+ end
549
+ .,.,
550
+
551
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 83
552
+ def _reduce_27( val, _values)
553
+ Mailbox.new(val[0])
554
+ end
555
+ .,.,
556
+
557
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 87
558
+ def _reduce_28( val, _values)
559
+ Mailbox.new(val[1], val[0])
560
+ end
561
+ .,.,
562
+
563
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 92
564
+ def _reduce_29( val, _values)
565
+ [val[0]]
566
+ end
567
+ .,.,
568
+
569
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 97
570
+ def _reduce_30( val, _values)
571
+ val[0] << val[1]
572
+ val[0]
573
+ end
574
+ .,.,
575
+
576
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 102
577
+ def _reduce_31( val, _values)
578
+ val[1]
579
+ end
580
+ .,.,
581
+
582
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 106
583
+ def _reduce_32( val, _values)
584
+ val[2]
585
+ end
586
+ .,.,
587
+
588
+ # reduce 33 omitted
589
+
590
+ # reduce 34 omitted
591
+
592
+ # reduce 35 omitted
593
+
594
+ # reduce 36 omitted
595
+
596
+ # reduce 37 omitted
597
+
598
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 120
599
+ def _reduce_38( val, _values)
600
+ Group.new(val[2], val[0])
601
+ end
602
+ .,.,
603
+
604
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 125
605
+ def _reduce_39( val, _values)
606
+ decode(val[0])
607
+ end
608
+ .,.,
609
+
610
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 130
611
+ def _reduce_40( val, _values)
612
+ [val[0]].compact
613
+ end
614
+ .,.,
615
+
616
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 135
617
+ def _reduce_41( val, _values)
618
+ val[0] << val[2] if val[2]
619
+ val[0]
620
+ end
621
+ .,.,
622
+
623
+ # reduce 42 omitted
624
+
625
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 141
626
+ def _reduce_43( val, _values)
627
+ decode(val[0])
628
+ end
629
+ .,.,
630
+
631
+ # reduce 44 omitted
632
+
633
+ # reduce 45 omitted
634
+
635
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 149
636
+ def _reduce_46( val, _values)
637
+ val[0].to_s
638
+ end
639
+ .,.,
640
+
641
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 153
642
+ def _reduce_47( val, _values)
643
+ val[0] << " #{val[1]}"
644
+ end
645
+ .,.,
646
+
647
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 158
648
+ def _reduce_48( val, _values)
649
+ AddrSpec.new(val[0], val[2])
650
+ end
651
+ .,.,
652
+
653
+ # reduce 49 omitted
654
+
655
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 164
656
+ def _reduce_50( val, _values)
657
+ val.join
658
+ end
659
+ .,.,
660
+
661
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 168
662
+ def _reduce_51( val, _values)
663
+ val.join
664
+ end
665
+ .,.,
666
+
667
+ # reduce 52 omitted
668
+
669
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 174
670
+ def _reduce_53( val, _values)
671
+ val.join
672
+ end
673
+ .,.,
674
+
675
+ # reduce 54 omitted
676
+
677
+ # reduce 55 omitted
678
+
679
+ # reduce 56 omitted
680
+
681
+ # reduce 57 omitted
682
+
683
+ # reduce 58 omitted
684
+
685
+ # reduce 59 omitted
686
+
687
+ # reduce 60 omitted
688
+
689
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 189
690
+ def _reduce_61( val, _values)
691
+ val.join
692
+ end
693
+ .,.,
694
+
695
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 193
696
+ def _reduce_62( val, _values)
697
+ val[0] << val[1]+val[2]
698
+ end
699
+ .,.,
700
+
701
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 197
702
+ def _reduce_63( val, _values)
703
+ val[0] << val[1]+val[2]
704
+ end
705
+ .,.,
706
+
707
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 202
708
+ def _reduce_64( val, _values)
709
+ val.join
710
+ end
711
+ .,.,
712
+
713
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 206
714
+ def _reduce_65( val, _values)
715
+ val.join
716
+ end
717
+ .,.,
718
+
719
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 211
720
+ def _reduce_66( val, _values)
721
+ val.join
722
+ end
723
+ .,.,
724
+
725
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 215
726
+ def _reduce_67( val, _values)
727
+ val.join
728
+ end
729
+ .,.,
730
+
731
+ # reduce 68 omitted
732
+
733
+ # reduce 69 omitted
734
+
735
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 223
736
+ def _reduce_70( val, _values)
737
+ MsgIdList.new(val[0])
738
+ end
739
+ .,.,
740
+
741
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 227
742
+ def _reduce_71( val, _values)
743
+ val[0] << val[1]
744
+ end
745
+ .,.,
746
+
747
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 232
748
+ def _reduce_72( val, _values)
749
+ MsgId.new(val[1,3].join)
750
+ end
751
+ .,.,
752
+
753
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 237
754
+ def _reduce_73( val, _values)
755
+ MsgIdList.new()
756
+ end
757
+ .,.,
758
+
759
+ # reduce 74 omitted
760
+
761
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 242
762
+ def _reduce_75( val, _values)
763
+ val[0] << val[1]
764
+ end
765
+ .,.,
766
+
767
+ # reduce 76 omitted
768
+
769
+ # reduce 77 omitted
770
+
771
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 255
772
+ def _reduce_78( val, _values)
773
+ nil
774
+ end
775
+ .,.,
776
+
777
+ # reduce 79 omitted
778
+
779
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 262
780
+ def _reduce_80( val, _values)
781
+ Received.new(val[0], val[2])
782
+ end
783
+ .,.,
784
+
785
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 267
786
+ def _reduce_81( val, _values)
787
+ {}
788
+ end
789
+ .,.,
790
+
791
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 272
792
+ def _reduce_82( val, _values)
793
+ val[0][val[1][0]] = val[1][1]
794
+ val[0]
795
+ end
796
+ .,.,
797
+
798
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 280
799
+ def _reduce_83( val, _values)
800
+ unless val[0] =~ /\A[a-zA-Z0-9](-?[a-zA-Z0-9])*\z/ then
801
+ raise MailParser::ParseError, val[0]+@scanner.rest
802
+ end
803
+ [val[0].downcase, val[1].to_s]
804
+ end
805
+ .,.,
806
+
807
+ # reduce 84 omitted
808
+
809
+ # reduce 85 omitted
810
+
811
+ # reduce 86 omitted
812
+
813
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 300
814
+ def _reduce_87( val, _values)
815
+ year, month, day, time, zone = val.values_at(3,2,1,4,5)
816
+ raise MailParser::ParseError, "invalid year: #{year}" unless year =~ /\A\d\d\d\d\Z/
817
+ m = [nil,"jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"].index month.downcase
818
+ raise MailParser::ParseError, "invaild month: #{month}" unless m
819
+ raise MailParser::ParseError, "invalid day of the month: #{day}" unless day =~ /\A\d?\d\Z/
820
+ begin
821
+ DateTime.new(year.to_i, m.to_i, day.to_i, time[0], time[1], time[2], zone)
822
+ rescue ArgumentError
823
+ raise MailParser::ParseError, "invalid date format"
824
+ end
825
+ end
826
+ .,.,
827
+
828
+ # reduce 88 omitted
829
+
830
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 308
831
+ def _reduce_89( val, _values)
832
+ unless ['mon','tue','wed','thu','fri','sat','sun'].include? val[0].downcase then
833
+ raise MailParser::ParseError, "invalid day of the week: #{val[0]}"
834
+ end
835
+ end
836
+ .,.,
837
+
838
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 319
839
+ def _reduce_90( val, _values)
840
+ if val[0] !~ /\A\d\d\Z/ or val[0].to_i > 23 then
841
+ raise MailParser::ParseError, "invalid hour: #{val[0]}"
842
+ end
843
+ if val[2] !~ /\A\d\d\Z/ or val[2].to_i > 59 then
844
+ raise MailParser::ParseError, "invalid minute: #{val[2]}"
845
+ end
846
+ [val[0].to_i, val[2].to_i, 0]
847
+ end
848
+ .,.,
849
+
850
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 332
851
+ def _reduce_91( val, _values)
852
+ if val[0] !~ /\A\d\d\Z/ or val[0].to_i > 23 then
853
+ raise MailParser::ParseError, "invalid hour: #{val[0]}"
854
+ end
855
+ if val[2] !~ /\A\d\d\Z/ or val[2].to_i > 59 then
856
+ raise MailParser::ParseError, "invalid minute: #{val[2]}"
857
+ end
858
+ if val[4] !~ /\A\d\d\Z/ or val[4].to_i > 60 then
859
+ raise MailParser::ParseError, "invalid second: #{val[4]}"
860
+ end
861
+ [val[0].to_i, val[2].to_i, val[4].to_i]
862
+ end
863
+ .,.,
864
+
865
+ module_eval <<'.,.,', 'lib/mailparser/rfc2822/parser.y', 341
866
+ def _reduce_92( val, _values)
867
+ if val[0] =~ /\A[+-]\d\d\d\d\Z/ then
868
+ val[0]
869
+ else
870
+ ZONE[val[0].upcase] || "-0000"
871
+ end
872
+ end
873
+ .,.,
874
+
875
+ def _reduce_none( val, _values)
876
+ val[0]
877
+ end
878
+
879
+ end # class Parser
880
+
881
+ end # module RFC2822
882
+
883
+ end # module MailParser