Froze rails gems
[depot.git] / vendor / rails / actionmailer / lib / action_mailer / vendor / tmail-1.2.3 / tmail / parser.rb
1 #:stopdoc:
2 # DO NOT MODIFY!!!!
3 # This file is automatically generated by racc 1.4.5
4 # from racc grammer file "parser.y".
5 #
6 #
7 # parser.rb: generated by racc (runtime embedded)
8 #
9 ###### racc/parser.rb begin
10 unless $".index 'racc/parser.rb'
11 $".push 'racc/parser.rb'
12
13 self.class.module_eval <<'..end racc/parser.rb modeval..id8076474214', 'racc/parser.rb', 1
14 #
15 # $Id: parser.rb,v 1.7 2005/11/20 17:31:32 aamine Exp $
16 #
17 # Copyright (c) 1999-2005 Minero Aoki
18 #
19 # This program is free software.
20 # You can distribute/modify this program under the same terms of ruby.
21 #
22 # As a special exception, when this code is copied by Racc
23 # into a Racc output file, you may use that output file
24 # without restriction.
25 #
26
27 unless defined?(NotImplementedError)
28 NotImplementedError = NotImplementError
29 end
30
31 module Racc
32 class ParseError < StandardError; end
33 end
34 unless defined?(::ParseError)
35 ParseError = Racc::ParseError
36 end
37
38 module Racc
39
40 unless defined?(Racc_No_Extentions)
41 Racc_No_Extentions = false
42 end
43
44 class Parser
45
46 Racc_Runtime_Version = '1.4.5'
47 Racc_Runtime_Revision = '$Revision: 1.7 $'.split[1]
48
49 Racc_Runtime_Core_Version_R = '1.4.5'
50 Racc_Runtime_Core_Revision_R = '$Revision: 1.7 $'.split[1]
51 begin
52 require 'racc/cparse'
53 # Racc_Runtime_Core_Version_C = (defined in extention)
54 Racc_Runtime_Core_Revision_C = Racc_Runtime_Core_Id_C.split[2]
55 unless new.respond_to?(:_racc_do_parse_c, true)
56 raise LoadError, 'old cparse.so'
57 end
58 if Racc_No_Extentions
59 raise LoadError, 'selecting ruby version of racc runtime core'
60 end
61
62 Racc_Main_Parsing_Routine = :_racc_do_parse_c
63 Racc_YY_Parse_Method = :_racc_yyparse_c
64 Racc_Runtime_Core_Version = Racc_Runtime_Core_Version_C
65 Racc_Runtime_Core_Revision = Racc_Runtime_Core_Revision_C
66 Racc_Runtime_Type = 'c'
67 rescue LoadError
68 Racc_Main_Parsing_Routine = :_racc_do_parse_rb
69 Racc_YY_Parse_Method = :_racc_yyparse_rb
70 Racc_Runtime_Core_Version = Racc_Runtime_Core_Version_R
71 Racc_Runtime_Core_Revision = Racc_Runtime_Core_Revision_R
72 Racc_Runtime_Type = 'ruby'
73 end
74
75 def Parser.racc_runtime_type
76 Racc_Runtime_Type
77 end
78
79 private
80
81 def _racc_setup
82 @yydebug = false unless self.class::Racc_debug_parser
83 @yydebug = false unless defined?(@yydebug)
84 if @yydebug
85 @racc_debug_out = $stderr unless defined?(@racc_debug_out)
86 @racc_debug_out ||= $stderr
87 end
88 arg = self.class::Racc_arg
89 arg[13] = true if arg.size < 14
90 arg
91 end
92
93 def _racc_init_sysvars
94 @racc_state = [0]
95 @racc_tstack = []
96 @racc_vstack = []
97
98 @racc_t = nil
99 @racc_val = nil
100
101 @racc_read_next = true
102
103 @racc_user_yyerror = false
104 @racc_error_status = 0
105 end
106
107 ###
108 ### do_parse
109 ###
110
111 def do_parse
112 __send__(Racc_Main_Parsing_Routine, _racc_setup(), false)
113 end
114
115 def next_token
116 raise NotImplementedError, "#{self.class}\#next_token is not defined"
117 end
118
119 def _racc_do_parse_rb(arg, in_debug)
120 action_table, action_check, action_default, action_pointer,
121 goto_table, goto_check, goto_default, goto_pointer,
122 nt_base, reduce_table, token_table, shift_n,
123 reduce_n, use_result, * = arg
124
125 _racc_init_sysvars
126 tok = act = i = nil
127 nerr = 0
128
129 catch(:racc_end_parse) {
130 while true
131 if i = action_pointer[@racc_state[-1]]
132 if @racc_read_next
133 if @racc_t != 0 # not EOF
134 tok, @racc_val = next_token()
135 unless tok # EOF
136 @racc_t = 0
137 else
138 @racc_t = (token_table[tok] or 1) # error token
139 end
140 racc_read_token(@racc_t, tok, @racc_val) if @yydebug
141 @racc_read_next = false
142 end
143 end
144 i += @racc_t
145 unless i >= 0 and
146 act = action_table[i] and
147 action_check[i] == @racc_state[-1]
148 act = action_default[@racc_state[-1]]
149 end
150 else
151 act = action_default[@racc_state[-1]]
152 end
153 while act = _racc_evalact(act, arg)
154 ;
155 end
156 end
157 }
158 end
159
160 ###
161 ### yyparse
162 ###
163
164 def yyparse(recv, mid)
165 __send__(Racc_YY_Parse_Method, recv, mid, _racc_setup(), true)
166 end
167
168 def _racc_yyparse_rb(recv, mid, arg, c_debug)
169 action_table, action_check, action_default, action_pointer,
170 goto_table, goto_check, goto_default, goto_pointer,
171 nt_base, reduce_table, token_table, shift_n,
172 reduce_n, use_result, * = arg
173
174 _racc_init_sysvars
175 tok = nil
176 act = nil
177 i = nil
178 nerr = 0
179
180 catch(:racc_end_parse) {
181 until i = action_pointer[@racc_state[-1]]
182 while act = _racc_evalact(action_default[@racc_state[-1]], arg)
183 ;
184 end
185 end
186 recv.__send__(mid) do |tok, val|
187 unless tok
188 @racc_t = 0
189 else
190 @racc_t = (token_table[tok] or 1) # error token
191 end
192 @racc_val = val
193 @racc_read_next = false
194
195 i += @racc_t
196 unless i >= 0 and
197 act = action_table[i] and
198 action_check[i] == @racc_state[-1]
199 act = action_default[@racc_state[-1]]
200 end
201 while act = _racc_evalact(act, arg)
202 ;
203 end
204
205 while not (i = action_pointer[@racc_state[-1]]) or
206 not @racc_read_next or
207 @racc_t == 0 # $
208 unless i and i += @racc_t and
209 i >= 0 and
210 act = action_table[i] and
211 action_check[i] == @racc_state[-1]
212 act = action_default[@racc_state[-1]]
213 end
214 while act = _racc_evalact(act, arg)
215 ;
216 end
217 end
218 end
219 }
220 end
221
222 ###
223 ### common
224 ###
225
226 def _racc_evalact(act, arg)
227 action_table, action_check, action_default, action_pointer,
228 goto_table, goto_check, goto_default, goto_pointer,
229 nt_base, reduce_table, token_table, shift_n,
230 reduce_n, use_result, * = arg
231 nerr = 0 # tmp
232
233 if act > 0 and act < shift_n
234 #
235 # shift
236 #
237 if @racc_error_status > 0
238 @racc_error_status -= 1 unless @racc_t == 1 # error token
239 end
240 @racc_vstack.push @racc_val
241 @racc_state.push act
242 @racc_read_next = true
243 if @yydebug
244 @racc_tstack.push @racc_t
245 racc_shift @racc_t, @racc_tstack, @racc_vstack
246 end
247
248 elsif act < 0 and act > -reduce_n
249 #
250 # reduce
251 #
252 code = catch(:racc_jump) {
253 @racc_state.push _racc_do_reduce(arg, act)
254 false
255 }
256 if code
257 case code
258 when 1 # yyerror
259 @racc_user_yyerror = true # user_yyerror
260 return -reduce_n
261 when 2 # yyaccept
262 return shift_n
263 else
264 raise '[Racc Bug] unknown jump code'
265 end
266 end
267
268 elsif act == shift_n
269 #
270 # accept
271 #
272 racc_accept if @yydebug
273 throw :racc_end_parse, @racc_vstack[0]
274
275 elsif act == -reduce_n
276 #
277 # error
278 #
279 case @racc_error_status
280 when 0
281 unless arg[21] # user_yyerror
282 nerr += 1
283 on_error @racc_t, @racc_val, @racc_vstack
284 end
285 when 3
286 if @racc_t == 0 # is $
287 throw :racc_end_parse, nil
288 end
289 @racc_read_next = true
290 end
291 @racc_user_yyerror = false
292 @racc_error_status = 3
293 while true
294 if i = action_pointer[@racc_state[-1]]
295 i += 1 # error token
296 if i >= 0 and
297 (act = action_table[i]) and
298 action_check[i] == @racc_state[-1]
299 break
300 end
301 end
302 throw :racc_end_parse, nil if @racc_state.size <= 1
303 @racc_state.pop
304 @racc_vstack.pop
305 if @yydebug
306 @racc_tstack.pop
307 racc_e_pop @racc_state, @racc_tstack, @racc_vstack
308 end
309 end
310 return act
311
312 else
313 raise "[Racc Bug] unknown action #{act.inspect}"
314 end
315
316 racc_next_state(@racc_state[-1], @racc_state) if @yydebug
317
318 nil
319 end
320
321 def _racc_do_reduce(arg, act)
322 action_table, action_check, action_default, action_pointer,
323 goto_table, goto_check, goto_default, goto_pointer,
324 nt_base, reduce_table, token_table, shift_n,
325 reduce_n, use_result, * = arg
326 state = @racc_state
327 vstack = @racc_vstack
328 tstack = @racc_tstack
329
330 i = act * -3
331 len = reduce_table[i]
332 reduce_to = reduce_table[i+1]
333 method_id = reduce_table[i+2]
334 void_array = []
335
336 tmp_t = tstack[-len, len] if @yydebug
337 tmp_v = vstack[-len, len]
338 tstack[-len, len] = void_array if @yydebug
339 vstack[-len, len] = void_array
340 state[-len, len] = void_array
341
342 # tstack must be updated AFTER method call
343 if use_result
344 vstack.push __send__(method_id, tmp_v, vstack, tmp_v[0])
345 else
346 vstack.push __send__(method_id, tmp_v, vstack)
347 end
348 tstack.push reduce_to
349
350 racc_reduce(tmp_t, reduce_to, tstack, vstack) if @yydebug
351
352 k1 = reduce_to - nt_base
353 if i = goto_pointer[k1]
354 i += state[-1]
355 if i >= 0 and (curstate = goto_table[i]) and goto_check[i] == k1
356 return curstate
357 end
358 end
359 goto_default[k1]
360 end
361
362 def on_error(t, val, vstack)
363 raise ParseError, sprintf("\nparse error on value %s (%s)",
364 val.inspect, token_to_str(t) || '?')
365 end
366
367 def yyerror
368 throw :racc_jump, 1
369 end
370
371 def yyaccept
372 throw :racc_jump, 2
373 end
374
375 def yyerrok
376 @racc_error_status = 0
377 end
378
379 #
380 # for debugging output
381 #
382
383 def racc_read_token(t, tok, val)
384 @racc_debug_out.print 'read '
385 @racc_debug_out.print tok.inspect, '(', racc_token2str(t), ') '
386 @racc_debug_out.puts val.inspect
387 @racc_debug_out.puts
388 end
389
390 def racc_shift(tok, tstack, vstack)
391 @racc_debug_out.puts "shift #{racc_token2str tok}"
392 racc_print_stacks tstack, vstack
393 @racc_debug_out.puts
394 end
395
396 def racc_reduce(toks, sim, tstack, vstack)
397 out = @racc_debug_out
398 out.print 'reduce '
399 if toks.empty?
400 out.print ' <none>'
401 else
402 toks.each {|t| out.print ' ', racc_token2str(t) }
403 end
404 out.puts " --> #{racc_token2str(sim)}"
405
406 racc_print_stacks tstack, vstack
407 @racc_debug_out.puts
408 end
409
410 def racc_accept
411 @racc_debug_out.puts 'accept'
412 @racc_debug_out.puts
413 end
414
415 def racc_e_pop(state, tstack, vstack)
416 @racc_debug_out.puts 'error recovering mode: pop token'
417 racc_print_states state
418 racc_print_stacks tstack, vstack
419 @racc_debug_out.puts
420 end
421
422 def racc_next_state(curstate, state)
423 @racc_debug_out.puts "goto #{curstate}"
424 racc_print_states state
425 @racc_debug_out.puts
426 end
427
428 def racc_print_stacks(t, v)
429 out = @racc_debug_out
430 out.print ' ['
431 t.each_index do |i|
432 out.print ' (', racc_token2str(t[i]), ' ', v[i].inspect, ')'
433 end
434 out.puts ' ]'
435 end
436
437 def racc_print_states(s)
438 out = @racc_debug_out
439 out.print ' ['
440 s.each {|st| out.print ' ', st }
441 out.puts ' ]'
442 end
443
444 def racc_token2str(tok)
445 self.class::Racc_token_to_s_table[tok] or
446 raise "[Racc Bug] can't convert token #{tok} to string"
447 end
448
449 def token_to_str(t)
450 self.class::Racc_token_to_s_table[t]
451 end
452
453 end
454
455 end
456 ..end racc/parser.rb modeval..id8076474214
457 end
458 ###### racc/parser.rb end
459
460
461 #
462 # parser.rb
463 #
464 # Copyright (c) 1998-2007 Minero Aoki
465 #
466 # This program is free software.
467 # You can distribute/modify this program under the terms of
468 # the GNU Lesser General Public License version 2.1.
469 #
470
471 require 'tmail/scanner'
472 require 'tmail/utils'
473
474
475 module TMail
476
477 class Parser < Racc::Parser
478
479 module_eval <<'..end parser.y modeval..id7b0b3dccb7', 'parser.y', 340
480
481 include TextUtils
482
483 def self.parse( ident, str, cmt = nil )
484 new.parse(ident, str, cmt)
485 end
486
487 MAILP_DEBUG = false
488
489 def initialize
490 self.debug = MAILP_DEBUG
491 end
492
493 def debug=( flag )
494 @yydebug = flag && Racc_debug_parser
495 @scanner_debug = flag
496 end
497
498 def debug
499 @yydebug
500 end
501
502 def parse( ident, str, comments = nil )
503 @scanner = Scanner.new(str, ident, comments)
504 @scanner.debug = @scanner_debug
505 @first = [ident, ident]
506 result = yyparse(self, :parse_in)
507 comments.map! {|c| to_kcode(c) } if comments
508 result
509 end
510
511 private
512
513 def parse_in( &block )
514 yield @first
515 @scanner.scan(&block)
516 end
517
518 def on_error( t, val, vstack )
519 raise SyntaxError, "parse error on token #{racc_token2str t}"
520 end
521
522 ..end parser.y modeval..id7b0b3dccb7
523
524 ##### racc 1.4.5 generates ###
525
526 racc_reduce_table = [
527 0, 0, :racc_error,
528 2, 35, :_reduce_1,
529 2, 35, :_reduce_2,
530 2, 35, :_reduce_3,
531 2, 35, :_reduce_4,
532 2, 35, :_reduce_5,
533 2, 35, :_reduce_6,
534 2, 35, :_reduce_7,
535 2, 35, :_reduce_8,
536 2, 35, :_reduce_9,
537 2, 35, :_reduce_10,
538 2, 35, :_reduce_11,
539 2, 35, :_reduce_12,
540 6, 36, :_reduce_13,
541 0, 48, :_reduce_none,
542 2, 48, :_reduce_none,
543 3, 49, :_reduce_16,
544 5, 49, :_reduce_17,
545 1, 50, :_reduce_18,
546 7, 37, :_reduce_19,
547 0, 51, :_reduce_none,
548 2, 51, :_reduce_21,
549 0, 52, :_reduce_none,
550 2, 52, :_reduce_23,
551 1, 58, :_reduce_24,
552 3, 58, :_reduce_25,
553 2, 58, :_reduce_26,
554 0, 53, :_reduce_none,
555 2, 53, :_reduce_28,
556 0, 54, :_reduce_29,
557 3, 54, :_reduce_30,
558 0, 55, :_reduce_none,
559 2, 55, :_reduce_32,
560 2, 55, :_reduce_33,
561 0, 56, :_reduce_none,
562 2, 56, :_reduce_35,
563 1, 61, :_reduce_36,
564 1, 61, :_reduce_37,
565 0, 57, :_reduce_none,
566 2, 57, :_reduce_39,
567 1, 38, :_reduce_none,
568 1, 38, :_reduce_none,
569 3, 38, :_reduce_none,
570 1, 46, :_reduce_none,
571 1, 46, :_reduce_none,
572 1, 46, :_reduce_none,
573 1, 39, :_reduce_none,
574 2, 39, :_reduce_47,
575 1, 64, :_reduce_48,
576 3, 64, :_reduce_49,
577 1, 68, :_reduce_none,
578 1, 68, :_reduce_none,
579 1, 69, :_reduce_52,
580 3, 69, :_reduce_53,
581 1, 47, :_reduce_none,
582 1, 47, :_reduce_none,
583 2, 47, :_reduce_56,
584 2, 67, :_reduce_none,
585 3, 65, :_reduce_58,
586 2, 65, :_reduce_59,
587 1, 70, :_reduce_60,
588 2, 70, :_reduce_61,
589 4, 62, :_reduce_62,
590 3, 62, :_reduce_63,
591 2, 72, :_reduce_none,
592 2, 73, :_reduce_65,
593 4, 73, :_reduce_66,
594 3, 63, :_reduce_67,
595 1, 63, :_reduce_68,
596 1, 74, :_reduce_none,
597 2, 74, :_reduce_70,
598 1, 71, :_reduce_71,
599 3, 71, :_reduce_72,
600 1, 59, :_reduce_73,
601 3, 59, :_reduce_74,
602 1, 76, :_reduce_75,
603 2, 76, :_reduce_76,
604 1, 75, :_reduce_none,
605 1, 75, :_reduce_none,
606 1, 75, :_reduce_none,
607 1, 77, :_reduce_none,
608 1, 77, :_reduce_none,
609 1, 77, :_reduce_none,
610 1, 66, :_reduce_none,
611 2, 66, :_reduce_none,
612 3, 60, :_reduce_85,
613 1, 40, :_reduce_86,
614 3, 40, :_reduce_87,
615 1, 79, :_reduce_none,
616 2, 79, :_reduce_89,
617 1, 41, :_reduce_90,
618 2, 41, :_reduce_91,
619 3, 42, :_reduce_92,
620 5, 43, :_reduce_93,
621 3, 43, :_reduce_94,
622 0, 80, :_reduce_95,
623 5, 80, :_reduce_96,
624 5, 80, :_reduce_97,
625 1, 44, :_reduce_98,
626 3, 45, :_reduce_99,
627 0, 81, :_reduce_none,
628 1, 81, :_reduce_none,
629 1, 78, :_reduce_none,
630 1, 78, :_reduce_none,
631 1, 78, :_reduce_none,
632 1, 78, :_reduce_none,
633 1, 78, :_reduce_none,
634 1, 78, :_reduce_none,
635 1, 78, :_reduce_none ]
636
637 racc_reduce_n = 109
638
639 racc_shift_n = 167
640
641 racc_action_table = [
642 -70, -69, 23, 25, 145, 146, 29, 31, 105, 106,
643 16, 17, 20, 22, 136, 27, -70, -69, 32, 101,
644 -70, -69, 153, 100, 113, 115, -70, -69, -70, 109,
645 75, 23, 25, 101, 154, 29, 31, 142, 143, 16,
646 17, 20, 22, 107, 27, 23, 25, 32, 98, 29,
647 31, 96, 94, 16, 17, 20, 22, 78, 27, 23,
648 25, 32, 112, 29, 31, 74, 91, 16, 17, 20,
649 22, 88, 117, 92, 81, 32, 23, 25, 80, 123,
650 29, 31, 100, 125, 16, 17, 20, 22, 126, 23,
651 25, 109, 32, 29, 31, 91, 128, 16, 17, 20,
652 22, 129, 27, 23, 25, 32, 101, 29, 31, 101,
653 130, 16, 17, 20, 22, 79, 52, 23, 25, 32,
654 78, 29, 31, 133, 78, 16, 17, 20, 22, 77,
655 23, 25, 75, 32, 29, 31, 65, 62, 16, 17,
656 20, 22, 139, 23, 25, 101, 32, 29, 31, 60,
657 100, 16, 17, 20, 22, 44, 27, 101, 147, 32,
658 23, 25, 120, 148, 29, 31, 151, 152, 16, 17,
659 20, 22, 42, 27, 156, 158, 32, 23, 25, 120,
660 40, 29, 31, 15, 163, 16, 17, 20, 22, 40,
661 27, 23, 25, 32, 68, 29, 31, 165, 166, 16,
662 17, 20, 22, nil, 27, 23, 25, 32, nil, 29,
663 31, 74, nil, 16, 17, 20, 22, nil, 23, 25,
664 nil, 32, 29, 31, nil, nil, 16, 17, 20, 22,
665 nil, 23, 25, nil, 32, 29, 31, nil, nil, 16,
666 17, 20, 22, nil, 23, 25, nil, 32, 29, 31,
667 nil, nil, 16, 17, 20, 22, nil, 23, 25, nil,
668 32, 29, 31, nil, nil, 16, 17, 20, 22, nil,
669 27, 23, 25, 32, nil, 29, 31, nil, nil, 16,
670 17, 20, 22, nil, 23, 25, nil, 32, 29, 31,
671 nil, nil, 16, 17, 20, 22, nil, 23, 25, nil,
672 32, 29, 31, nil, nil, 16, 17, 20, 22, nil,
673 84, 25, nil, 32, 29, 31, nil, 87, 16, 17,
674 20, 22, 4, 6, 7, 8, 9, 10, 11, 12,
675 13, 1, 2, 3, 84, 25, nil, nil, 29, 31,
676 nil, 87, 16, 17, 20, 22, 84, 25, nil, nil,
677 29, 31, nil, 87, 16, 17, 20, 22, 84, 25,
678 nil, nil, 29, 31, nil, 87, 16, 17, 20, 22,
679 84, 25, nil, nil, 29, 31, nil, 87, 16, 17,
680 20, 22, 84, 25, nil, nil, 29, 31, nil, 87,
681 16, 17, 20, 22, 84, 25, nil, nil, 29, 31,
682 nil, 87, 16, 17, 20, 22 ]
683
684 racc_action_check = [
685 75, 28, 68, 68, 136, 136, 68, 68, 72, 72,
686 68, 68, 68, 68, 126, 68, 75, 28, 68, 67,
687 75, 28, 143, 66, 86, 86, 75, 28, 75, 75,
688 28, 3, 3, 86, 143, 3, 3, 134, 134, 3,
689 3, 3, 3, 73, 3, 151, 151, 3, 62, 151,
690 151, 60, 56, 151, 151, 151, 151, 51, 151, 52,
691 52, 151, 80, 52, 52, 52, 50, 52, 52, 52,
692 52, 45, 89, 52, 42, 52, 71, 71, 41, 96,
693 71, 71, 97, 98, 71, 71, 71, 71, 100, 7,
694 7, 101, 71, 7, 7, 102, 104, 7, 7, 7,
695 7, 105, 7, 8, 8, 7, 108, 8, 8, 111,
696 112, 8, 8, 8, 8, 40, 8, 9, 9, 8,
697 36, 9, 9, 117, 121, 9, 9, 9, 9, 33,
698 10, 10, 70, 9, 10, 10, 13, 12, 10, 10,
699 10, 10, 130, 2, 2, 131, 10, 2, 2, 11,
700 135, 2, 2, 2, 2, 6, 2, 138, 139, 2,
701 90, 90, 90, 140, 90, 90, 141, 142, 90, 90,
702 90, 90, 5, 90, 147, 150, 90, 127, 127, 127,
703 4, 127, 127, 1, 156, 127, 127, 127, 127, 158,
704 127, 26, 26, 127, 26, 26, 26, 162, 163, 26,
705 26, 26, 26, nil, 26, 27, 27, 26, nil, 27,
706 27, 27, nil, 27, 27, 27, 27, nil, 154, 154,
707 nil, 27, 154, 154, nil, nil, 154, 154, 154, 154,
708 nil, 122, 122, nil, 154, 122, 122, nil, nil, 122,
709 122, 122, 122, nil, 76, 76, nil, 122, 76, 76,
710 nil, nil, 76, 76, 76, 76, nil, 38, 38, nil,
711 76, 38, 38, nil, nil, 38, 38, 38, 38, nil,
712 38, 55, 55, 38, nil, 55, 55, nil, nil, 55,
713 55, 55, 55, nil, 94, 94, nil, 55, 94, 94,
714 nil, nil, 94, 94, 94, 94, nil, 59, 59, nil,
715 94, 59, 59, nil, nil, 59, 59, 59, 59, nil,
716 114, 114, nil, 59, 114, 114, nil, 114, 114, 114,
717 114, 114, 0, 0, 0, 0, 0, 0, 0, 0,
718 0, 0, 0, 0, 77, 77, nil, nil, 77, 77,
719 nil, 77, 77, 77, 77, 77, 44, 44, nil, nil,
720 44, 44, nil, 44, 44, 44, 44, 44, 113, 113,
721 nil, nil, 113, 113, nil, 113, 113, 113, 113, 113,
722 88, 88, nil, nil, 88, 88, nil, 88, 88, 88,
723 88, 88, 74, 74, nil, nil, 74, 74, nil, 74,
724 74, 74, 74, 74, 129, 129, nil, nil, 129, 129,
725 nil, 129, 129, 129, 129, 129 ]
726
727 racc_action_pointer = [
728 320, 152, 129, 17, 165, 172, 137, 75, 89, 103,
729 116, 135, 106, 105, nil, nil, nil, nil, nil, nil,
730 nil, nil, nil, nil, nil, nil, 177, 191, 1, nil,
731 nil, nil, nil, 109, nil, nil, 94, nil, 243, nil,
732 99, 64, 74, nil, 332, 52, nil, nil, nil, nil,
733 50, 31, 45, nil, nil, 257, 36, nil, nil, 283,
734 22, nil, 16, nil, nil, nil, -3, -10, -12, nil,
735 103, 62, -8, 15, 368, 0, 230, 320, nil, nil,
736 47, nil, nil, nil, nil, nil, 4, nil, 356, 50,
737 146, nil, nil, nil, 270, nil, 65, 56, 52, nil,
738 57, 62, 79, nil, 68, 81, nil, nil, 77, nil,
739 nil, 80, 96, 344, 296, nil, nil, 108, nil, nil,
740 nil, 98, 217, nil, nil, nil, -19, 163, nil, 380,
741 128, 116, nil, nil, 14, 124, -26, nil, 128, 141,
742 148, 141, 152, 7, nil, nil, nil, 160, nil, nil,
743 149, 31, nil, nil, 204, nil, 167, nil, 174, nil,
744 nil, nil, 169, 184, nil, nil, nil ]
745
746 racc_action_default = [
747 -109, -109, -109, -109, -14, -109, -20, -109, -109, -109,
748 -109, -109, -109, -109, -10, -95, -105, -106, -77, -44,
749 -107, -11, -108, -79, -43, -102, -109, -109, -60, -103,
750 -55, -104, -78, -68, -54, -71, -45, -12, -109, -1,
751 -109, -109, -109, -2, -109, -22, -51, -48, -50, -3,
752 -40, -41, -109, -46, -4, -86, -5, -88, -6, -90,
753 -109, -7, -95, -8, -9, -98, -100, -61, -59, -56,
754 -69, -109, -109, -109, -109, -75, -109, -109, -57, -15,
755 -109, 167, -73, -80, -82, -21, -24, -81, -109, -27,
756 -109, -83, -47, -89, -109, -91, -109, -100, -109, -99,
757 -101, -75, -58, -52, -109, -109, -64, -63, -65, -76,
758 -72, -67, -109, -109, -109, -26, -23, -109, -29, -49,
759 -84, -42, -87, -92, -94, -95, -109, -109, -62, -109,
760 -109, -25, -74, -28, -31, -100, -109, -53, -66, -109,
761 -109, -34, -109, -109, -93, -96, -97, -109, -18, -13,
762 -38, -109, -30, -33, -109, -32, -16, -19, -14, -35,
763 -36, -37, -109, -109, -39, -85, -17 ]
764
765 racc_goto_table = [
766 39, 67, 70, 73, 38, 66, 69, 24, 37, 57,
767 59, 36, 55, 67, 99, 90, 85, 157, 69, 108,
768 83, 134, 111, 76, 49, 53, 141, 70, 73, 150,
769 118, 89, 45, 155, 159, 149, 140, 21, 14, 19,
770 119, 102, 64, 63, 61, 124, 70, 104, 58, 132,
771 83, 56, 97, 83, 54, 93, 43, 5, 131, 95,
772 116, nil, 76, nil, 83, 76, nil, 127, nil, 38,
773 nil, nil, nil, 103, 138, nil, 110, nil, nil, nil,
774 nil, nil, nil, 144, nil, nil, nil, nil, nil, 83,
775 83, nil, nil, nil, 57, nil, nil, 122, nil, 121,
776 nil, nil, nil, nil, nil, 83, nil, nil, nil, nil,
777 nil, nil, nil, nil, nil, 135, nil, nil, nil, nil,
778 nil, nil, 93, nil, nil, nil, 70, 161, 38, 70,
779 162, 160, 137, nil, nil, nil, nil, nil, nil, nil,
780 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
781 nil, nil, nil, nil, 164 ]
782
783 racc_goto_check = [
784 2, 37, 37, 29, 36, 46, 28, 13, 13, 41,
785 41, 31, 45, 37, 47, 32, 24, 23, 28, 25,
786 44, 20, 25, 42, 4, 4, 21, 37, 29, 22,
787 19, 18, 17, 26, 27, 16, 15, 12, 11, 33,
788 34, 35, 10, 9, 8, 47, 37, 29, 7, 43,
789 44, 6, 46, 44, 5, 41, 3, 1, 25, 41,
790 24, nil, 42, nil, 44, 42, nil, 32, nil, 36,
791 nil, nil, nil, 13, 25, nil, 41, nil, nil, nil,
792 nil, nil, nil, 47, nil, nil, nil, nil, nil, 44,
793 44, nil, nil, nil, 41, nil, nil, 45, nil, 31,
794 nil, nil, nil, nil, nil, 44, nil, nil, nil, nil,
795 nil, nil, nil, nil, nil, 46, nil, nil, nil, nil,
796 nil, nil, 41, nil, nil, nil, 37, 29, 36, 37,
797 29, 28, 13, nil, nil, nil, nil, nil, nil, nil,
798 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
799 nil, nil, nil, nil, 2 ]
800
801 racc_goto_pointer = [
802 nil, 57, -4, 50, 17, 46, 42, 38, 33, 31,
803 29, 37, 35, 5, nil, -94, -105, 26, -14, -59,
804 -97, -108, -112, -133, -28, -55, -110, -117, -20, -24,
805 nil, 9, -35, 37, -50, -27, 1, -25, nil, nil,
806 nil, 0, -5, -65, -24, 3, -10, -52 ]
807
808 racc_goto_default = [
809 nil, nil, nil, nil, nil, nil, nil, nil, nil, nil,
810 nil, nil, nil, 48, 41, nil, nil, nil, nil, nil,
811 nil, nil, nil, nil, nil, 86, nil, nil, 30, 34,
812 50, 51, nil, 46, 47, nil, 26, 28, 71, 72,
813 33, 35, 114, 82, 18, nil, nil, nil ]
814
815 racc_token_table = {
816 false => 0,
817 Object.new => 1,
818 :DATETIME => 2,
819 :RECEIVED => 3,
820 :MADDRESS => 4,
821 :RETPATH => 5,
822 :KEYWORDS => 6,
823 :ENCRYPTED => 7,
824 :MIMEVERSION => 8,
825 :CTYPE => 9,
826 :CENCODING => 10,
827 :CDISPOSITION => 11,
828 :ADDRESS => 12,
829 :MAILBOX => 13,
830 :DIGIT => 14,
831 :ATOM => 15,
832 "," => 16,
833 ":" => 17,
834 :FROM => 18,
835 :BY => 19,
836 "@" => 20,
837 :DOMLIT => 21,
838 :VIA => 22,
839 :WITH => 23,
840 :ID => 24,
841 :FOR => 25,
842 ";" => 26,
843 "<" => 27,
844 ">" => 28,
845 "." => 29,
846 :QUOTED => 30,
847 :TOKEN => 31,
848 "/" => 32,
849 "=" => 33 }
850
851 racc_use_result_var = false
852
853 racc_nt_base = 34
854
855 Racc_arg = [
856 racc_action_table,
857 racc_action_check,
858 racc_action_default,
859 racc_action_pointer,
860 racc_goto_table,
861 racc_goto_check,
862 racc_goto_default,
863 racc_goto_pointer,
864 racc_nt_base,
865 racc_reduce_table,
866 racc_token_table,
867 racc_shift_n,
868 racc_reduce_n,
869 racc_use_result_var ]
870
871 Racc_token_to_s_table = [
872 '$end',
873 'error',
874 'DATETIME',
875 'RECEIVED',
876 'MADDRESS',
877 'RETPATH',
878 'KEYWORDS',
879 'ENCRYPTED',
880 'MIMEVERSION',
881 'CTYPE',
882 'CENCODING',
883 'CDISPOSITION',
884 'ADDRESS',
885 'MAILBOX',
886 'DIGIT',
887 'ATOM',
888 '","',
889 '":"',
890 'FROM',
891 'BY',
892 '"@"',
893 'DOMLIT',
894 'VIA',
895 'WITH',
896 'ID',
897 'FOR',
898 '";"',
899 '"<"',
900 '">"',
901 '"."',
902 'QUOTED',
903 'TOKEN',
904 '"/"',
905 '"="',
906 '$start',
907 'content',
908 'datetime',
909 'received',
910 'addrs_TOP',
911 'retpath',
912 'keys',
913 'enc',
914 'version',
915 'ctype',
916 'cencode',
917 'cdisp',
918 'addr_TOP',
919 'mbox',
920 'day',
921 'hour',
922 'zone',
923 'from',
924 'by',
925 'via',
926 'with',
927 'id',
928 'for',
929 'received_datetime',
930 'received_domain',
931 'domain',
932 'msgid',
933 'received_addrspec',
934 'routeaddr',
935 'spec',
936 'addrs',
937 'group_bare',
938 'commas',
939 'group',
940 'addr',
941 'mboxes',
942 'addr_phrase',
943 'local_head',
944 'routes',
945 'at_domains',
946 'local',
947 'word',
948 'dots',
949 'domword',
950 'atom',
951 'phrase',
952 'params',
953 'opt_semicolon']
954
955 Racc_debug_parser = false
956
957 ##### racc system variables end #####
958
959 # reduce 0 omitted
960
961 module_eval <<'.,.,', 'parser.y', 16
962 def _reduce_1( val, _values)
963 val[1]
964 end
965 .,.,
966
967 module_eval <<'.,.,', 'parser.y', 17
968 def _reduce_2( val, _values)
969 val[1]
970 end
971 .,.,
972
973 module_eval <<'.,.,', 'parser.y', 18
974 def _reduce_3( val, _values)
975 val[1]
976 end
977 .,.,
978
979 module_eval <<'.,.,', 'parser.y', 19
980 def _reduce_4( val, _values)
981 val[1]
982 end
983 .,.,
984
985 module_eval <<'.,.,', 'parser.y', 20
986 def _reduce_5( val, _values)
987 val[1]
988 end
989 .,.,
990
991 module_eval <<'.,.,', 'parser.y', 21
992 def _reduce_6( val, _values)
993 val[1]
994 end
995 .,.,
996
997 module_eval <<'.,.,', 'parser.y', 22
998 def _reduce_7( val, _values)
999 val[1]
1000 end
1001 .,.,
1002
1003 module_eval <<'.,.,', 'parser.y', 23
1004 def _reduce_8( val, _values)
1005 val[1]
1006 end
1007 .,.,
1008
1009 module_eval <<'.,.,', 'parser.y', 24
1010 def _reduce_9( val, _values)
1011 val[1]
1012 end
1013 .,.,
1014
1015 module_eval <<'.,.,', 'parser.y', 25
1016 def _reduce_10( val, _values)
1017 val[1]
1018 end
1019 .,.,
1020
1021 module_eval <<'.,.,', 'parser.y', 26
1022 def _reduce_11( val, _values)
1023 val[1]
1024 end
1025 .,.,
1026
1027 module_eval <<'.,.,', 'parser.y', 27
1028 def _reduce_12( val, _values)
1029 val[1]
1030 end
1031 .,.,
1032
1033 module_eval <<'.,.,', 'parser.y', 36
1034 def _reduce_13( val, _values)
1035 t = Time.gm(val[3].to_i, val[2], val[1].to_i, 0, 0, 0)
1036 (t + val[4] - val[5]).localtime
1037 end
1038 .,.,
1039
1040 # reduce 14 omitted
1041
1042 # reduce 15 omitted
1043
1044 module_eval <<'.,.,', 'parser.y', 45
1045 def _reduce_16( val, _values)
1046 (val[0].to_i * 60 * 60) +
1047 (val[2].to_i * 60)
1048 end
1049 .,.,
1050
1051 module_eval <<'.,.,', 'parser.y', 51
1052 def _reduce_17( val, _values)
1053 (val[0].to_i * 60 * 60) +
1054 (val[2].to_i * 60) +
1055 (val[4].to_i)
1056 end
1057 .,.,
1058
1059 module_eval <<'.,.,', 'parser.y', 56
1060 def _reduce_18( val, _values)
1061 timezone_string_to_unixtime(val[0])
1062 end
1063 .,.,
1064
1065 module_eval <<'.,.,', 'parser.y', 61
1066 def _reduce_19( val, _values)
1067 val
1068 end
1069 .,.,
1070
1071 # reduce 20 omitted
1072
1073 module_eval <<'.,.,', 'parser.y', 67
1074 def _reduce_21( val, _values)
1075 val[1]
1076 end
1077 .,.,
1078
1079 # reduce 22 omitted
1080
1081 module_eval <<'.,.,', 'parser.y', 73
1082 def _reduce_23( val, _values)
1083 val[1]
1084 end
1085 .,.,
1086
1087 module_eval <<'.,.,', 'parser.y', 79
1088 def _reduce_24( val, _values)
1089 join_domain(val[0])
1090 end
1091 .,.,
1092
1093 module_eval <<'.,.,', 'parser.y', 83
1094 def _reduce_25( val, _values)
1095 join_domain(val[2])
1096 end
1097 .,.,
1098
1099 module_eval <<'.,.,', 'parser.y', 87
1100 def _reduce_26( val, _values)
1101 join_domain(val[0])
1102 end
1103 .,.,
1104
1105 # reduce 27 omitted
1106
1107 module_eval <<'.,.,', 'parser.y', 93
1108 def _reduce_28( val, _values)
1109 val[1]
1110 end
1111 .,.,
1112
1113 module_eval <<'.,.,', 'parser.y', 98
1114 def _reduce_29( val, _values)
1115 []
1116 end
1117 .,.,
1118
1119 module_eval <<'.,.,', 'parser.y', 103
1120 def _reduce_30( val, _values)
1121 val[0].push val[2]
1122 val[0]
1123 end
1124 .,.,
1125
1126 # reduce 31 omitted
1127
1128 module_eval <<'.,.,', 'parser.y', 109
1129 def _reduce_32( val, _values)
1130 val[1]
1131 end
1132 .,.,
1133
1134 module_eval <<'.,.,', 'parser.y', 113
1135 def _reduce_33( val, _values)
1136 val[1]
1137 end
1138 .,.,
1139
1140 # reduce 34 omitted
1141
1142 module_eval <<'.,.,', 'parser.y', 119
1143 def _reduce_35( val, _values)
1144 val[1]
1145 end
1146 .,.,
1147
1148 module_eval <<'.,.,', 'parser.y', 125
1149 def _reduce_36( val, _values)
1150 val[0].spec
1151 end
1152 .,.,
1153
1154 module_eval <<'.,.,', 'parser.y', 129
1155 def _reduce_37( val, _values)
1156 val[0].spec
1157 end
1158 .,.,
1159
1160 # reduce 38 omitted
1161
1162 module_eval <<'.,.,', 'parser.y', 136
1163 def _reduce_39( val, _values)
1164 val[1]
1165 end
1166 .,.,
1167
1168 # reduce 40 omitted
1169
1170 # reduce 41 omitted
1171
1172 # reduce 42 omitted
1173
1174 # reduce 43 omitted
1175
1176 # reduce 44 omitted
1177
1178 # reduce 45 omitted
1179
1180 # reduce 46 omitted
1181
1182 module_eval <<'.,.,', 'parser.y', 146
1183 def _reduce_47( val, _values)
1184 [ Address.new(nil, nil) ]
1185 end
1186 .,.,
1187
1188 module_eval <<'.,.,', 'parser.y', 152
1189 def _reduce_48( val, _values)
1190 val
1191 end
1192 .,.,
1193
1194 module_eval <<'.,.,', 'parser.y', 157
1195 def _reduce_49( val, _values)
1196 val[0].push val[2]
1197 val[0]
1198 end
1199 .,.,
1200
1201 # reduce 50 omitted
1202
1203 # reduce 51 omitted
1204
1205 module_eval <<'.,.,', 'parser.y', 165
1206 def _reduce_52( val, _values)
1207 val
1208 end
1209 .,.,
1210
1211 module_eval <<'.,.,', 'parser.y', 170
1212 def _reduce_53( val, _values)
1213 val[0].push val[2]
1214 val[0]
1215 end
1216 .,.,
1217
1218 # reduce 54 omitted
1219
1220 # reduce 55 omitted
1221
1222 module_eval <<'.,.,', 'parser.y', 178
1223 def _reduce_56( val, _values)
1224 val[1].phrase = Decoder.decode(val[0])
1225 val[1]
1226 end
1227 .,.,
1228
1229 # reduce 57 omitted
1230
1231 module_eval <<'.,.,', 'parser.y', 185
1232 def _reduce_58( val, _values)
1233 AddressGroup.new(val[0], val[2])
1234 end
1235 .,.,
1236
1237 module_eval <<'.,.,', 'parser.y', 185
1238 def _reduce_59( val, _values)
1239 AddressGroup.new(val[0], [])
1240 end
1241 .,.,
1242
1243 module_eval <<'.,.,', 'parser.y', 188
1244 def _reduce_60( val, _values)
1245 val[0].join('.')
1246 end
1247 .,.,
1248
1249 module_eval <<'.,.,', 'parser.y', 189
1250 def _reduce_61( val, _values)
1251 val[0] << ' ' << val[1].join('.')
1252 end
1253 .,.,
1254
1255 module_eval <<'.,.,', 'parser.y', 196
1256 def _reduce_62( val, _values)
1257 val[2].routes.replace val[1]
1258 val[2]
1259 end
1260 .,.,
1261
1262 module_eval <<'.,.,', 'parser.y', 200
1263 def _reduce_63( val, _values)
1264 val[1]
1265 end
1266 .,.,
1267
1268 # reduce 64 omitted
1269
1270 module_eval <<'.,.,', 'parser.y', 203
1271 def _reduce_65( val, _values)
1272 [ val[1].join('.') ]
1273 end
1274 .,.,
1275
1276 module_eval <<'.,.,', 'parser.y', 204
1277 def _reduce_66( val, _values)
1278 val[0].push val[3].join('.'); val[0]
1279 end
1280 .,.,
1281
1282 module_eval <<'.,.,', 'parser.y', 206
1283 def _reduce_67( val, _values)
1284 Address.new( val[0], val[2] )
1285 end
1286 .,.,
1287
1288 module_eval <<'.,.,', 'parser.y', 207
1289 def _reduce_68( val, _values)
1290 Address.new( val[0], nil )
1291 end
1292 .,.,
1293
1294 # reduce 69 omitted
1295
1296 module_eval <<'.,.,', 'parser.y', 210
1297 def _reduce_70( val, _values)
1298 val[0].push ''; val[0]
1299 end
1300 .,.,
1301
1302 module_eval <<'.,.,', 'parser.y', 213
1303 def _reduce_71( val, _values)
1304 val
1305 end
1306 .,.,
1307
1308 module_eval <<'.,.,', 'parser.y', 222
1309 def _reduce_72( val, _values)
1310 val[1].times do
1311 val[0].push ''
1312 end
1313 val[0].push val[2]
1314 val[0]
1315 end
1316 .,.,
1317
1318 module_eval <<'.,.,', 'parser.y', 224
1319 def _reduce_73( val, _values)
1320 val
1321 end
1322 .,.,
1323
1324 module_eval <<'.,.,', 'parser.y', 233
1325 def _reduce_74( val, _values)
1326 val[1].times do
1327 val[0].push ''
1328 end
1329 val[0].push val[2]
1330 val[0]
1331 end
1332 .,.,
1333
1334 module_eval <<'.,.,', 'parser.y', 234
1335 def _reduce_75( val, _values)
1336 0
1337 end
1338 .,.,
1339
1340 module_eval <<'.,.,', 'parser.y', 235
1341 def _reduce_76( val, _values)
1342 1
1343 end
1344 .,.,
1345
1346 # reduce 77 omitted
1347
1348 # reduce 78 omitted
1349
1350 # reduce 79 omitted
1351
1352 # reduce 80 omitted
1353
1354 # reduce 81 omitted
1355
1356 # reduce 82 omitted
1357
1358 # reduce 83 omitted
1359
1360 # reduce 84 omitted
1361
1362 module_eval <<'.,.,', 'parser.y', 253
1363 def _reduce_85( val, _values)
1364 val[1] = val[1].spec
1365 val.join('')
1366 end
1367 .,.,
1368
1369 module_eval <<'.,.,', 'parser.y', 254
1370 def _reduce_86( val, _values)
1371 val
1372 end
1373 .,.,
1374
1375 module_eval <<'.,.,', 'parser.y', 255
1376 def _reduce_87( val, _values)
1377 val[0].push val[2]; val[0]
1378 end
1379 .,.,
1380
1381 # reduce 88 omitted
1382
1383 module_eval <<'.,.,', 'parser.y', 258
1384 def _reduce_89( val, _values)
1385 val[0] << ' ' << val[1]
1386 end
1387 .,.,
1388
1389 module_eval <<'.,.,', 'parser.y', 265
1390 def _reduce_90( val, _values)
1391 val.push nil
1392 val
1393 end
1394 .,.,
1395
1396 module_eval <<'.,.,', 'parser.y', 269
1397 def _reduce_91( val, _values)
1398 val
1399 end
1400 .,.,
1401
1402 module_eval <<'.,.,', 'parser.y', 274
1403 def _reduce_92( val, _values)
1404 [ val[0].to_i, val[2].to_i ]
1405 end
1406 .,.,
1407
1408 module_eval <<'.,.,', 'parser.y', 279
1409 def _reduce_93( val, _values)
1410 [ val[0].downcase, val[2].downcase, decode_params(val[3]) ]
1411 end
1412 .,.,
1413
1414 module_eval <<'.,.,', 'parser.y', 283
1415 def _reduce_94( val, _values)
1416 [ val[0].downcase, nil, decode_params(val[1]) ]
1417 end
1418 .,.,
1419
1420 module_eval <<'.,.,', 'parser.y', 288
1421 def _reduce_95( val, _values)
1422 {}
1423 end
1424 .,.,
1425
1426 module_eval <<'.,.,', 'parser.y', 293
1427 def _reduce_96( val, _values)
1428 val[0][ val[2].downcase ] = ('"' + val[4].to_s + '"')
1429 val[0]
1430 end
1431 .,.,
1432
1433 module_eval <<'.,.,', 'parser.y', 298
1434 def _reduce_97( val, _values)
1435 val[0][ val[2].downcase ] = val[4]
1436 val[0]
1437 end
1438 .,.,
1439
1440 module_eval <<'.,.,', 'parser.y', 303
1441 def _reduce_98( val, _values)
1442 val[0].downcase
1443 end
1444 .,.,
1445
1446 module_eval <<'.,.,', 'parser.y', 308
1447 def _reduce_99( val, _values)
1448 [ val[0].downcase, decode_params(val[1]) ]
1449 end
1450 .,.,
1451
1452 # reduce 100 omitted
1453
1454 # reduce 101 omitted
1455
1456 # reduce 102 omitted
1457
1458 # reduce 103 omitted
1459
1460 # reduce 104 omitted
1461
1462 # reduce 105 omitted
1463
1464 # reduce 106 omitted
1465
1466 # reduce 107 omitted
1467
1468 # reduce 108 omitted
1469
1470 def _reduce_none( val, _values)
1471 val[0]
1472 end
1473
1474 end # class Parser
1475
1476 end # module TMail