mms2r 1.1.12 → 2.0.0

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