daemon-kit 0.1.8rc1 → 0.1.8rc2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. data/History.txt +4 -0
  2. data/Rakefile +1 -1
  3. data/daemon-kit.gemspec +6 -37
  4. data/lib/daemon_kit.rb +1 -1
  5. data/lib/daemon_kit/error_handlers/base.rb +3 -3
  6. data/lib/daemon_kit/error_handlers/hoptoad.rb +135 -22
  7. data/lib/daemon_kit/safety.rb +0 -1
  8. data/lib/generators/daemon_kit/app/templates/config/boot.rb +7 -3
  9. data/lib/generators/daemon_kit/app/templates/config/environment.rb.tt +5 -2
  10. metadata +3 -34
  11. data/Manifest.txt +0 -176
  12. data/lib/daemon_kit/error_handlers/mail.rb +0 -85
  13. data/vendor/tmail-1.2.3/tmail.rb +0 -5
  14. data/vendor/tmail-1.2.3/tmail/address.rb +0 -426
  15. data/vendor/tmail-1.2.3/tmail/attachments.rb +0 -46
  16. data/vendor/tmail-1.2.3/tmail/base64.rb +0 -46
  17. data/vendor/tmail-1.2.3/tmail/compat.rb +0 -41
  18. data/vendor/tmail-1.2.3/tmail/config.rb +0 -67
  19. data/vendor/tmail-1.2.3/tmail/core_extensions.rb +0 -63
  20. data/vendor/tmail-1.2.3/tmail/encode.rb +0 -581
  21. data/vendor/tmail-1.2.3/tmail/header.rb +0 -960
  22. data/vendor/tmail-1.2.3/tmail/index.rb +0 -9
  23. data/vendor/tmail-1.2.3/tmail/interface.rb +0 -1130
  24. data/vendor/tmail-1.2.3/tmail/loader.rb +0 -3
  25. data/vendor/tmail-1.2.3/tmail/mail.rb +0 -578
  26. data/vendor/tmail-1.2.3/tmail/mailbox.rb +0 -495
  27. data/vendor/tmail-1.2.3/tmail/main.rb +0 -6
  28. data/vendor/tmail-1.2.3/tmail/mbox.rb +0 -3
  29. data/vendor/tmail-1.2.3/tmail/net.rb +0 -248
  30. data/vendor/tmail-1.2.3/tmail/obsolete.rb +0 -132
  31. data/vendor/tmail-1.2.3/tmail/parser.rb +0 -1476
  32. data/vendor/tmail-1.2.3/tmail/port.rb +0 -379
  33. data/vendor/tmail-1.2.3/tmail/quoting.rb +0 -118
  34. data/vendor/tmail-1.2.3/tmail/require_arch.rb +0 -58
  35. data/vendor/tmail-1.2.3/tmail/scanner.rb +0 -49
  36. data/vendor/tmail-1.2.3/tmail/scanner_r.rb +0 -261
  37. data/vendor/tmail-1.2.3/tmail/stringio.rb +0 -280
  38. data/vendor/tmail-1.2.3/tmail/utils.rb +0 -337
  39. data/vendor/tmail-1.2.3/tmail/version.rb +0 -39
  40. data/vendor/tmail.rb +0 -13
@@ -1,6 +0,0 @@
1
- #:stopdoc:
2
- require 'tmail/version'
3
- require 'tmail/mail'
4
- require 'tmail/mailbox'
5
- require 'tmail/core_extensions'
6
- #:startdoc:
@@ -1,3 +0,0 @@
1
- #:stopdoc:
2
- require 'tmail/mailbox'
3
- #:startdoc:
@@ -1,248 +0,0 @@
1
- #--
2
- # Copyright (c) 1998-2003 Minero Aoki <aamine@loveruby.net>
3
- #
4
- # Permission is hereby granted, free of charge, to any person obtaining
5
- # a copy of this software and associated documentation files (the
6
- # "Software"), to deal in the Software without restriction, including
7
- # without limitation the rights to use, copy, modify, merge, publish,
8
- # distribute, sublicense, and/or sell copies of the Software, and to
9
- # permit persons to whom the Software is furnished to do so, subject to
10
- # the following conditions:
11
- #
12
- # The above copyright notice and this permission notice shall be
13
- # included in all copies or substantial portions of the Software.
14
- #
15
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
- #
23
- # Note: Originally licensed under LGPL v2+. Using MIT license for Rails
24
- # with permission of Minero Aoki.
25
- #++
26
-
27
- #:stopdoc:
28
- require 'nkf'
29
- #:startdoc:
30
-
31
- module TMail
32
-
33
- class Mail
34
-
35
- def send_to( smtp )
36
- do_send_to(smtp) do
37
- ready_to_send
38
- end
39
- end
40
-
41
- def send_text_to( smtp )
42
- do_send_to(smtp) do
43
- ready_to_send
44
- mime_encode
45
- end
46
- end
47
-
48
- def do_send_to( smtp )
49
- from = from_address or raise ArgumentError, 'no from address'
50
- (dests = destinations).empty? and raise ArgumentError, 'no receipient'
51
- yield
52
- send_to_0 smtp, from, dests
53
- end
54
- private :do_send_to
55
-
56
- def send_to_0( smtp, from, to )
57
- smtp.ready(from, to) do |f|
58
- encoded "\r\n", 'j', f, ''
59
- end
60
- end
61
-
62
- def ready_to_send
63
- delete_no_send_fields
64
- add_message_id
65
- add_date
66
- end
67
-
68
- NOSEND_FIELDS = %w(
69
- received
70
- bcc
71
- )
72
-
73
- def delete_no_send_fields
74
- NOSEND_FIELDS.each do |nm|
75
- delete nm
76
- end
77
- delete_if {|n,v| v.empty? }
78
- end
79
-
80
- def add_message_id( fqdn = nil )
81
- self.message_id = ::TMail::new_message_id(fqdn)
82
- end
83
-
84
- def add_date
85
- self.date = Time.now
86
- end
87
-
88
- def mime_encode
89
- if parts.empty?
90
- mime_encode_singlepart
91
- else
92
- mime_encode_multipart true
93
- end
94
- end
95
-
96
- def mime_encode_singlepart
97
- self.mime_version = '1.0'
98
- b = body
99
- if NKF.guess(b) != NKF::BINARY
100
- mime_encode_text b
101
- else
102
- mime_encode_binary b
103
- end
104
- end
105
-
106
- def mime_encode_text( body )
107
- self.body = NKF.nkf('-j -m0', body)
108
- self.set_content_type 'text', 'plain', {'charset' => 'iso-2022-jp'}
109
- self.encoding = '7bit'
110
- end
111
-
112
- def mime_encode_binary( body )
113
- self.body = [body].pack('m')
114
- self.set_content_type 'application', 'octet-stream'
115
- self.encoding = 'Base64'
116
- end
117
-
118
- def mime_encode_multipart( top = true )
119
- self.mime_version = '1.0' if top
120
- self.set_content_type 'multipart', 'mixed'
121
- e = encoding(nil)
122
- if e and not /\A(?:7bit|8bit|binary)\z/i === e
123
- raise ArgumentError,
124
- 'using C.T.Encoding with multipart mail is not permitted'
125
- end
126
- end
127
-
128
- end
129
-
130
- #:stopdoc:
131
- class DeleteFields
132
-
133
- NOSEND_FIELDS = %w(
134
- received
135
- bcc
136
- )
137
-
138
- def initialize( nosend = nil, delempty = true )
139
- @no_send_fields = nosend || NOSEND_FIELDS.dup
140
- @delete_empty_fields = delempty
141
- end
142
-
143
- attr :no_send_fields
144
- attr :delete_empty_fields, true
145
-
146
- def exec( mail )
147
- @no_send_fields.each do |nm|
148
- delete nm
149
- end
150
- delete_if {|n,v| v.empty? } if @delete_empty_fields
151
- end
152
-
153
- end
154
- #:startdoc:
155
-
156
- #:stopdoc:
157
- class AddMessageId
158
-
159
- def initialize( fqdn = nil )
160
- @fqdn = fqdn
161
- end
162
-
163
- attr :fqdn, true
164
-
165
- def exec( mail )
166
- mail.message_id = ::TMail::new_msgid(@fqdn)
167
- end
168
-
169
- end
170
- #:startdoc:
171
-
172
- #:stopdoc:
173
- class AddDate
174
-
175
- def exec( mail )
176
- mail.date = Time.now
177
- end
178
-
179
- end
180
- #:startdoc:
181
-
182
- #:stopdoc:
183
- class MimeEncodeAuto
184
-
185
- def initialize( s = nil, m = nil )
186
- @singlepart_composer = s || MimeEncodeSingle.new
187
- @multipart_composer = m || MimeEncodeMulti.new
188
- end
189
-
190
- attr :singlepart_composer
191
- attr :multipart_composer
192
-
193
- def exec( mail )
194
- if mail._builtin_multipart?
195
- then @multipart_composer
196
- else @singlepart_composer end.exec mail
197
- end
198
-
199
- end
200
- #:startdoc:
201
-
202
- #:stopdoc:
203
- class MimeEncodeSingle
204
-
205
- def exec( mail )
206
- mail.mime_version = '1.0'
207
- b = mail.body
208
- if NKF.guess(b) != NKF::BINARY
209
- on_text b
210
- else
211
- on_binary b
212
- end
213
- end
214
-
215
- def on_text( body )
216
- mail.body = NKF.nkf('-j -m0', body)
217
- mail.set_content_type 'text', 'plain', {'charset' => 'iso-2022-jp'}
218
- mail.encoding = '7bit'
219
- end
220
-
221
- def on_binary( body )
222
- mail.body = [body].pack('m')
223
- mail.set_content_type 'application', 'octet-stream'
224
- mail.encoding = 'Base64'
225
- end
226
-
227
- end
228
- #:startdoc:
229
-
230
- #:stopdoc:
231
- class MimeEncodeMulti
232
-
233
- def exec( mail, top = true )
234
- mail.mime_version = '1.0' if top
235
- mail.set_content_type 'multipart', 'mixed'
236
- e = encoding(nil)
237
- if e and not /\A(?:7bit|8bit|binary)\z/i === e
238
- raise ArgumentError,
239
- 'using C.T.Encoding with multipart mail is not permitted'
240
- end
241
- mail.parts.each do |m|
242
- exec m, false if m._builtin_multipart?
243
- end
244
- end
245
-
246
- end
247
- #:startdoc:
248
- end # module TMail
@@ -1,132 +0,0 @@
1
- =begin rdoc
2
-
3
- = Obsolete methods that are depriciated
4
-
5
- If you really want to see them, go to lib/tmail/obsolete.rb and view to your
6
- heart's content.
7
-
8
- =end
9
- #--
10
- # Copyright (c) 1998-2003 Minero Aoki <aamine@loveruby.net>
11
- #
12
- # Permission is hereby granted, free of charge, to any person obtaining
13
- # a copy of this software and associated documentation files (the
14
- # "Software"), to deal in the Software without restriction, including
15
- # without limitation the rights to use, copy, modify, merge, publish,
16
- # distribute, sublicense, and/or sell copies of the Software, and to
17
- # permit persons to whom the Software is furnished to do so, subject to
18
- # the following conditions:
19
- #
20
- # The above copyright notice and this permission notice shall be
21
- # included in all copies or substantial portions of the Software.
22
- #
23
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30
- #
31
- # Note: Originally licensed under LGPL v2+. Using MIT license for Rails
32
- # with permission of Minero Aoki.
33
- #++
34
- #:stopdoc:
35
- module TMail #:nodoc:
36
-
37
- class Mail
38
- alias include? key?
39
- alias has_key? key?
40
-
41
- def values
42
- ret = []
43
- each_field {|v| ret.push v }
44
- ret
45
- end
46
-
47
- def value?( val )
48
- HeaderField === val or return false
49
-
50
- [ @header[val.name.downcase] ].flatten.include? val
51
- end
52
-
53
- alias has_value? value?
54
- end
55
-
56
- class Mail
57
- def from_addr( default = nil )
58
- addr, = from_addrs(nil)
59
- addr || default
60
- end
61
-
62
- def from_address( default = nil )
63
- if a = from_addr(nil)
64
- a.spec
65
- else
66
- default
67
- end
68
- end
69
-
70
- alias from_address= from_addrs=
71
-
72
- def from_phrase( default = nil )
73
- if a = from_addr(nil)
74
- a.phrase
75
- else
76
- default
77
- end
78
- end
79
-
80
- alias msgid message_id
81
- alias msgid= message_id=
82
-
83
- alias each_dest each_destination
84
- end
85
-
86
- class Address
87
- alias route routes
88
- alias addr spec
89
-
90
- def spec=( str )
91
- @local, @domain = str.split(/@/,2).map {|s| s.split(/\./) }
92
- end
93
-
94
- alias addr= spec=
95
- alias address= spec=
96
- end
97
-
98
- class MhMailbox
99
- alias new_mail new_port
100
- alias each_mail each_port
101
- alias each_newmail each_new_port
102
- end
103
- class UNIXMbox
104
- alias new_mail new_port
105
- alias each_mail each_port
106
- alias each_newmail each_new_port
107
- end
108
- class Maildir
109
- alias new_mail new_port
110
- alias each_mail each_port
111
- alias each_newmail each_new_port
112
- end
113
-
114
- extend TextUtils
115
-
116
- class << self
117
- alias msgid? message_id?
118
- alias boundary new_boundary
119
- alias msgid new_message_id
120
- alias new_msgid new_message_id
121
- end
122
-
123
- def Mail.boundary
124
- ::TMail.new_boundary
125
- end
126
-
127
- def Mail.msgid
128
- ::TMail.new_message_id
129
- end
130
-
131
- end # module TMail
132
- #:startdoc:
@@ -1,1476 +0,0 @@
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