mail 2.5.5 → 2.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (191) hide show
  1. checksums.yaml +5 -5
  2. data/MIT-LICENSE +1 -1
  3. data/README.md +170 -108
  4. data/lib/mail/attachments_list.rb +13 -10
  5. data/lib/mail/body.rb +105 -91
  6. data/lib/mail/check_delivery_params.rb +30 -22
  7. data/lib/mail/configuration.rb +3 -0
  8. data/lib/mail/constants.rb +79 -0
  9. data/lib/mail/elements/address.rb +118 -174
  10. data/lib/mail/elements/address_list.rb +16 -56
  11. data/lib/mail/elements/content_disposition_element.rb +12 -22
  12. data/lib/mail/elements/content_location_element.rb +9 -17
  13. data/lib/mail/elements/content_transfer_encoding_element.rb +8 -19
  14. data/lib/mail/elements/content_type_element.rb +20 -30
  15. data/lib/mail/elements/date_time_element.rb +10 -21
  16. data/lib/mail/elements/envelope_from_element.rb +23 -31
  17. data/lib/mail/elements/message_ids_element.rb +22 -20
  18. data/lib/mail/elements/mime_version_element.rb +10 -21
  19. data/lib/mail/elements/phrase_list.rb +13 -15
  20. data/lib/mail/elements/received_element.rb +26 -21
  21. data/lib/mail/elements.rb +1 -0
  22. data/lib/mail/encodings/7bit.rb +10 -14
  23. data/lib/mail/encodings/8bit.rb +5 -18
  24. data/lib/mail/encodings/base64.rb +15 -10
  25. data/lib/mail/encodings/binary.rb +4 -22
  26. data/lib/mail/encodings/identity.rb +24 -0
  27. data/lib/mail/encodings/quoted_printable.rb +13 -7
  28. data/lib/mail/encodings/transfer_encoding.rb +47 -28
  29. data/lib/mail/encodings/unix_to_unix.rb +20 -0
  30. data/lib/mail/encodings.rb +102 -93
  31. data/lib/mail/envelope.rb +12 -19
  32. data/lib/mail/field.rb +143 -71
  33. data/lib/mail/field_list.rb +73 -19
  34. data/lib/mail/fields/bcc_field.rb +42 -48
  35. data/lib/mail/fields/cc_field.rb +29 -50
  36. data/lib/mail/fields/comments_field.rb +28 -37
  37. data/lib/mail/fields/common_address_field.rb +170 -0
  38. data/lib/mail/fields/common_date_field.rb +58 -0
  39. data/lib/mail/fields/common_field.rb +77 -0
  40. data/lib/mail/fields/common_message_id_field.rb +42 -0
  41. data/lib/mail/fields/content_description_field.rb +8 -14
  42. data/lib/mail/fields/content_disposition_field.rb +20 -44
  43. data/lib/mail/fields/content_id_field.rb +25 -51
  44. data/lib/mail/fields/content_location_field.rb +12 -25
  45. data/lib/mail/fields/content_transfer_encoding_field.rb +31 -36
  46. data/lib/mail/fields/content_type_field.rb +51 -80
  47. data/lib/mail/fields/date_field.rb +24 -52
  48. data/lib/mail/fields/from_field.rb +29 -50
  49. data/lib/mail/fields/in_reply_to_field.rb +39 -49
  50. data/lib/mail/fields/keywords_field.rb +19 -32
  51. data/lib/mail/fields/message_id_field.rb +26 -71
  52. data/lib/mail/fields/mime_version_field.rb +20 -30
  53. data/lib/mail/fields/named_structured_field.rb +11 -0
  54. data/lib/mail/fields/named_unstructured_field.rb +11 -0
  55. data/lib/mail/fields/optional_field.rb +10 -7
  56. data/lib/mail/fields/{common/parameter_hash.rb → parameter_hash.rb} +16 -13
  57. data/lib/mail/fields/received_field.rb +44 -57
  58. data/lib/mail/fields/references_field.rb +36 -49
  59. data/lib/mail/fields/reply_to_field.rb +29 -50
  60. data/lib/mail/fields/resent_bcc_field.rb +29 -50
  61. data/lib/mail/fields/resent_cc_field.rb +29 -50
  62. data/lib/mail/fields/resent_date_field.rb +6 -30
  63. data/lib/mail/fields/resent_from_field.rb +29 -50
  64. data/lib/mail/fields/resent_message_id_field.rb +6 -29
  65. data/lib/mail/fields/resent_sender_field.rb +28 -57
  66. data/lib/mail/fields/resent_to_field.rb +29 -50
  67. data/lib/mail/fields/return_path_field.rb +51 -55
  68. data/lib/mail/fields/sender_field.rb +35 -56
  69. data/lib/mail/fields/structured_field.rb +4 -30
  70. data/lib/mail/fields/subject_field.rb +10 -11
  71. data/lib/mail/fields/to_field.rb +29 -50
  72. data/lib/mail/fields/unstructured_field.rb +43 -51
  73. data/lib/mail/fields.rb +1 -0
  74. data/lib/mail/header.rb +78 -129
  75. data/lib/mail/indifferent_hash.rb +1 -0
  76. data/lib/mail/mail.rb +18 -11
  77. data/lib/mail/matchers/attachment_matchers.rb +44 -0
  78. data/lib/mail/matchers/has_sent_mail.rb +81 -4
  79. data/lib/mail/message.rb +142 -139
  80. data/lib/mail/multibyte/chars.rb +24 -180
  81. data/lib/mail/multibyte/unicode.rb +32 -27
  82. data/lib/mail/multibyte/utils.rb +27 -43
  83. data/lib/mail/multibyte.rb +56 -16
  84. data/lib/mail/network/delivery_methods/exim.rb +6 -4
  85. data/lib/mail/network/delivery_methods/file_delivery.rb +12 -10
  86. data/lib/mail/network/delivery_methods/logger_delivery.rb +34 -0
  87. data/lib/mail/network/delivery_methods/sendmail.rb +63 -21
  88. data/lib/mail/network/delivery_methods/smtp.rb +76 -50
  89. data/lib/mail/network/delivery_methods/smtp_connection.rb +4 -4
  90. data/lib/mail/network/delivery_methods/test_mailer.rb +5 -2
  91. data/lib/mail/network/retriever_methods/base.rb +9 -8
  92. data/lib/mail/network/retriever_methods/imap.rb +37 -18
  93. data/lib/mail/network/retriever_methods/pop3.rb +6 -3
  94. data/lib/mail/network/retriever_methods/test_retriever.rb +4 -2
  95. data/lib/mail/network.rb +2 -0
  96. data/lib/mail/parser_tools.rb +15 -0
  97. data/lib/mail/parsers/address_lists_parser.rb +33242 -0
  98. data/lib/mail/parsers/address_lists_parser.rl +179 -0
  99. data/lib/mail/parsers/content_disposition_parser.rb +901 -0
  100. data/lib/mail/parsers/content_disposition_parser.rl +89 -0
  101. data/lib/mail/parsers/content_location_parser.rb +822 -0
  102. data/lib/mail/parsers/content_location_parser.rl +78 -0
  103. data/lib/mail/parsers/content_transfer_encoding_parser.rb +522 -0
  104. data/lib/mail/parsers/content_transfer_encoding_parser.rl +71 -0
  105. data/lib/mail/parsers/content_type_parser.rb +1048 -0
  106. data/lib/mail/parsers/content_type_parser.rl +90 -0
  107. data/lib/mail/parsers/date_time_parser.rb +891 -0
  108. data/lib/mail/parsers/date_time_parser.rl +69 -0
  109. data/lib/mail/parsers/envelope_from_parser.rb +3675 -0
  110. data/lib/mail/parsers/envelope_from_parser.rl +89 -0
  111. data/lib/mail/parsers/message_ids_parser.rb +5161 -0
  112. data/lib/mail/parsers/message_ids_parser.rl +93 -0
  113. data/lib/mail/parsers/mime_version_parser.rb +513 -0
  114. data/lib/mail/parsers/mime_version_parser.rl +68 -0
  115. data/lib/mail/parsers/phrase_lists_parser.rb +884 -0
  116. data/lib/mail/parsers/phrase_lists_parser.rl +90 -0
  117. data/lib/mail/parsers/received_parser.rb +8782 -0
  118. data/lib/mail/parsers/received_parser.rl +91 -0
  119. data/lib/mail/parsers/rfc2045_content_transfer_encoding.rl +13 -0
  120. data/lib/mail/parsers/rfc2045_content_type.rl +25 -0
  121. data/lib/mail/parsers/rfc2045_mime.rl +16 -0
  122. data/lib/mail/parsers/rfc2183_content_disposition.rl +15 -0
  123. data/lib/mail/parsers/rfc3629_utf8.rl +19 -0
  124. data/lib/mail/parsers/rfc5234_abnf_core_rules.rl +22 -0
  125. data/lib/mail/parsers/rfc5322.rl +74 -0
  126. data/lib/mail/parsers/rfc5322_address.rl +72 -0
  127. data/lib/mail/parsers/rfc5322_date_time.rl +37 -0
  128. data/lib/mail/parsers/rfc5322_lexical_tokens.rl +60 -0
  129. data/lib/mail/parsers.rb +13 -0
  130. data/lib/mail/part.rb +11 -12
  131. data/lib/mail/parts_list.rb +90 -14
  132. data/lib/mail/smtp_envelope.rb +57 -0
  133. data/lib/mail/utilities.rb +415 -76
  134. data/lib/mail/values/unicode_tables.dat +0 -0
  135. data/lib/mail/version.rb +8 -15
  136. data/lib/mail/yaml.rb +30 -0
  137. data/lib/mail.rb +9 -32
  138. metadata +127 -79
  139. data/CHANGELOG.rdoc +0 -742
  140. data/CONTRIBUTING.md +0 -45
  141. data/Dependencies.txt +0 -3
  142. data/Gemfile +0 -32
  143. data/Rakefile +0 -21
  144. data/TODO.rdoc +0 -9
  145. data/lib/VERSION +0 -4
  146. data/lib/load_parsers.rb +0 -35
  147. data/lib/mail/core_extensions/nil.rb +0 -19
  148. data/lib/mail/core_extensions/object.rb +0 -13
  149. data/lib/mail/core_extensions/smtp.rb +0 -24
  150. data/lib/mail/core_extensions/string/access.rb +0 -145
  151. data/lib/mail/core_extensions/string/multibyte.rb +0 -78
  152. data/lib/mail/core_extensions/string.rb +0 -33
  153. data/lib/mail/fields/common/address_container.rb +0 -16
  154. data/lib/mail/fields/common/common_address.rb +0 -140
  155. data/lib/mail/fields/common/common_date.rb +0 -42
  156. data/lib/mail/fields/common/common_field.rb +0 -57
  157. data/lib/mail/fields/common/common_message_id.rb +0 -48
  158. data/lib/mail/multibyte/exceptions.rb +0 -8
  159. data/lib/mail/parsers/address_lists.rb +0 -64
  160. data/lib/mail/parsers/address_lists.treetop +0 -19
  161. data/lib/mail/parsers/content_disposition.rb +0 -535
  162. data/lib/mail/parsers/content_disposition.treetop +0 -46
  163. data/lib/mail/parsers/content_location.rb +0 -139
  164. data/lib/mail/parsers/content_location.treetop +0 -20
  165. data/lib/mail/parsers/content_transfer_encoding.rb +0 -201
  166. data/lib/mail/parsers/content_transfer_encoding.treetop +0 -18
  167. data/lib/mail/parsers/content_type.rb +0 -971
  168. data/lib/mail/parsers/content_type.treetop +0 -68
  169. data/lib/mail/parsers/date_time.rb +0 -114
  170. data/lib/mail/parsers/date_time.treetop +0 -11
  171. data/lib/mail/parsers/envelope_from.rb +0 -194
  172. data/lib/mail/parsers/envelope_from.treetop +0 -32
  173. data/lib/mail/parsers/message_ids.rb +0 -45
  174. data/lib/mail/parsers/message_ids.treetop +0 -15
  175. data/lib/mail/parsers/mime_version.rb +0 -144
  176. data/lib/mail/parsers/mime_version.treetop +0 -19
  177. data/lib/mail/parsers/phrase_lists.rb +0 -45
  178. data/lib/mail/parsers/phrase_lists.treetop +0 -15
  179. data/lib/mail/parsers/received.rb +0 -71
  180. data/lib/mail/parsers/received.treetop +0 -11
  181. data/lib/mail/parsers/rfc2045.rb +0 -421
  182. data/lib/mail/parsers/rfc2045.treetop +0 -35
  183. data/lib/mail/parsers/rfc2822.rb +0 -5397
  184. data/lib/mail/parsers/rfc2822.treetop +0 -408
  185. data/lib/mail/parsers/rfc2822_obsolete.rb +0 -3768
  186. data/lib/mail/parsers/rfc2822_obsolete.treetop +0 -241
  187. data/lib/mail/patterns.rb +0 -35
  188. data/lib/mail/version_specific/ruby_1_8.rb +0 -119
  189. data/lib/mail/version_specific/ruby_1_9.rb +0 -147
  190. data/lib/tasks/corpus.rake +0 -125
  191. data/lib/tasks/treetop.rake +0 -10
@@ -1,3768 +0,0 @@
1
- # Autogenerated from a Treetop grammar. Edits may be lost.
2
-
3
-
4
- module Mail
5
- module RFC2822Obsolete
6
- include Treetop::Runtime
7
-
8
- def root
9
- @root ||= :obs_qp
10
- end
11
-
12
- module ObsQp0
13
- end
14
-
15
- def _nt_obs_qp
16
- start_index = index
17
- if node_cache[:obs_qp].has_key?(index)
18
- cached = node_cache[:obs_qp][index]
19
- if cached
20
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
21
- @index = cached.interval.end
22
- end
23
- return cached
24
- end
25
-
26
- i0, s0 = index, []
27
- if has_terminal?("\\", false, index)
28
- r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
29
- @index += 1
30
- else
31
- terminal_parse_failure("\\")
32
- r1 = nil
33
- end
34
- s0 << r1
35
- if r1
36
- if has_terminal?('\G[\\x00-\\x7F]', true, index)
37
- r2 = true
38
- @index += 1
39
- else
40
- r2 = nil
41
- end
42
- s0 << r2
43
- end
44
- if s0.last
45
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
46
- r0.extend(ObsQp0)
47
- else
48
- @index = i0
49
- r0 = nil
50
- end
51
-
52
- node_cache[:obs_qp][start_index] = r0
53
-
54
- r0
55
- end
56
-
57
- module ObsText0
58
- def obs_char
59
- elements[0]
60
- end
61
-
62
- end
63
-
64
- module ObsText1
65
- end
66
-
67
- def _nt_obs_text
68
- start_index = index
69
- if node_cache[:obs_text].has_key?(index)
70
- cached = node_cache[:obs_text][index]
71
- if cached
72
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
73
- @index = cached.interval.end
74
- end
75
- return cached
76
- end
77
-
78
- i0, s0 = index, []
79
- s1, i1 = [], index
80
- loop do
81
- r2 = _nt_LF
82
- if r2
83
- s1 << r2
84
- else
85
- break
86
- end
87
- end
88
- r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
89
- s0 << r1
90
- if r1
91
- s3, i3 = [], index
92
- loop do
93
- r4 = _nt_CR
94
- if r4
95
- s3 << r4
96
- else
97
- break
98
- end
99
- end
100
- r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
101
- s0 << r3
102
- if r3
103
- s5, i5 = [], index
104
- loop do
105
- i6, s6 = index, []
106
- r7 = _nt_obs_char
107
- s6 << r7
108
- if r7
109
- s8, i8 = [], index
110
- loop do
111
- r9 = _nt_LF
112
- if r9
113
- s8 << r9
114
- else
115
- break
116
- end
117
- end
118
- r8 = instantiate_node(SyntaxNode,input, i8...index, s8)
119
- s6 << r8
120
- if r8
121
- s10, i10 = [], index
122
- loop do
123
- r11 = _nt_CR
124
- if r11
125
- s10 << r11
126
- else
127
- break
128
- end
129
- end
130
- r10 = instantiate_node(SyntaxNode,input, i10...index, s10)
131
- s6 << r10
132
- end
133
- end
134
- if s6.last
135
- r6 = instantiate_node(SyntaxNode,input, i6...index, s6)
136
- r6.extend(ObsText0)
137
- else
138
- @index = i6
139
- r6 = nil
140
- end
141
- if r6
142
- s5 << r6
143
- else
144
- break
145
- end
146
- end
147
- r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
148
- s0 << r5
149
- end
150
- end
151
- if s0.last
152
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
153
- r0.extend(ObsText1)
154
- else
155
- @index = i0
156
- r0 = nil
157
- end
158
-
159
- node_cache[:obs_text][start_index] = r0
160
-
161
- r0
162
- end
163
-
164
- def _nt_obs_char
165
- start_index = index
166
- if node_cache[:obs_char].has_key?(index)
167
- cached = node_cache[:obs_char][index]
168
- if cached
169
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
170
- @index = cached.interval.end
171
- end
172
- return cached
173
- end
174
-
175
- i0 = index
176
- if has_terminal?('\G[\\x00-\\x09]', true, index)
177
- r1 = true
178
- @index += 1
179
- else
180
- r1 = nil
181
- end
182
- if r1
183
- r0 = r1
184
- else
185
- if has_terminal?('\G[\\x0B-\\x0C]', true, index)
186
- r2 = true
187
- @index += 1
188
- else
189
- r2 = nil
190
- end
191
- if r2
192
- r0 = r2
193
- else
194
- if has_terminal?('\G[\\x0E-\\x7F]', true, index)
195
- r3 = true
196
- @index += 1
197
- else
198
- r3 = nil
199
- end
200
- if r3
201
- r0 = r3
202
- else
203
- @index = i0
204
- r0 = nil
205
- end
206
- end
207
- end
208
-
209
- node_cache[:obs_char][start_index] = r0
210
-
211
- r0
212
- end
213
-
214
- def _nt_obs_utext
215
- start_index = index
216
- if node_cache[:obs_utext].has_key?(index)
217
- cached = node_cache[:obs_utext][index]
218
- if cached
219
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
220
- @index = cached.interval.end
221
- end
222
- return cached
223
- end
224
-
225
- r0 = _nt_obs_text
226
-
227
- node_cache[:obs_utext][start_index] = r0
228
-
229
- r0
230
- end
231
-
232
- def _nt_obs_phrase
233
- start_index = index
234
- if node_cache[:obs_phrase].has_key?(index)
235
- cached = node_cache[:obs_phrase][index]
236
- if cached
237
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
238
- @index = cached.interval.end
239
- end
240
- return cached
241
- end
242
-
243
- s0, i0 = [], index
244
- loop do
245
- i1 = index
246
- r2 = _nt_word
247
- if r2
248
- r1 = r2
249
- else
250
- if has_terminal?(".", false, index)
251
- r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
252
- @index += 1
253
- else
254
- terminal_parse_failure(".")
255
- r3 = nil
256
- end
257
- if r3
258
- r1 = r3
259
- else
260
- if has_terminal?("@", false, index)
261
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
262
- @index += 1
263
- else
264
- terminal_parse_failure("@")
265
- r4 = nil
266
- end
267
- if r4
268
- r1 = r4
269
- else
270
- @index = i1
271
- r1 = nil
272
- end
273
- end
274
- end
275
- if r1
276
- s0 << r1
277
- else
278
- break
279
- end
280
- end
281
- if s0.empty?
282
- @index = i0
283
- r0 = nil
284
- else
285
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
286
- end
287
-
288
- node_cache[:obs_phrase][start_index] = r0
289
-
290
- r0
291
- end
292
-
293
- module ObsPhraseList0
294
- end
295
-
296
- module ObsPhraseList1
297
- end
298
-
299
- def _nt_obs_phrase_list
300
- start_index = index
301
- if node_cache[:obs_phrase_list].has_key?(index)
302
- cached = node_cache[:obs_phrase_list][index]
303
- if cached
304
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
305
- @index = cached.interval.end
306
- end
307
- return cached
308
- end
309
-
310
- i0 = index
311
- r1 = _nt_phrase
312
- if r1
313
- r0 = r1
314
- else
315
- i2, s2 = index, []
316
- s3, i3 = [], index
317
- loop do
318
- i4, s4 = index, []
319
- r6 = _nt_phrase
320
- if r6
321
- r5 = r6
322
- else
323
- r5 = instantiate_node(SyntaxNode,input, index...index)
324
- end
325
- s4 << r5
326
- if r5
327
- r8 = _nt_CFWS
328
- if r8
329
- r7 = r8
330
- else
331
- r7 = instantiate_node(SyntaxNode,input, index...index)
332
- end
333
- s4 << r7
334
- if r7
335
- if has_terminal?(",", false, index)
336
- r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
337
- @index += 1
338
- else
339
- terminal_parse_failure(",")
340
- r9 = nil
341
- end
342
- s4 << r9
343
- if r9
344
- r11 = _nt_CFWS
345
- if r11
346
- r10 = r11
347
- else
348
- r10 = instantiate_node(SyntaxNode,input, index...index)
349
- end
350
- s4 << r10
351
- end
352
- end
353
- end
354
- if s4.last
355
- r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
356
- r4.extend(ObsPhraseList0)
357
- else
358
- @index = i4
359
- r4 = nil
360
- end
361
- if r4
362
- s3 << r4
363
- else
364
- break
365
- end
366
- end
367
- if s3.empty?
368
- @index = i3
369
- r3 = nil
370
- else
371
- r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
372
- end
373
- s2 << r3
374
- if r3
375
- r13 = _nt_phrase
376
- if r13
377
- r12 = r13
378
- else
379
- r12 = instantiate_node(SyntaxNode,input, index...index)
380
- end
381
- s2 << r12
382
- end
383
- if s2.last
384
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
385
- r2.extend(ObsPhraseList1)
386
- else
387
- @index = i2
388
- r2 = nil
389
- end
390
- if r2
391
- r0 = r2
392
- else
393
- @index = i0
394
- r0 = nil
395
- end
396
- end
397
-
398
- node_cache[:obs_phrase_list][start_index] = r0
399
-
400
- r0
401
- end
402
-
403
- module ObsFWS0
404
- def CRLF
405
- elements[0]
406
- end
407
-
408
- end
409
-
410
- module ObsFWS1
411
- end
412
-
413
- def _nt_obs_FWS
414
- start_index = index
415
- if node_cache[:obs_FWS].has_key?(index)
416
- cached = node_cache[:obs_FWS][index]
417
- if cached
418
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
419
- @index = cached.interval.end
420
- end
421
- return cached
422
- end
423
-
424
- i0, s0 = index, []
425
- s1, i1 = [], index
426
- loop do
427
- r2 = _nt_WSP
428
- if r2
429
- s1 << r2
430
- else
431
- break
432
- end
433
- end
434
- if s1.empty?
435
- @index = i1
436
- r1 = nil
437
- else
438
- r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
439
- end
440
- s0 << r1
441
- if r1
442
- s3, i3 = [], index
443
- loop do
444
- i4, s4 = index, []
445
- r5 = _nt_CRLF
446
- s4 << r5
447
- if r5
448
- s6, i6 = [], index
449
- loop do
450
- r7 = _nt_WSP
451
- if r7
452
- s6 << r7
453
- else
454
- break
455
- end
456
- end
457
- if s6.empty?
458
- @index = i6
459
- r6 = nil
460
- else
461
- r6 = instantiate_node(SyntaxNode,input, i6...index, s6)
462
- end
463
- s4 << r6
464
- end
465
- if s4.last
466
- r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
467
- r4.extend(ObsFWS0)
468
- else
469
- @index = i4
470
- r4 = nil
471
- end
472
- if r4
473
- s3 << r4
474
- else
475
- break
476
- end
477
- end
478
- r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
479
- s0 << r3
480
- end
481
- if s0.last
482
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
483
- r0.extend(ObsFWS1)
484
- else
485
- @index = i0
486
- r0 = nil
487
- end
488
-
489
- node_cache[:obs_FWS][start_index] = r0
490
-
491
- r0
492
- end
493
-
494
- module ObsDayOfWeek0
495
- def day_name
496
- elements[1]
497
- end
498
-
499
- end
500
-
501
- def _nt_obs_day_of_week
502
- start_index = index
503
- if node_cache[:obs_day_of_week].has_key?(index)
504
- cached = node_cache[:obs_day_of_week][index]
505
- if cached
506
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
507
- @index = cached.interval.end
508
- end
509
- return cached
510
- end
511
-
512
- i0, s0 = index, []
513
- r2 = _nt_CFWS
514
- if r2
515
- r1 = r2
516
- else
517
- r1 = instantiate_node(SyntaxNode,input, index...index)
518
- end
519
- s0 << r1
520
- if r1
521
- r3 = _nt_day_name
522
- s0 << r3
523
- if r3
524
- r5 = _nt_CFWS
525
- if r5
526
- r4 = r5
527
- else
528
- r4 = instantiate_node(SyntaxNode,input, index...index)
529
- end
530
- s0 << r4
531
- end
532
- end
533
- if s0.last
534
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
535
- r0.extend(ObsDayOfWeek0)
536
- else
537
- @index = i0
538
- r0 = nil
539
- end
540
-
541
- node_cache[:obs_day_of_week][start_index] = r0
542
-
543
- r0
544
- end
545
-
546
- module ObsYear0
547
- def DIGIT1
548
- elements[0]
549
- end
550
-
551
- def DIGIT2
552
- elements[1]
553
- end
554
- end
555
-
556
- module ObsYear1
557
- end
558
-
559
- def _nt_obs_year
560
- start_index = index
561
- if node_cache[:obs_year].has_key?(index)
562
- cached = node_cache[:obs_year][index]
563
- if cached
564
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
565
- @index = cached.interval.end
566
- end
567
- return cached
568
- end
569
-
570
- i0, s0 = index, []
571
- r2 = _nt_CFWS
572
- if r2
573
- r1 = r2
574
- else
575
- r1 = instantiate_node(SyntaxNode,input, index...index)
576
- end
577
- s0 << r1
578
- if r1
579
- i3, s3 = index, []
580
- r4 = _nt_DIGIT
581
- s3 << r4
582
- if r4
583
- r5 = _nt_DIGIT
584
- s3 << r5
585
- end
586
- if s3.last
587
- r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
588
- r3.extend(ObsYear0)
589
- else
590
- @index = i3
591
- r3 = nil
592
- end
593
- s0 << r3
594
- if r3
595
- r7 = _nt_CFWS
596
- if r7
597
- r6 = r7
598
- else
599
- r6 = instantiate_node(SyntaxNode,input, index...index)
600
- end
601
- s0 << r6
602
- end
603
- end
604
- if s0.last
605
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
606
- r0.extend(ObsYear1)
607
- else
608
- @index = i0
609
- r0 = nil
610
- end
611
-
612
- node_cache[:obs_year][start_index] = r0
613
-
614
- r0
615
- end
616
-
617
- module ObsMonth0
618
- def CFWS1
619
- elements[0]
620
- end
621
-
622
- def month_name
623
- elements[1]
624
- end
625
-
626
- def CFWS2
627
- elements[2]
628
- end
629
- end
630
-
631
- def _nt_obs_month
632
- start_index = index
633
- if node_cache[:obs_month].has_key?(index)
634
- cached = node_cache[:obs_month][index]
635
- if cached
636
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
637
- @index = cached.interval.end
638
- end
639
- return cached
640
- end
641
-
642
- i0, s0 = index, []
643
- r1 = _nt_CFWS
644
- s0 << r1
645
- if r1
646
- r2 = _nt_month_name
647
- s0 << r2
648
- if r2
649
- r3 = _nt_CFWS
650
- s0 << r3
651
- end
652
- end
653
- if s0.last
654
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
655
- r0.extend(ObsMonth0)
656
- else
657
- @index = i0
658
- r0 = nil
659
- end
660
-
661
- node_cache[:obs_month][start_index] = r0
662
-
663
- r0
664
- end
665
-
666
- module ObsDay0
667
- def DIGIT1
668
- elements[0]
669
- end
670
-
671
- def DIGIT2
672
- elements[1]
673
- end
674
- end
675
-
676
- module ObsDay1
677
- end
678
-
679
- def _nt_obs_day
680
- start_index = index
681
- if node_cache[:obs_day].has_key?(index)
682
- cached = node_cache[:obs_day][index]
683
- if cached
684
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
685
- @index = cached.interval.end
686
- end
687
- return cached
688
- end
689
-
690
- i0, s0 = index, []
691
- r2 = _nt_CFWS
692
- if r2
693
- r1 = r2
694
- else
695
- r1 = instantiate_node(SyntaxNode,input, index...index)
696
- end
697
- s0 << r1
698
- if r1
699
- i3 = index
700
- r4 = _nt_DIGIT
701
- if r4
702
- r3 = r4
703
- else
704
- i5, s5 = index, []
705
- r6 = _nt_DIGIT
706
- s5 << r6
707
- if r6
708
- r7 = _nt_DIGIT
709
- s5 << r7
710
- end
711
- if s5.last
712
- r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
713
- r5.extend(ObsDay0)
714
- else
715
- @index = i5
716
- r5 = nil
717
- end
718
- if r5
719
- r3 = r5
720
- else
721
- @index = i3
722
- r3 = nil
723
- end
724
- end
725
- s0 << r3
726
- if r3
727
- r9 = _nt_CFWS
728
- if r9
729
- r8 = r9
730
- else
731
- r8 = instantiate_node(SyntaxNode,input, index...index)
732
- end
733
- s0 << r8
734
- end
735
- end
736
- if s0.last
737
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
738
- r0.extend(ObsDay1)
739
- else
740
- @index = i0
741
- r0 = nil
742
- end
743
-
744
- node_cache[:obs_day][start_index] = r0
745
-
746
- r0
747
- end
748
-
749
- module ObsHour0
750
- def DIGIT1
751
- elements[0]
752
- end
753
-
754
- def DIGIT2
755
- elements[1]
756
- end
757
- end
758
-
759
- module ObsHour1
760
- end
761
-
762
- def _nt_obs_hour
763
- start_index = index
764
- if node_cache[:obs_hour].has_key?(index)
765
- cached = node_cache[:obs_hour][index]
766
- if cached
767
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
768
- @index = cached.interval.end
769
- end
770
- return cached
771
- end
772
-
773
- i0, s0 = index, []
774
- r2 = _nt_CFWS
775
- if r2
776
- r1 = r2
777
- else
778
- r1 = instantiate_node(SyntaxNode,input, index...index)
779
- end
780
- s0 << r1
781
- if r1
782
- i3, s3 = index, []
783
- r4 = _nt_DIGIT
784
- s3 << r4
785
- if r4
786
- r5 = _nt_DIGIT
787
- s3 << r5
788
- end
789
- if s3.last
790
- r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
791
- r3.extend(ObsHour0)
792
- else
793
- @index = i3
794
- r3 = nil
795
- end
796
- s0 << r3
797
- if r3
798
- r7 = _nt_CFWS
799
- if r7
800
- r6 = r7
801
- else
802
- r6 = instantiate_node(SyntaxNode,input, index...index)
803
- end
804
- s0 << r6
805
- end
806
- end
807
- if s0.last
808
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
809
- r0.extend(ObsHour1)
810
- else
811
- @index = i0
812
- r0 = nil
813
- end
814
-
815
- node_cache[:obs_hour][start_index] = r0
816
-
817
- r0
818
- end
819
-
820
- module ObsMinute0
821
- def DIGIT1
822
- elements[0]
823
- end
824
-
825
- def DIGIT2
826
- elements[1]
827
- end
828
- end
829
-
830
- module ObsMinute1
831
- end
832
-
833
- def _nt_obs_minute
834
- start_index = index
835
- if node_cache[:obs_minute].has_key?(index)
836
- cached = node_cache[:obs_minute][index]
837
- if cached
838
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
839
- @index = cached.interval.end
840
- end
841
- return cached
842
- end
843
-
844
- i0, s0 = index, []
845
- r2 = _nt_CFWS
846
- if r2
847
- r1 = r2
848
- else
849
- r1 = instantiate_node(SyntaxNode,input, index...index)
850
- end
851
- s0 << r1
852
- if r1
853
- i3, s3 = index, []
854
- r4 = _nt_DIGIT
855
- s3 << r4
856
- if r4
857
- r5 = _nt_DIGIT
858
- s3 << r5
859
- end
860
- if s3.last
861
- r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
862
- r3.extend(ObsMinute0)
863
- else
864
- @index = i3
865
- r3 = nil
866
- end
867
- s0 << r3
868
- if r3
869
- r7 = _nt_CFWS
870
- if r7
871
- r6 = r7
872
- else
873
- r6 = instantiate_node(SyntaxNode,input, index...index)
874
- end
875
- s0 << r6
876
- end
877
- end
878
- if s0.last
879
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
880
- r0.extend(ObsMinute1)
881
- else
882
- @index = i0
883
- r0 = nil
884
- end
885
-
886
- node_cache[:obs_minute][start_index] = r0
887
-
888
- r0
889
- end
890
-
891
- module ObsSecond0
892
- def DIGIT1
893
- elements[0]
894
- end
895
-
896
- def DIGIT2
897
- elements[1]
898
- end
899
- end
900
-
901
- module ObsSecond1
902
- end
903
-
904
- def _nt_obs_second
905
- start_index = index
906
- if node_cache[:obs_second].has_key?(index)
907
- cached = node_cache[:obs_second][index]
908
- if cached
909
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
910
- @index = cached.interval.end
911
- end
912
- return cached
913
- end
914
-
915
- i0, s0 = index, []
916
- r2 = _nt_CFWS
917
- if r2
918
- r1 = r2
919
- else
920
- r1 = instantiate_node(SyntaxNode,input, index...index)
921
- end
922
- s0 << r1
923
- if r1
924
- i3, s3 = index, []
925
- r4 = _nt_DIGIT
926
- s3 << r4
927
- if r4
928
- r5 = _nt_DIGIT
929
- s3 << r5
930
- end
931
- if s3.last
932
- r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
933
- r3.extend(ObsSecond0)
934
- else
935
- @index = i3
936
- r3 = nil
937
- end
938
- s0 << r3
939
- if r3
940
- r7 = _nt_CFWS
941
- if r7
942
- r6 = r7
943
- else
944
- r6 = instantiate_node(SyntaxNode,input, index...index)
945
- end
946
- s0 << r6
947
- end
948
- end
949
- if s0.last
950
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
951
- r0.extend(ObsSecond1)
952
- else
953
- @index = i0
954
- r0 = nil
955
- end
956
-
957
- node_cache[:obs_second][start_index] = r0
958
-
959
- r0
960
- end
961
-
962
- def _nt_obs_zone
963
- start_index = index
964
- if node_cache[:obs_zone].has_key?(index)
965
- cached = node_cache[:obs_zone][index]
966
- if cached
967
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
968
- @index = cached.interval.end
969
- end
970
- return cached
971
- end
972
-
973
- i0 = index
974
- if has_terminal?("UT", false, index)
975
- r1 = instantiate_node(SyntaxNode,input, index...(index + 2))
976
- @index += 2
977
- else
978
- terminal_parse_failure("UT")
979
- r1 = nil
980
- end
981
- if r1
982
- r0 = r1
983
- else
984
- if has_terminal?("GMT", false, index)
985
- r2 = instantiate_node(SyntaxNode,input, index...(index + 3))
986
- @index += 3
987
- else
988
- terminal_parse_failure("GMT")
989
- r2 = nil
990
- end
991
- if r2
992
- r0 = r2
993
- else
994
- if has_terminal?("EST", false, index)
995
- r3 = instantiate_node(SyntaxNode,input, index...(index + 3))
996
- @index += 3
997
- else
998
- terminal_parse_failure("EST")
999
- r3 = nil
1000
- end
1001
- if r3
1002
- r0 = r3
1003
- else
1004
- if has_terminal?("EDT", false, index)
1005
- r4 = instantiate_node(SyntaxNode,input, index...(index + 3))
1006
- @index += 3
1007
- else
1008
- terminal_parse_failure("EDT")
1009
- r4 = nil
1010
- end
1011
- if r4
1012
- r0 = r4
1013
- else
1014
- if has_terminal?("CST", false, index)
1015
- r5 = instantiate_node(SyntaxNode,input, index...(index + 3))
1016
- @index += 3
1017
- else
1018
- terminal_parse_failure("CST")
1019
- r5 = nil
1020
- end
1021
- if r5
1022
- r0 = r5
1023
- else
1024
- if has_terminal?("CDT", false, index)
1025
- r6 = instantiate_node(SyntaxNode,input, index...(index + 3))
1026
- @index += 3
1027
- else
1028
- terminal_parse_failure("CDT")
1029
- r6 = nil
1030
- end
1031
- if r6
1032
- r0 = r6
1033
- else
1034
- if has_terminal?("MST", false, index)
1035
- r7 = instantiate_node(SyntaxNode,input, index...(index + 3))
1036
- @index += 3
1037
- else
1038
- terminal_parse_failure("MST")
1039
- r7 = nil
1040
- end
1041
- if r7
1042
- r0 = r7
1043
- else
1044
- if has_terminal?("MDT", false, index)
1045
- r8 = instantiate_node(SyntaxNode,input, index...(index + 3))
1046
- @index += 3
1047
- else
1048
- terminal_parse_failure("MDT")
1049
- r8 = nil
1050
- end
1051
- if r8
1052
- r0 = r8
1053
- else
1054
- if has_terminal?("PST", false, index)
1055
- r9 = instantiate_node(SyntaxNode,input, index...(index + 3))
1056
- @index += 3
1057
- else
1058
- terminal_parse_failure("PST")
1059
- r9 = nil
1060
- end
1061
- if r9
1062
- r0 = r9
1063
- else
1064
- if has_terminal?("PDT", false, index)
1065
- r10 = instantiate_node(SyntaxNode,input, index...(index + 3))
1066
- @index += 3
1067
- else
1068
- terminal_parse_failure("PDT")
1069
- r10 = nil
1070
- end
1071
- if r10
1072
- r0 = r10
1073
- else
1074
- if has_terminal?('\G[\\x41-\\x49]', true, index)
1075
- r11 = true
1076
- @index += 1
1077
- else
1078
- r11 = nil
1079
- end
1080
- if r11
1081
- r0 = r11
1082
- else
1083
- if has_terminal?('\G[\\x4B-\\x5A]', true, index)
1084
- r12 = true
1085
- @index += 1
1086
- else
1087
- r12 = nil
1088
- end
1089
- if r12
1090
- r0 = r12
1091
- else
1092
- if has_terminal?('\G[\\x61-\\x69]', true, index)
1093
- r13 = true
1094
- @index += 1
1095
- else
1096
- r13 = nil
1097
- end
1098
- if r13
1099
- r0 = r13
1100
- else
1101
- if has_terminal?('\G[\\x6B-\\x7A]', true, index)
1102
- r14 = true
1103
- @index += 1
1104
- else
1105
- r14 = nil
1106
- end
1107
- if r14
1108
- r0 = r14
1109
- else
1110
- @index = i0
1111
- r0 = nil
1112
- end
1113
- end
1114
- end
1115
- end
1116
- end
1117
- end
1118
- end
1119
- end
1120
- end
1121
- end
1122
- end
1123
- end
1124
- end
1125
- end
1126
-
1127
- node_cache[:obs_zone][start_index] = r0
1128
-
1129
- r0
1130
- end
1131
-
1132
- module ObsAngleAddr0
1133
- def addr_spec
1134
- elements[3]
1135
- end
1136
-
1137
- end
1138
-
1139
- def _nt_obs_angle_addr
1140
- start_index = index
1141
- if node_cache[:obs_angle_addr].has_key?(index)
1142
- cached = node_cache[:obs_angle_addr][index]
1143
- if cached
1144
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1145
- @index = cached.interval.end
1146
- end
1147
- return cached
1148
- end
1149
-
1150
- i0, s0 = index, []
1151
- r2 = _nt_CFWS
1152
- if r2
1153
- r1 = r2
1154
- else
1155
- r1 = instantiate_node(SyntaxNode,input, index...index)
1156
- end
1157
- s0 << r1
1158
- if r1
1159
- if has_terminal?("<", false, index)
1160
- r3 = instantiate_node(SyntaxNode,input, index...(index + 1))
1161
- @index += 1
1162
- else
1163
- terminal_parse_failure("<")
1164
- r3 = nil
1165
- end
1166
- s0 << r3
1167
- if r3
1168
- r5 = _nt_obs_route
1169
- if r5
1170
- r4 = r5
1171
- else
1172
- r4 = instantiate_node(SyntaxNode,input, index...index)
1173
- end
1174
- s0 << r4
1175
- if r4
1176
- r6 = _nt_addr_spec
1177
- s0 << r6
1178
- if r6
1179
- if has_terminal?(">", false, index)
1180
- r7 = instantiate_node(SyntaxNode,input, index...(index + 1))
1181
- @index += 1
1182
- else
1183
- terminal_parse_failure(">")
1184
- r7 = nil
1185
- end
1186
- s0 << r7
1187
- if r7
1188
- r9 = _nt_CFWS
1189
- if r9
1190
- r8 = r9
1191
- else
1192
- r8 = instantiate_node(SyntaxNode,input, index...index)
1193
- end
1194
- s0 << r8
1195
- end
1196
- end
1197
- end
1198
- end
1199
- end
1200
- if s0.last
1201
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
1202
- r0.extend(ObsAngleAddr0)
1203
- else
1204
- @index = i0
1205
- r0 = nil
1206
- end
1207
-
1208
- node_cache[:obs_angle_addr][start_index] = r0
1209
-
1210
- r0
1211
- end
1212
-
1213
- module ObsRoute0
1214
- def obs_domain_list
1215
- elements[1]
1216
- end
1217
-
1218
- end
1219
-
1220
- def _nt_obs_route
1221
- start_index = index
1222
- if node_cache[:obs_route].has_key?(index)
1223
- cached = node_cache[:obs_route][index]
1224
- if cached
1225
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1226
- @index = cached.interval.end
1227
- end
1228
- return cached
1229
- end
1230
-
1231
- i0, s0 = index, []
1232
- r2 = _nt_CFWS
1233
- if r2
1234
- r1 = r2
1235
- else
1236
- r1 = instantiate_node(SyntaxNode,input, index...index)
1237
- end
1238
- s0 << r1
1239
- if r1
1240
- r3 = _nt_obs_domain_list
1241
- s0 << r3
1242
- if r3
1243
- if has_terminal?(":", false, index)
1244
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
1245
- @index += 1
1246
- else
1247
- terminal_parse_failure(":")
1248
- r4 = nil
1249
- end
1250
- s0 << r4
1251
- if r4
1252
- r6 = _nt_CFWS
1253
- if r6
1254
- r5 = r6
1255
- else
1256
- r5 = instantiate_node(SyntaxNode,input, index...index)
1257
- end
1258
- s0 << r5
1259
- end
1260
- end
1261
- end
1262
- if s0.last
1263
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
1264
- r0.extend(ObsRoute0)
1265
- else
1266
- @index = i0
1267
- r0 = nil
1268
- end
1269
-
1270
- node_cache[:obs_route][start_index] = r0
1271
-
1272
- r0
1273
- end
1274
-
1275
- module ObsDomainList0
1276
- def domain
1277
- elements[3]
1278
- end
1279
- end
1280
-
1281
- module ObsDomainList1
1282
- def domain
1283
- elements[1]
1284
- end
1285
-
1286
- end
1287
-
1288
- def _nt_obs_domain_list
1289
- start_index = index
1290
- if node_cache[:obs_domain_list].has_key?(index)
1291
- cached = node_cache[:obs_domain_list][index]
1292
- if cached
1293
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1294
- @index = cached.interval.end
1295
- end
1296
- return cached
1297
- end
1298
-
1299
- i0, s0 = index, []
1300
- if has_terminal?("@", false, index)
1301
- r1 = instantiate_node(SyntaxNode,input, index...(index + 1))
1302
- @index += 1
1303
- else
1304
- terminal_parse_failure("@")
1305
- r1 = nil
1306
- end
1307
- s0 << r1
1308
- if r1
1309
- r2 = _nt_domain
1310
- s0 << r2
1311
- if r2
1312
- s3, i3 = [], index
1313
- loop do
1314
- i4, s4 = index, []
1315
- s5, i5 = [], index
1316
- loop do
1317
- if has_terminal?(",", false, index)
1318
- r6 = instantiate_node(SyntaxNode,input, index...(index + 1))
1319
- @index += 1
1320
- else
1321
- terminal_parse_failure(",")
1322
- r6 = nil
1323
- end
1324
- if r6
1325
- s5 << r6
1326
- else
1327
- break
1328
- end
1329
- end
1330
- r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
1331
- s4 << r5
1332
- if r5
1333
- r8 = _nt_CFWS
1334
- if r8
1335
- r7 = r8
1336
- else
1337
- r7 = instantiate_node(SyntaxNode,input, index...index)
1338
- end
1339
- s4 << r7
1340
- if r7
1341
- if has_terminal?("@", false, index)
1342
- r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
1343
- @index += 1
1344
- else
1345
- terminal_parse_failure("@")
1346
- r9 = nil
1347
- end
1348
- s4 << r9
1349
- if r9
1350
- r10 = _nt_domain
1351
- s4 << r10
1352
- end
1353
- end
1354
- end
1355
- if s4.last
1356
- r4 = instantiate_node(SyntaxNode,input, i4...index, s4)
1357
- r4.extend(ObsDomainList0)
1358
- else
1359
- @index = i4
1360
- r4 = nil
1361
- end
1362
- if r4
1363
- s3 << r4
1364
- else
1365
- break
1366
- end
1367
- end
1368
- r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
1369
- s0 << r3
1370
- end
1371
- end
1372
- if s0.last
1373
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
1374
- r0.extend(ObsDomainList1)
1375
- else
1376
- @index = i0
1377
- r0 = nil
1378
- end
1379
-
1380
- node_cache[:obs_domain_list][start_index] = r0
1381
-
1382
- r0
1383
- end
1384
-
1385
- module ObsLocalPart0
1386
- def word
1387
- elements[1]
1388
- end
1389
- end
1390
-
1391
- module ObsLocalPart1
1392
- def word
1393
- elements[0]
1394
- end
1395
-
1396
- end
1397
-
1398
- def _nt_obs_local_part
1399
- start_index = index
1400
- if node_cache[:obs_local_part].has_key?(index)
1401
- cached = node_cache[:obs_local_part][index]
1402
- if cached
1403
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1404
- @index = cached.interval.end
1405
- end
1406
- return cached
1407
- end
1408
-
1409
- i0, s0 = index, []
1410
- r1 = _nt_word
1411
- s0 << r1
1412
- if r1
1413
- s2, i2 = [], index
1414
- loop do
1415
- i3, s3 = index, []
1416
- if has_terminal?(".", false, index)
1417
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
1418
- @index += 1
1419
- else
1420
- terminal_parse_failure(".")
1421
- r4 = nil
1422
- end
1423
- s3 << r4
1424
- if r4
1425
- r5 = _nt_word
1426
- s3 << r5
1427
- end
1428
- if s3.last
1429
- r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
1430
- r3.extend(ObsLocalPart0)
1431
- else
1432
- @index = i3
1433
- r3 = nil
1434
- end
1435
- if r3
1436
- s2 << r3
1437
- else
1438
- break
1439
- end
1440
- end
1441
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
1442
- s0 << r2
1443
- end
1444
- if s0.last
1445
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
1446
- r0.extend(ObsLocalPart1)
1447
- else
1448
- @index = i0
1449
- r0 = nil
1450
- end
1451
-
1452
- node_cache[:obs_local_part][start_index] = r0
1453
-
1454
- r0
1455
- end
1456
-
1457
- module ObsDomain0
1458
- def atom
1459
- elements[1]
1460
- end
1461
- end
1462
-
1463
- module ObsDomain1
1464
- def atom
1465
- elements[0]
1466
- end
1467
-
1468
- end
1469
-
1470
- def _nt_obs_domain
1471
- start_index = index
1472
- if node_cache[:obs_domain].has_key?(index)
1473
- cached = node_cache[:obs_domain][index]
1474
- if cached
1475
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1476
- @index = cached.interval.end
1477
- end
1478
- return cached
1479
- end
1480
-
1481
- i0, s0 = index, []
1482
- r1 = _nt_atom
1483
- s0 << r1
1484
- if r1
1485
- s2, i2 = [], index
1486
- loop do
1487
- i3, s3 = index, []
1488
- if has_terminal?(".", false, index)
1489
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
1490
- @index += 1
1491
- else
1492
- terminal_parse_failure(".")
1493
- r4 = nil
1494
- end
1495
- s3 << r4
1496
- if r4
1497
- r5 = _nt_atom
1498
- s3 << r5
1499
- end
1500
- if s3.last
1501
- r3 = instantiate_node(SyntaxNode,input, i3...index, s3)
1502
- r3.extend(ObsDomain0)
1503
- else
1504
- @index = i3
1505
- r3 = nil
1506
- end
1507
- if r3
1508
- s2 << r3
1509
- else
1510
- break
1511
- end
1512
- end
1513
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
1514
- s0 << r2
1515
- end
1516
- if s0.last
1517
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
1518
- r0.extend(ObsDomain1)
1519
- else
1520
- @index = i0
1521
- r0 = nil
1522
- end
1523
-
1524
- node_cache[:obs_domain][start_index] = r0
1525
-
1526
- r0
1527
- end
1528
-
1529
- module ObsMboxList0
1530
- end
1531
-
1532
- module ObsMboxList1
1533
- end
1534
-
1535
- def _nt_obs_mbox_list
1536
- start_index = index
1537
- if node_cache[:obs_mbox_list].has_key?(index)
1538
- cached = node_cache[:obs_mbox_list][index]
1539
- if cached
1540
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1541
- @index = cached.interval.end
1542
- end
1543
- return cached
1544
- end
1545
-
1546
- i0, s0 = index, []
1547
- s1, i1 = [], index
1548
- loop do
1549
- i2, s2 = index, []
1550
- r4 = _nt_mailbox
1551
- if r4
1552
- r3 = r4
1553
- else
1554
- r3 = instantiate_node(SyntaxNode,input, index...index)
1555
- end
1556
- s2 << r3
1557
- if r3
1558
- r6 = _nt_CFWS
1559
- if r6
1560
- r5 = r6
1561
- else
1562
- r5 = instantiate_node(SyntaxNode,input, index...index)
1563
- end
1564
- s2 << r5
1565
- if r5
1566
- if has_terminal?(",", false, index)
1567
- r7 = instantiate_node(SyntaxNode,input, index...(index + 1))
1568
- @index += 1
1569
- else
1570
- terminal_parse_failure(",")
1571
- r7 = nil
1572
- end
1573
- s2 << r7
1574
- if r7
1575
- r9 = _nt_CFWS
1576
- if r9
1577
- r8 = r9
1578
- else
1579
- r8 = instantiate_node(SyntaxNode,input, index...index)
1580
- end
1581
- s2 << r8
1582
- end
1583
- end
1584
- end
1585
- if s2.last
1586
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
1587
- r2.extend(ObsMboxList0)
1588
- else
1589
- @index = i2
1590
- r2 = nil
1591
- end
1592
- if r2
1593
- s1 << r2
1594
- else
1595
- break
1596
- end
1597
- end
1598
- if s1.empty?
1599
- @index = i1
1600
- r1 = nil
1601
- else
1602
- r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
1603
- end
1604
- s0 << r1
1605
- if r1
1606
- r11 = _nt_mailbox
1607
- if r11
1608
- r10 = r11
1609
- else
1610
- r10 = instantiate_node(SyntaxNode,input, index...index)
1611
- end
1612
- s0 << r10
1613
- end
1614
- if s0.last
1615
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
1616
- r0.extend(ObsMboxList1)
1617
- else
1618
- @index = i0
1619
- r0 = nil
1620
- end
1621
-
1622
- node_cache[:obs_mbox_list][start_index] = r0
1623
-
1624
- r0
1625
- end
1626
-
1627
- module ObsAddrList0
1628
- end
1629
-
1630
- module ObsAddrList1
1631
- end
1632
-
1633
- def _nt_obs_addr_list
1634
- start_index = index
1635
- if node_cache[:obs_addr_list].has_key?(index)
1636
- cached = node_cache[:obs_addr_list][index]
1637
- if cached
1638
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1639
- @index = cached.interval.end
1640
- end
1641
- return cached
1642
- end
1643
-
1644
- i0, s0 = index, []
1645
- s1, i1 = [], index
1646
- loop do
1647
- i2, s2 = index, []
1648
- r4 = _nt_address
1649
- if r4
1650
- r3 = r4
1651
- else
1652
- r3 = instantiate_node(SyntaxNode,input, index...index)
1653
- end
1654
- s2 << r3
1655
- if r3
1656
- r6 = _nt_CFWS
1657
- if r6
1658
- r5 = r6
1659
- else
1660
- r5 = instantiate_node(SyntaxNode,input, index...index)
1661
- end
1662
- s2 << r5
1663
- if r5
1664
- if has_terminal?(",", false, index)
1665
- r7 = instantiate_node(SyntaxNode,input, index...(index + 1))
1666
- @index += 1
1667
- else
1668
- terminal_parse_failure(",")
1669
- r7 = nil
1670
- end
1671
- s2 << r7
1672
- if r7
1673
- r9 = _nt_CFWS
1674
- if r9
1675
- r8 = r9
1676
- else
1677
- r8 = instantiate_node(SyntaxNode,input, index...index)
1678
- end
1679
- s2 << r8
1680
- end
1681
- end
1682
- end
1683
- if s2.last
1684
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
1685
- r2.extend(ObsAddrList0)
1686
- else
1687
- @index = i2
1688
- r2 = nil
1689
- end
1690
- if r2
1691
- s1 << r2
1692
- else
1693
- break
1694
- end
1695
- end
1696
- if s1.empty?
1697
- @index = i1
1698
- r1 = nil
1699
- else
1700
- r1 = instantiate_node(SyntaxNode,input, i1...index, s1)
1701
- end
1702
- s0 << r1
1703
- if r1
1704
- r11 = _nt_address
1705
- if r11
1706
- r10 = r11
1707
- else
1708
- r10 = instantiate_node(SyntaxNode,input, index...index)
1709
- end
1710
- s0 << r10
1711
- end
1712
- if s0.last
1713
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
1714
- r0.extend(ObsAddrList1)
1715
- else
1716
- @index = i0
1717
- r0 = nil
1718
- end
1719
-
1720
- node_cache[:obs_addr_list][start_index] = r0
1721
-
1722
- r0
1723
- end
1724
-
1725
- def _nt_obs_fields
1726
- start_index = index
1727
- if node_cache[:obs_fields].has_key?(index)
1728
- cached = node_cache[:obs_fields][index]
1729
- if cached
1730
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1731
- @index = cached.interval.end
1732
- end
1733
- return cached
1734
- end
1735
-
1736
- s0, i0 = [], index
1737
- loop do
1738
- i1 = index
1739
- r2 = _nt_obs_return
1740
- if r2
1741
- r1 = r2
1742
- else
1743
- r3 = _nt_obs_received
1744
- if r3
1745
- r1 = r3
1746
- else
1747
- r4 = _nt_obs_orig_date
1748
- if r4
1749
- r1 = r4
1750
- else
1751
- r5 = _nt_obs_from
1752
- if r5
1753
- r1 = r5
1754
- else
1755
- r6 = _nt_obs_sender
1756
- if r6
1757
- r1 = r6
1758
- else
1759
- r7 = _nt_obs_reply_to
1760
- if r7
1761
- r1 = r7
1762
- else
1763
- r8 = _nt_obs_to
1764
- if r8
1765
- r1 = r8
1766
- else
1767
- r9 = _nt_obs_cc
1768
- if r9
1769
- r1 = r9
1770
- else
1771
- r10 = _nt_obs_bcc
1772
- if r10
1773
- r1 = r10
1774
- else
1775
- r11 = _nt_obs_message_id
1776
- if r11
1777
- r1 = r11
1778
- else
1779
- r12 = _nt_obs_in_reply_to
1780
- if r12
1781
- r1 = r12
1782
- else
1783
- r13 = _nt_obs_references
1784
- if r13
1785
- r1 = r13
1786
- else
1787
- r14 = _nt_obs_subject
1788
- if r14
1789
- r1 = r14
1790
- else
1791
- r15 = _nt_obs_comments
1792
- if r15
1793
- r1 = r15
1794
- else
1795
- r16 = _nt_obs_keywords
1796
- if r16
1797
- r1 = r16
1798
- else
1799
- r17 = _nt_obs_resent_date
1800
- if r17
1801
- r1 = r17
1802
- else
1803
- r18 = _nt_obs_resent_from
1804
- if r18
1805
- r1 = r18
1806
- else
1807
- r19 = _nt_obs_resent_send
1808
- if r19
1809
- r1 = r19
1810
- else
1811
- r20 = _nt_obs_resent_rply
1812
- if r20
1813
- r1 = r20
1814
- else
1815
- r21 = _nt_obs_resent_to
1816
- if r21
1817
- r1 = r21
1818
- else
1819
- r22 = _nt_obs_resent_cc
1820
- if r22
1821
- r1 = r22
1822
- else
1823
- r23 = _nt_obs_resent_bcc
1824
- if r23
1825
- r1 = r23
1826
- else
1827
- r24 = _nt_obs_resent_mid
1828
- if r24
1829
- r1 = r24
1830
- else
1831
- r25 = _nt_obs_optional
1832
- if r25
1833
- r1 = r25
1834
- else
1835
- @index = i1
1836
- r1 = nil
1837
- end
1838
- end
1839
- end
1840
- end
1841
- end
1842
- end
1843
- end
1844
- end
1845
- end
1846
- end
1847
- end
1848
- end
1849
- end
1850
- end
1851
- end
1852
- end
1853
- end
1854
- end
1855
- end
1856
- end
1857
- end
1858
- end
1859
- end
1860
- end
1861
- if r1
1862
- s0 << r1
1863
- else
1864
- break
1865
- end
1866
- end
1867
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
1868
-
1869
- node_cache[:obs_fields][start_index] = r0
1870
-
1871
- r0
1872
- end
1873
-
1874
- module ObsOrigDate0
1875
- def date_time
1876
- elements[3]
1877
- end
1878
-
1879
- def CRLF
1880
- elements[4]
1881
- end
1882
- end
1883
-
1884
- def _nt_obs_orig_date
1885
- start_index = index
1886
- if node_cache[:obs_orig_date].has_key?(index)
1887
- cached = node_cache[:obs_orig_date][index]
1888
- if cached
1889
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1890
- @index = cached.interval.end
1891
- end
1892
- return cached
1893
- end
1894
-
1895
- i0, s0 = index, []
1896
- if has_terminal?("Date", false, index)
1897
- r1 = instantiate_node(SyntaxNode,input, index...(index + 4))
1898
- @index += 4
1899
- else
1900
- terminal_parse_failure("Date")
1901
- r1 = nil
1902
- end
1903
- s0 << r1
1904
- if r1
1905
- s2, i2 = [], index
1906
- loop do
1907
- r3 = _nt_WSP
1908
- if r3
1909
- s2 << r3
1910
- else
1911
- break
1912
- end
1913
- end
1914
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
1915
- s0 << r2
1916
- if r2
1917
- if has_terminal?(":", false, index)
1918
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
1919
- @index += 1
1920
- else
1921
- terminal_parse_failure(":")
1922
- r4 = nil
1923
- end
1924
- s0 << r4
1925
- if r4
1926
- r5 = _nt_date_time
1927
- s0 << r5
1928
- if r5
1929
- r6 = _nt_CRLF
1930
- s0 << r6
1931
- end
1932
- end
1933
- end
1934
- end
1935
- if s0.last
1936
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
1937
- r0.extend(ObsOrigDate0)
1938
- else
1939
- @index = i0
1940
- r0 = nil
1941
- end
1942
-
1943
- node_cache[:obs_orig_date][start_index] = r0
1944
-
1945
- r0
1946
- end
1947
-
1948
- module ObsFrom0
1949
- def mailbox_list
1950
- elements[3]
1951
- end
1952
-
1953
- def CRLF
1954
- elements[4]
1955
- end
1956
- end
1957
-
1958
- def _nt_obs_from
1959
- start_index = index
1960
- if node_cache[:obs_from].has_key?(index)
1961
- cached = node_cache[:obs_from][index]
1962
- if cached
1963
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
1964
- @index = cached.interval.end
1965
- end
1966
- return cached
1967
- end
1968
-
1969
- i0, s0 = index, []
1970
- if has_terminal?("From", false, index)
1971
- r1 = instantiate_node(SyntaxNode,input, index...(index + 4))
1972
- @index += 4
1973
- else
1974
- terminal_parse_failure("From")
1975
- r1 = nil
1976
- end
1977
- s0 << r1
1978
- if r1
1979
- s2, i2 = [], index
1980
- loop do
1981
- r3 = _nt_WSP
1982
- if r3
1983
- s2 << r3
1984
- else
1985
- break
1986
- end
1987
- end
1988
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
1989
- s0 << r2
1990
- if r2
1991
- if has_terminal?(":", false, index)
1992
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
1993
- @index += 1
1994
- else
1995
- terminal_parse_failure(":")
1996
- r4 = nil
1997
- end
1998
- s0 << r4
1999
- if r4
2000
- r5 = _nt_mailbox_list
2001
- s0 << r5
2002
- if r5
2003
- r6 = _nt_CRLF
2004
- s0 << r6
2005
- end
2006
- end
2007
- end
2008
- end
2009
- if s0.last
2010
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
2011
- r0.extend(ObsFrom0)
2012
- else
2013
- @index = i0
2014
- r0 = nil
2015
- end
2016
-
2017
- node_cache[:obs_from][start_index] = r0
2018
-
2019
- r0
2020
- end
2021
-
2022
- module ObsSender0
2023
- def mailbox
2024
- elements[3]
2025
- end
2026
-
2027
- def CRLF
2028
- elements[4]
2029
- end
2030
- end
2031
-
2032
- def _nt_obs_sender
2033
- start_index = index
2034
- if node_cache[:obs_sender].has_key?(index)
2035
- cached = node_cache[:obs_sender][index]
2036
- if cached
2037
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2038
- @index = cached.interval.end
2039
- end
2040
- return cached
2041
- end
2042
-
2043
- i0, s0 = index, []
2044
- if has_terminal?("Sender", false, index)
2045
- r1 = instantiate_node(SyntaxNode,input, index...(index + 6))
2046
- @index += 6
2047
- else
2048
- terminal_parse_failure("Sender")
2049
- r1 = nil
2050
- end
2051
- s0 << r1
2052
- if r1
2053
- s2, i2 = [], index
2054
- loop do
2055
- r3 = _nt_WSP
2056
- if r3
2057
- s2 << r3
2058
- else
2059
- break
2060
- end
2061
- end
2062
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
2063
- s0 << r2
2064
- if r2
2065
- if has_terminal?(":", false, index)
2066
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
2067
- @index += 1
2068
- else
2069
- terminal_parse_failure(":")
2070
- r4 = nil
2071
- end
2072
- s0 << r4
2073
- if r4
2074
- r5 = _nt_mailbox
2075
- s0 << r5
2076
- if r5
2077
- r6 = _nt_CRLF
2078
- s0 << r6
2079
- end
2080
- end
2081
- end
2082
- end
2083
- if s0.last
2084
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
2085
- r0.extend(ObsSender0)
2086
- else
2087
- @index = i0
2088
- r0 = nil
2089
- end
2090
-
2091
- node_cache[:obs_sender][start_index] = r0
2092
-
2093
- r0
2094
- end
2095
-
2096
- module ObsReplyTo0
2097
- def mailbox_list
2098
- elements[3]
2099
- end
2100
-
2101
- def CRLF
2102
- elements[4]
2103
- end
2104
- end
2105
-
2106
- def _nt_obs_reply_to
2107
- start_index = index
2108
- if node_cache[:obs_reply_to].has_key?(index)
2109
- cached = node_cache[:obs_reply_to][index]
2110
- if cached
2111
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2112
- @index = cached.interval.end
2113
- end
2114
- return cached
2115
- end
2116
-
2117
- i0, s0 = index, []
2118
- if has_terminal?("Reply-To", false, index)
2119
- r1 = instantiate_node(SyntaxNode,input, index...(index + 8))
2120
- @index += 8
2121
- else
2122
- terminal_parse_failure("Reply-To")
2123
- r1 = nil
2124
- end
2125
- s0 << r1
2126
- if r1
2127
- s2, i2 = [], index
2128
- loop do
2129
- r3 = _nt_WSP
2130
- if r3
2131
- s2 << r3
2132
- else
2133
- break
2134
- end
2135
- end
2136
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
2137
- s0 << r2
2138
- if r2
2139
- if has_terminal?(":", false, index)
2140
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
2141
- @index += 1
2142
- else
2143
- terminal_parse_failure(":")
2144
- r4 = nil
2145
- end
2146
- s0 << r4
2147
- if r4
2148
- r5 = _nt_mailbox_list
2149
- s0 << r5
2150
- if r5
2151
- r6 = _nt_CRLF
2152
- s0 << r6
2153
- end
2154
- end
2155
- end
2156
- end
2157
- if s0.last
2158
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
2159
- r0.extend(ObsReplyTo0)
2160
- else
2161
- @index = i0
2162
- r0 = nil
2163
- end
2164
-
2165
- node_cache[:obs_reply_to][start_index] = r0
2166
-
2167
- r0
2168
- end
2169
-
2170
- module ObsTo0
2171
- def address_list
2172
- elements[3]
2173
- end
2174
-
2175
- def CRLF
2176
- elements[4]
2177
- end
2178
- end
2179
-
2180
- def _nt_obs_to
2181
- start_index = index
2182
- if node_cache[:obs_to].has_key?(index)
2183
- cached = node_cache[:obs_to][index]
2184
- if cached
2185
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2186
- @index = cached.interval.end
2187
- end
2188
- return cached
2189
- end
2190
-
2191
- i0, s0 = index, []
2192
- if has_terminal?("To", false, index)
2193
- r1 = instantiate_node(SyntaxNode,input, index...(index + 2))
2194
- @index += 2
2195
- else
2196
- terminal_parse_failure("To")
2197
- r1 = nil
2198
- end
2199
- s0 << r1
2200
- if r1
2201
- s2, i2 = [], index
2202
- loop do
2203
- r3 = _nt_WSP
2204
- if r3
2205
- s2 << r3
2206
- else
2207
- break
2208
- end
2209
- end
2210
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
2211
- s0 << r2
2212
- if r2
2213
- if has_terminal?(":", false, index)
2214
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
2215
- @index += 1
2216
- else
2217
- terminal_parse_failure(":")
2218
- r4 = nil
2219
- end
2220
- s0 << r4
2221
- if r4
2222
- r5 = _nt_address_list
2223
- s0 << r5
2224
- if r5
2225
- r6 = _nt_CRLF
2226
- s0 << r6
2227
- end
2228
- end
2229
- end
2230
- end
2231
- if s0.last
2232
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
2233
- r0.extend(ObsTo0)
2234
- else
2235
- @index = i0
2236
- r0 = nil
2237
- end
2238
-
2239
- node_cache[:obs_to][start_index] = r0
2240
-
2241
- r0
2242
- end
2243
-
2244
- module ObsCc0
2245
- def address_list
2246
- elements[3]
2247
- end
2248
-
2249
- def CRLF
2250
- elements[4]
2251
- end
2252
- end
2253
-
2254
- def _nt_obs_cc
2255
- start_index = index
2256
- if node_cache[:obs_cc].has_key?(index)
2257
- cached = node_cache[:obs_cc][index]
2258
- if cached
2259
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2260
- @index = cached.interval.end
2261
- end
2262
- return cached
2263
- end
2264
-
2265
- i0, s0 = index, []
2266
- if has_terminal?("Cc", false, index)
2267
- r1 = instantiate_node(SyntaxNode,input, index...(index + 2))
2268
- @index += 2
2269
- else
2270
- terminal_parse_failure("Cc")
2271
- r1 = nil
2272
- end
2273
- s0 << r1
2274
- if r1
2275
- s2, i2 = [], index
2276
- loop do
2277
- r3 = _nt_WSP
2278
- if r3
2279
- s2 << r3
2280
- else
2281
- break
2282
- end
2283
- end
2284
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
2285
- s0 << r2
2286
- if r2
2287
- if has_terminal?(":", false, index)
2288
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
2289
- @index += 1
2290
- else
2291
- terminal_parse_failure(":")
2292
- r4 = nil
2293
- end
2294
- s0 << r4
2295
- if r4
2296
- r5 = _nt_address_list
2297
- s0 << r5
2298
- if r5
2299
- r6 = _nt_CRLF
2300
- s0 << r6
2301
- end
2302
- end
2303
- end
2304
- end
2305
- if s0.last
2306
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
2307
- r0.extend(ObsCc0)
2308
- else
2309
- @index = i0
2310
- r0 = nil
2311
- end
2312
-
2313
- node_cache[:obs_cc][start_index] = r0
2314
-
2315
- r0
2316
- end
2317
-
2318
- module ObsBcc0
2319
- def CRLF
2320
- elements[4]
2321
- end
2322
- end
2323
-
2324
- def _nt_obs_bcc
2325
- start_index = index
2326
- if node_cache[:obs_bcc].has_key?(index)
2327
- cached = node_cache[:obs_bcc][index]
2328
- if cached
2329
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2330
- @index = cached.interval.end
2331
- end
2332
- return cached
2333
- end
2334
-
2335
- i0, s0 = index, []
2336
- if has_terminal?("Bcc", false, index)
2337
- r1 = instantiate_node(SyntaxNode,input, index...(index + 3))
2338
- @index += 3
2339
- else
2340
- terminal_parse_failure("Bcc")
2341
- r1 = nil
2342
- end
2343
- s0 << r1
2344
- if r1
2345
- s2, i2 = [], index
2346
- loop do
2347
- r3 = _nt_WSP
2348
- if r3
2349
- s2 << r3
2350
- else
2351
- break
2352
- end
2353
- end
2354
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
2355
- s0 << r2
2356
- if r2
2357
- if has_terminal?(":", false, index)
2358
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
2359
- @index += 1
2360
- else
2361
- terminal_parse_failure(":")
2362
- r4 = nil
2363
- end
2364
- s0 << r4
2365
- if r4
2366
- i5 = index
2367
- r6 = _nt_address_list
2368
- if r6
2369
- r5 = r6
2370
- else
2371
- r8 = _nt_CFWS
2372
- if r8
2373
- r7 = r8
2374
- else
2375
- r7 = instantiate_node(SyntaxNode,input, index...index)
2376
- end
2377
- if r7
2378
- r5 = r7
2379
- else
2380
- @index = i5
2381
- r5 = nil
2382
- end
2383
- end
2384
- s0 << r5
2385
- if r5
2386
- r9 = _nt_CRLF
2387
- s0 << r9
2388
- end
2389
- end
2390
- end
2391
- end
2392
- if s0.last
2393
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
2394
- r0.extend(ObsBcc0)
2395
- else
2396
- @index = i0
2397
- r0 = nil
2398
- end
2399
-
2400
- node_cache[:obs_bcc][start_index] = r0
2401
-
2402
- r0
2403
- end
2404
-
2405
- module ObsMessageId0
2406
- def msg_id
2407
- elements[3]
2408
- end
2409
-
2410
- def CRLF
2411
- elements[4]
2412
- end
2413
- end
2414
-
2415
- def _nt_obs_message_id
2416
- start_index = index
2417
- if node_cache[:obs_message_id].has_key?(index)
2418
- cached = node_cache[:obs_message_id][index]
2419
- if cached
2420
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2421
- @index = cached.interval.end
2422
- end
2423
- return cached
2424
- end
2425
-
2426
- i0, s0 = index, []
2427
- if has_terminal?("Message-ID", false, index)
2428
- r1 = instantiate_node(SyntaxNode,input, index...(index + 10))
2429
- @index += 10
2430
- else
2431
- terminal_parse_failure("Message-ID")
2432
- r1 = nil
2433
- end
2434
- s0 << r1
2435
- if r1
2436
- s2, i2 = [], index
2437
- loop do
2438
- r3 = _nt_WSP
2439
- if r3
2440
- s2 << r3
2441
- else
2442
- break
2443
- end
2444
- end
2445
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
2446
- s0 << r2
2447
- if r2
2448
- if has_terminal?(":", false, index)
2449
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
2450
- @index += 1
2451
- else
2452
- terminal_parse_failure(":")
2453
- r4 = nil
2454
- end
2455
- s0 << r4
2456
- if r4
2457
- r5 = _nt_msg_id
2458
- s0 << r5
2459
- if r5
2460
- r6 = _nt_CRLF
2461
- s0 << r6
2462
- end
2463
- end
2464
- end
2465
- end
2466
- if s0.last
2467
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
2468
- r0.extend(ObsMessageId0)
2469
- else
2470
- @index = i0
2471
- r0 = nil
2472
- end
2473
-
2474
- node_cache[:obs_message_id][start_index] = r0
2475
-
2476
- r0
2477
- end
2478
-
2479
- module ObsInReplyTo0
2480
- def CRLF
2481
- elements[4]
2482
- end
2483
- end
2484
-
2485
- def _nt_obs_in_reply_to
2486
- start_index = index
2487
- if node_cache[:obs_in_reply_to].has_key?(index)
2488
- cached = node_cache[:obs_in_reply_to][index]
2489
- if cached
2490
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2491
- @index = cached.interval.end
2492
- end
2493
- return cached
2494
- end
2495
-
2496
- i0, s0 = index, []
2497
- if has_terminal?("In-Reply-To", false, index)
2498
- r1 = instantiate_node(SyntaxNode,input, index...(index + 11))
2499
- @index += 11
2500
- else
2501
- terminal_parse_failure("In-Reply-To")
2502
- r1 = nil
2503
- end
2504
- s0 << r1
2505
- if r1
2506
- s2, i2 = [], index
2507
- loop do
2508
- r3 = _nt_WSP
2509
- if r3
2510
- s2 << r3
2511
- else
2512
- break
2513
- end
2514
- end
2515
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
2516
- s0 << r2
2517
- if r2
2518
- if has_terminal?(":", false, index)
2519
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
2520
- @index += 1
2521
- else
2522
- terminal_parse_failure(":")
2523
- r4 = nil
2524
- end
2525
- s0 << r4
2526
- if r4
2527
- s5, i5 = [], index
2528
- loop do
2529
- i6 = index
2530
- r7 = _nt_phrase
2531
- if r7
2532
- r6 = r7
2533
- else
2534
- r8 = _nt_msg_id
2535
- if r8
2536
- r6 = r8
2537
- else
2538
- @index = i6
2539
- r6 = nil
2540
- end
2541
- end
2542
- if r6
2543
- s5 << r6
2544
- else
2545
- break
2546
- end
2547
- end
2548
- r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
2549
- s0 << r5
2550
- if r5
2551
- r9 = _nt_CRLF
2552
- s0 << r9
2553
- end
2554
- end
2555
- end
2556
- end
2557
- if s0.last
2558
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
2559
- r0.extend(ObsInReplyTo0)
2560
- else
2561
- @index = i0
2562
- r0 = nil
2563
- end
2564
-
2565
- node_cache[:obs_in_reply_to][start_index] = r0
2566
-
2567
- r0
2568
- end
2569
-
2570
- module ObsReferences0
2571
- def CRLF
2572
- elements[4]
2573
- end
2574
- end
2575
-
2576
- def _nt_obs_references
2577
- start_index = index
2578
- if node_cache[:obs_references].has_key?(index)
2579
- cached = node_cache[:obs_references][index]
2580
- if cached
2581
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2582
- @index = cached.interval.end
2583
- end
2584
- return cached
2585
- end
2586
-
2587
- i0, s0 = index, []
2588
- if has_terminal?("References", false, index)
2589
- r1 = instantiate_node(SyntaxNode,input, index...(index + 10))
2590
- @index += 10
2591
- else
2592
- terminal_parse_failure("References")
2593
- r1 = nil
2594
- end
2595
- s0 << r1
2596
- if r1
2597
- s2, i2 = [], index
2598
- loop do
2599
- r3 = _nt_WSP
2600
- if r3
2601
- s2 << r3
2602
- else
2603
- break
2604
- end
2605
- end
2606
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
2607
- s0 << r2
2608
- if r2
2609
- if has_terminal?(":", false, index)
2610
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
2611
- @index += 1
2612
- else
2613
- terminal_parse_failure(":")
2614
- r4 = nil
2615
- end
2616
- s0 << r4
2617
- if r4
2618
- s5, i5 = [], index
2619
- loop do
2620
- i6 = index
2621
- r7 = _nt_phrase
2622
- if r7
2623
- r6 = r7
2624
- else
2625
- r8 = _nt_msg_id
2626
- if r8
2627
- r6 = r8
2628
- else
2629
- @index = i6
2630
- r6 = nil
2631
- end
2632
- end
2633
- if r6
2634
- s5 << r6
2635
- else
2636
- break
2637
- end
2638
- end
2639
- r5 = instantiate_node(SyntaxNode,input, i5...index, s5)
2640
- s0 << r5
2641
- if r5
2642
- r9 = _nt_CRLF
2643
- s0 << r9
2644
- end
2645
- end
2646
- end
2647
- end
2648
- if s0.last
2649
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
2650
- r0.extend(ObsReferences0)
2651
- else
2652
- @index = i0
2653
- r0 = nil
2654
- end
2655
-
2656
- node_cache[:obs_references][start_index] = r0
2657
-
2658
- r0
2659
- end
2660
-
2661
- def _nt_obs_id_left
2662
- start_index = index
2663
- if node_cache[:obs_id_left].has_key?(index)
2664
- cached = node_cache[:obs_id_left][index]
2665
- if cached
2666
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2667
- @index = cached.interval.end
2668
- end
2669
- return cached
2670
- end
2671
-
2672
- r0 = _nt_local_part
2673
-
2674
- node_cache[:obs_id_left][start_index] = r0
2675
-
2676
- r0
2677
- end
2678
-
2679
- def _nt_obs_id_right
2680
- start_index = index
2681
- if node_cache[:obs_id_right].has_key?(index)
2682
- cached = node_cache[:obs_id_right][index]
2683
- if cached
2684
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2685
- @index = cached.interval.end
2686
- end
2687
- return cached
2688
- end
2689
-
2690
- r0 = _nt_domain
2691
-
2692
- node_cache[:obs_id_right][start_index] = r0
2693
-
2694
- r0
2695
- end
2696
-
2697
- module ObsSubject0
2698
- def unstructured
2699
- elements[3]
2700
- end
2701
-
2702
- def CRLF
2703
- elements[4]
2704
- end
2705
- end
2706
-
2707
- def _nt_obs_subject
2708
- start_index = index
2709
- if node_cache[:obs_subject].has_key?(index)
2710
- cached = node_cache[:obs_subject][index]
2711
- if cached
2712
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2713
- @index = cached.interval.end
2714
- end
2715
- return cached
2716
- end
2717
-
2718
- i0, s0 = index, []
2719
- if has_terminal?("Subject", false, index)
2720
- r1 = instantiate_node(SyntaxNode,input, index...(index + 7))
2721
- @index += 7
2722
- else
2723
- terminal_parse_failure("Subject")
2724
- r1 = nil
2725
- end
2726
- s0 << r1
2727
- if r1
2728
- s2, i2 = [], index
2729
- loop do
2730
- r3 = _nt_WSP
2731
- if r3
2732
- s2 << r3
2733
- else
2734
- break
2735
- end
2736
- end
2737
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
2738
- s0 << r2
2739
- if r2
2740
- if has_terminal?(":", false, index)
2741
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
2742
- @index += 1
2743
- else
2744
- terminal_parse_failure(":")
2745
- r4 = nil
2746
- end
2747
- s0 << r4
2748
- if r4
2749
- r5 = _nt_unstructured
2750
- s0 << r5
2751
- if r5
2752
- r6 = _nt_CRLF
2753
- s0 << r6
2754
- end
2755
- end
2756
- end
2757
- end
2758
- if s0.last
2759
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
2760
- r0.extend(ObsSubject0)
2761
- else
2762
- @index = i0
2763
- r0 = nil
2764
- end
2765
-
2766
- node_cache[:obs_subject][start_index] = r0
2767
-
2768
- r0
2769
- end
2770
-
2771
- module ObsComments0
2772
- def unstructured
2773
- elements[3]
2774
- end
2775
-
2776
- def CRLF
2777
- elements[4]
2778
- end
2779
- end
2780
-
2781
- def _nt_obs_comments
2782
- start_index = index
2783
- if node_cache[:obs_comments].has_key?(index)
2784
- cached = node_cache[:obs_comments][index]
2785
- if cached
2786
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2787
- @index = cached.interval.end
2788
- end
2789
- return cached
2790
- end
2791
-
2792
- i0, s0 = index, []
2793
- if has_terminal?("Comments", false, index)
2794
- r1 = instantiate_node(SyntaxNode,input, index...(index + 8))
2795
- @index += 8
2796
- else
2797
- terminal_parse_failure("Comments")
2798
- r1 = nil
2799
- end
2800
- s0 << r1
2801
- if r1
2802
- s2, i2 = [], index
2803
- loop do
2804
- r3 = _nt_WSP
2805
- if r3
2806
- s2 << r3
2807
- else
2808
- break
2809
- end
2810
- end
2811
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
2812
- s0 << r2
2813
- if r2
2814
- if has_terminal?(":", false, index)
2815
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
2816
- @index += 1
2817
- else
2818
- terminal_parse_failure(":")
2819
- r4 = nil
2820
- end
2821
- s0 << r4
2822
- if r4
2823
- r5 = _nt_unstructured
2824
- s0 << r5
2825
- if r5
2826
- r6 = _nt_CRLF
2827
- s0 << r6
2828
- end
2829
- end
2830
- end
2831
- end
2832
- if s0.last
2833
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
2834
- r0.extend(ObsComments0)
2835
- else
2836
- @index = i0
2837
- r0 = nil
2838
- end
2839
-
2840
- node_cache[:obs_comments][start_index] = r0
2841
-
2842
- r0
2843
- end
2844
-
2845
- module ObsKeywords0
2846
- def obs_phrase_list
2847
- elements[3]
2848
- end
2849
-
2850
- def CRLF
2851
- elements[4]
2852
- end
2853
- end
2854
-
2855
- def _nt_obs_keywords
2856
- start_index = index
2857
- if node_cache[:obs_keywords].has_key?(index)
2858
- cached = node_cache[:obs_keywords][index]
2859
- if cached
2860
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2861
- @index = cached.interval.end
2862
- end
2863
- return cached
2864
- end
2865
-
2866
- i0, s0 = index, []
2867
- if has_terminal?("Keywords", false, index)
2868
- r1 = instantiate_node(SyntaxNode,input, index...(index + 8))
2869
- @index += 8
2870
- else
2871
- terminal_parse_failure("Keywords")
2872
- r1 = nil
2873
- end
2874
- s0 << r1
2875
- if r1
2876
- s2, i2 = [], index
2877
- loop do
2878
- r3 = _nt_WSP
2879
- if r3
2880
- s2 << r3
2881
- else
2882
- break
2883
- end
2884
- end
2885
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
2886
- s0 << r2
2887
- if r2
2888
- if has_terminal?(":", false, index)
2889
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
2890
- @index += 1
2891
- else
2892
- terminal_parse_failure(":")
2893
- r4 = nil
2894
- end
2895
- s0 << r4
2896
- if r4
2897
- r5 = _nt_obs_phrase_list
2898
- s0 << r5
2899
- if r5
2900
- r6 = _nt_CRLF
2901
- s0 << r6
2902
- end
2903
- end
2904
- end
2905
- end
2906
- if s0.last
2907
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
2908
- r0.extend(ObsKeywords0)
2909
- else
2910
- @index = i0
2911
- r0 = nil
2912
- end
2913
-
2914
- node_cache[:obs_keywords][start_index] = r0
2915
-
2916
- r0
2917
- end
2918
-
2919
- module ObsResentFrom0
2920
- def mailbox_list
2921
- elements[3]
2922
- end
2923
-
2924
- def CRLF
2925
- elements[4]
2926
- end
2927
- end
2928
-
2929
- def _nt_obs_resent_from
2930
- start_index = index
2931
- if node_cache[:obs_resent_from].has_key?(index)
2932
- cached = node_cache[:obs_resent_from][index]
2933
- if cached
2934
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
2935
- @index = cached.interval.end
2936
- end
2937
- return cached
2938
- end
2939
-
2940
- i0, s0 = index, []
2941
- if has_terminal?("Resent-From", false, index)
2942
- r1 = instantiate_node(SyntaxNode,input, index...(index + 11))
2943
- @index += 11
2944
- else
2945
- terminal_parse_failure("Resent-From")
2946
- r1 = nil
2947
- end
2948
- s0 << r1
2949
- if r1
2950
- s2, i2 = [], index
2951
- loop do
2952
- r3 = _nt_WSP
2953
- if r3
2954
- s2 << r3
2955
- else
2956
- break
2957
- end
2958
- end
2959
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
2960
- s0 << r2
2961
- if r2
2962
- if has_terminal?(":", false, index)
2963
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
2964
- @index += 1
2965
- else
2966
- terminal_parse_failure(":")
2967
- r4 = nil
2968
- end
2969
- s0 << r4
2970
- if r4
2971
- r5 = _nt_mailbox_list
2972
- s0 << r5
2973
- if r5
2974
- r6 = _nt_CRLF
2975
- s0 << r6
2976
- end
2977
- end
2978
- end
2979
- end
2980
- if s0.last
2981
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
2982
- r0.extend(ObsResentFrom0)
2983
- else
2984
- @index = i0
2985
- r0 = nil
2986
- end
2987
-
2988
- node_cache[:obs_resent_from][start_index] = r0
2989
-
2990
- r0
2991
- end
2992
-
2993
- module ObsResentSend0
2994
- def mailbox
2995
- elements[3]
2996
- end
2997
-
2998
- def CRLF
2999
- elements[4]
3000
- end
3001
- end
3002
-
3003
- def _nt_obs_resent_send
3004
- start_index = index
3005
- if node_cache[:obs_resent_send].has_key?(index)
3006
- cached = node_cache[:obs_resent_send][index]
3007
- if cached
3008
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3009
- @index = cached.interval.end
3010
- end
3011
- return cached
3012
- end
3013
-
3014
- i0, s0 = index, []
3015
- if has_terminal?("Resent-Sender", false, index)
3016
- r1 = instantiate_node(SyntaxNode,input, index...(index + 13))
3017
- @index += 13
3018
- else
3019
- terminal_parse_failure("Resent-Sender")
3020
- r1 = nil
3021
- end
3022
- s0 << r1
3023
- if r1
3024
- s2, i2 = [], index
3025
- loop do
3026
- r3 = _nt_WSP
3027
- if r3
3028
- s2 << r3
3029
- else
3030
- break
3031
- end
3032
- end
3033
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
3034
- s0 << r2
3035
- if r2
3036
- if has_terminal?(":", false, index)
3037
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
3038
- @index += 1
3039
- else
3040
- terminal_parse_failure(":")
3041
- r4 = nil
3042
- end
3043
- s0 << r4
3044
- if r4
3045
- r5 = _nt_mailbox
3046
- s0 << r5
3047
- if r5
3048
- r6 = _nt_CRLF
3049
- s0 << r6
3050
- end
3051
- end
3052
- end
3053
- end
3054
- if s0.last
3055
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
3056
- r0.extend(ObsResentSend0)
3057
- else
3058
- @index = i0
3059
- r0 = nil
3060
- end
3061
-
3062
- node_cache[:obs_resent_send][start_index] = r0
3063
-
3064
- r0
3065
- end
3066
-
3067
- module ObsResentDate0
3068
- def date_time
3069
- elements[3]
3070
- end
3071
-
3072
- def CRLF
3073
- elements[4]
3074
- end
3075
- end
3076
-
3077
- def _nt_obs_resent_date
3078
- start_index = index
3079
- if node_cache[:obs_resent_date].has_key?(index)
3080
- cached = node_cache[:obs_resent_date][index]
3081
- if cached
3082
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3083
- @index = cached.interval.end
3084
- end
3085
- return cached
3086
- end
3087
-
3088
- i0, s0 = index, []
3089
- if has_terminal?("Resent-Date", false, index)
3090
- r1 = instantiate_node(SyntaxNode,input, index...(index + 11))
3091
- @index += 11
3092
- else
3093
- terminal_parse_failure("Resent-Date")
3094
- r1 = nil
3095
- end
3096
- s0 << r1
3097
- if r1
3098
- s2, i2 = [], index
3099
- loop do
3100
- r3 = _nt_WSP
3101
- if r3
3102
- s2 << r3
3103
- else
3104
- break
3105
- end
3106
- end
3107
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
3108
- s0 << r2
3109
- if r2
3110
- if has_terminal?(":", false, index)
3111
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
3112
- @index += 1
3113
- else
3114
- terminal_parse_failure(":")
3115
- r4 = nil
3116
- end
3117
- s0 << r4
3118
- if r4
3119
- r5 = _nt_date_time
3120
- s0 << r5
3121
- if r5
3122
- r6 = _nt_CRLF
3123
- s0 << r6
3124
- end
3125
- end
3126
- end
3127
- end
3128
- if s0.last
3129
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
3130
- r0.extend(ObsResentDate0)
3131
- else
3132
- @index = i0
3133
- r0 = nil
3134
- end
3135
-
3136
- node_cache[:obs_resent_date][start_index] = r0
3137
-
3138
- r0
3139
- end
3140
-
3141
- module ObsResentTo0
3142
- def address_list
3143
- elements[3]
3144
- end
3145
-
3146
- def CRLF
3147
- elements[4]
3148
- end
3149
- end
3150
-
3151
- def _nt_obs_resent_to
3152
- start_index = index
3153
- if node_cache[:obs_resent_to].has_key?(index)
3154
- cached = node_cache[:obs_resent_to][index]
3155
- if cached
3156
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3157
- @index = cached.interval.end
3158
- end
3159
- return cached
3160
- end
3161
-
3162
- i0, s0 = index, []
3163
- if has_terminal?("Resent-To", false, index)
3164
- r1 = instantiate_node(SyntaxNode,input, index...(index + 9))
3165
- @index += 9
3166
- else
3167
- terminal_parse_failure("Resent-To")
3168
- r1 = nil
3169
- end
3170
- s0 << r1
3171
- if r1
3172
- s2, i2 = [], index
3173
- loop do
3174
- r3 = _nt_WSP
3175
- if r3
3176
- s2 << r3
3177
- else
3178
- break
3179
- end
3180
- end
3181
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
3182
- s0 << r2
3183
- if r2
3184
- if has_terminal?(":", false, index)
3185
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
3186
- @index += 1
3187
- else
3188
- terminal_parse_failure(":")
3189
- r4 = nil
3190
- end
3191
- s0 << r4
3192
- if r4
3193
- r5 = _nt_address_list
3194
- s0 << r5
3195
- if r5
3196
- r6 = _nt_CRLF
3197
- s0 << r6
3198
- end
3199
- end
3200
- end
3201
- end
3202
- if s0.last
3203
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
3204
- r0.extend(ObsResentTo0)
3205
- else
3206
- @index = i0
3207
- r0 = nil
3208
- end
3209
-
3210
- node_cache[:obs_resent_to][start_index] = r0
3211
-
3212
- r0
3213
- end
3214
-
3215
- module ObsResentCc0
3216
- def address_list
3217
- elements[3]
3218
- end
3219
-
3220
- def CRLF
3221
- elements[4]
3222
- end
3223
- end
3224
-
3225
- def _nt_obs_resent_cc
3226
- start_index = index
3227
- if node_cache[:obs_resent_cc].has_key?(index)
3228
- cached = node_cache[:obs_resent_cc][index]
3229
- if cached
3230
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3231
- @index = cached.interval.end
3232
- end
3233
- return cached
3234
- end
3235
-
3236
- i0, s0 = index, []
3237
- if has_terminal?("Resent-Cc", false, index)
3238
- r1 = instantiate_node(SyntaxNode,input, index...(index + 9))
3239
- @index += 9
3240
- else
3241
- terminal_parse_failure("Resent-Cc")
3242
- r1 = nil
3243
- end
3244
- s0 << r1
3245
- if r1
3246
- s2, i2 = [], index
3247
- loop do
3248
- r3 = _nt_WSP
3249
- if r3
3250
- s2 << r3
3251
- else
3252
- break
3253
- end
3254
- end
3255
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
3256
- s0 << r2
3257
- if r2
3258
- if has_terminal?(":", false, index)
3259
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
3260
- @index += 1
3261
- else
3262
- terminal_parse_failure(":")
3263
- r4 = nil
3264
- end
3265
- s0 << r4
3266
- if r4
3267
- r5 = _nt_address_list
3268
- s0 << r5
3269
- if r5
3270
- r6 = _nt_CRLF
3271
- s0 << r6
3272
- end
3273
- end
3274
- end
3275
- end
3276
- if s0.last
3277
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
3278
- r0.extend(ObsResentCc0)
3279
- else
3280
- @index = i0
3281
- r0 = nil
3282
- end
3283
-
3284
- node_cache[:obs_resent_cc][start_index] = r0
3285
-
3286
- r0
3287
- end
3288
-
3289
- module ObsResentBcc0
3290
- def CRLF
3291
- elements[4]
3292
- end
3293
- end
3294
-
3295
- def _nt_obs_resent_bcc
3296
- start_index = index
3297
- if node_cache[:obs_resent_bcc].has_key?(index)
3298
- cached = node_cache[:obs_resent_bcc][index]
3299
- if cached
3300
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3301
- @index = cached.interval.end
3302
- end
3303
- return cached
3304
- end
3305
-
3306
- i0, s0 = index, []
3307
- if has_terminal?("Resent-Bcc", false, index)
3308
- r1 = instantiate_node(SyntaxNode,input, index...(index + 10))
3309
- @index += 10
3310
- else
3311
- terminal_parse_failure("Resent-Bcc")
3312
- r1 = nil
3313
- end
3314
- s0 << r1
3315
- if r1
3316
- s2, i2 = [], index
3317
- loop do
3318
- r3 = _nt_WSP
3319
- if r3
3320
- s2 << r3
3321
- else
3322
- break
3323
- end
3324
- end
3325
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
3326
- s0 << r2
3327
- if r2
3328
- if has_terminal?(":", false, index)
3329
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
3330
- @index += 1
3331
- else
3332
- terminal_parse_failure(":")
3333
- r4 = nil
3334
- end
3335
- s0 << r4
3336
- if r4
3337
- i5 = index
3338
- r6 = _nt_address_list
3339
- if r6
3340
- r5 = r6
3341
- else
3342
- r8 = _nt_CFWS
3343
- if r8
3344
- r7 = r8
3345
- else
3346
- r7 = instantiate_node(SyntaxNode,input, index...index)
3347
- end
3348
- if r7
3349
- r5 = r7
3350
- else
3351
- @index = i5
3352
- r5 = nil
3353
- end
3354
- end
3355
- s0 << r5
3356
- if r5
3357
- r9 = _nt_CRLF
3358
- s0 << r9
3359
- end
3360
- end
3361
- end
3362
- end
3363
- if s0.last
3364
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
3365
- r0.extend(ObsResentBcc0)
3366
- else
3367
- @index = i0
3368
- r0 = nil
3369
- end
3370
-
3371
- node_cache[:obs_resent_bcc][start_index] = r0
3372
-
3373
- r0
3374
- end
3375
-
3376
- module ObsResentMid0
3377
- def msg_id
3378
- elements[3]
3379
- end
3380
-
3381
- def CRLF
3382
- elements[4]
3383
- end
3384
- end
3385
-
3386
- def _nt_obs_resent_mid
3387
- start_index = index
3388
- if node_cache[:obs_resent_mid].has_key?(index)
3389
- cached = node_cache[:obs_resent_mid][index]
3390
- if cached
3391
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3392
- @index = cached.interval.end
3393
- end
3394
- return cached
3395
- end
3396
-
3397
- i0, s0 = index, []
3398
- if has_terminal?("Resent-Message-ID", false, index)
3399
- r1 = instantiate_node(SyntaxNode,input, index...(index + 17))
3400
- @index += 17
3401
- else
3402
- terminal_parse_failure("Resent-Message-ID")
3403
- r1 = nil
3404
- end
3405
- s0 << r1
3406
- if r1
3407
- s2, i2 = [], index
3408
- loop do
3409
- r3 = _nt_WSP
3410
- if r3
3411
- s2 << r3
3412
- else
3413
- break
3414
- end
3415
- end
3416
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
3417
- s0 << r2
3418
- if r2
3419
- if has_terminal?(":", false, index)
3420
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
3421
- @index += 1
3422
- else
3423
- terminal_parse_failure(":")
3424
- r4 = nil
3425
- end
3426
- s0 << r4
3427
- if r4
3428
- r5 = _nt_msg_id
3429
- s0 << r5
3430
- if r5
3431
- r6 = _nt_CRLF
3432
- s0 << r6
3433
- end
3434
- end
3435
- end
3436
- end
3437
- if s0.last
3438
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
3439
- r0.extend(ObsResentMid0)
3440
- else
3441
- @index = i0
3442
- r0 = nil
3443
- end
3444
-
3445
- node_cache[:obs_resent_mid][start_index] = r0
3446
-
3447
- r0
3448
- end
3449
-
3450
- module ObsResentRply0
3451
- def address_list
3452
- elements[3]
3453
- end
3454
-
3455
- def CRLF
3456
- elements[4]
3457
- end
3458
- end
3459
-
3460
- def _nt_obs_resent_rply
3461
- start_index = index
3462
- if node_cache[:obs_resent_rply].has_key?(index)
3463
- cached = node_cache[:obs_resent_rply][index]
3464
- if cached
3465
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3466
- @index = cached.interval.end
3467
- end
3468
- return cached
3469
- end
3470
-
3471
- i0, s0 = index, []
3472
- if has_terminal?("Resent-Reply-To", false, index)
3473
- r1 = instantiate_node(SyntaxNode,input, index...(index + 15))
3474
- @index += 15
3475
- else
3476
- terminal_parse_failure("Resent-Reply-To")
3477
- r1 = nil
3478
- end
3479
- s0 << r1
3480
- if r1
3481
- s2, i2 = [], index
3482
- loop do
3483
- r3 = _nt_WSP
3484
- if r3
3485
- s2 << r3
3486
- else
3487
- break
3488
- end
3489
- end
3490
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
3491
- s0 << r2
3492
- if r2
3493
- if has_terminal?(":", false, index)
3494
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
3495
- @index += 1
3496
- else
3497
- terminal_parse_failure(":")
3498
- r4 = nil
3499
- end
3500
- s0 << r4
3501
- if r4
3502
- r5 = _nt_address_list
3503
- s0 << r5
3504
- if r5
3505
- r6 = _nt_CRLF
3506
- s0 << r6
3507
- end
3508
- end
3509
- end
3510
- end
3511
- if s0.last
3512
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
3513
- r0.extend(ObsResentRply0)
3514
- else
3515
- @index = i0
3516
- r0 = nil
3517
- end
3518
-
3519
- node_cache[:obs_resent_rply][start_index] = r0
3520
-
3521
- r0
3522
- end
3523
-
3524
- module ObsReturn0
3525
- def path
3526
- elements[3]
3527
- end
3528
-
3529
- def CRLF
3530
- elements[4]
3531
- end
3532
- end
3533
-
3534
- def _nt_obs_return
3535
- start_index = index
3536
- if node_cache[:obs_return].has_key?(index)
3537
- cached = node_cache[:obs_return][index]
3538
- if cached
3539
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3540
- @index = cached.interval.end
3541
- end
3542
- return cached
3543
- end
3544
-
3545
- i0, s0 = index, []
3546
- if has_terminal?("Return-Path", false, index)
3547
- r1 = instantiate_node(SyntaxNode,input, index...(index + 11))
3548
- @index += 11
3549
- else
3550
- terminal_parse_failure("Return-Path")
3551
- r1 = nil
3552
- end
3553
- s0 << r1
3554
- if r1
3555
- s2, i2 = [], index
3556
- loop do
3557
- r3 = _nt_WSP
3558
- if r3
3559
- s2 << r3
3560
- else
3561
- break
3562
- end
3563
- end
3564
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
3565
- s0 << r2
3566
- if r2
3567
- if has_terminal?(":", false, index)
3568
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
3569
- @index += 1
3570
- else
3571
- terminal_parse_failure(":")
3572
- r4 = nil
3573
- end
3574
- s0 << r4
3575
- if r4
3576
- r5 = _nt_path
3577
- s0 << r5
3578
- if r5
3579
- r6 = _nt_CRLF
3580
- s0 << r6
3581
- end
3582
- end
3583
- end
3584
- end
3585
- if s0.last
3586
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
3587
- r0.extend(ObsReturn0)
3588
- else
3589
- @index = i0
3590
- r0 = nil
3591
- end
3592
-
3593
- node_cache[:obs_return][start_index] = r0
3594
-
3595
- r0
3596
- end
3597
-
3598
- module ObsReceived0
3599
- def name_val_list
3600
- elements[3]
3601
- end
3602
-
3603
- def CRLF
3604
- elements[4]
3605
- end
3606
- end
3607
-
3608
- def _nt_obs_received
3609
- start_index = index
3610
- if node_cache[:obs_received].has_key?(index)
3611
- cached = node_cache[:obs_received][index]
3612
- if cached
3613
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3614
- @index = cached.interval.end
3615
- end
3616
- return cached
3617
- end
3618
-
3619
- i0, s0 = index, []
3620
- if has_terminal?("Received", false, index)
3621
- r1 = instantiate_node(SyntaxNode,input, index...(index + 8))
3622
- @index += 8
3623
- else
3624
- terminal_parse_failure("Received")
3625
- r1 = nil
3626
- end
3627
- s0 << r1
3628
- if r1
3629
- s2, i2 = [], index
3630
- loop do
3631
- r3 = _nt_WSP
3632
- if r3
3633
- s2 << r3
3634
- else
3635
- break
3636
- end
3637
- end
3638
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
3639
- s0 << r2
3640
- if r2
3641
- if has_terminal?(":", false, index)
3642
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
3643
- @index += 1
3644
- else
3645
- terminal_parse_failure(":")
3646
- r4 = nil
3647
- end
3648
- s0 << r4
3649
- if r4
3650
- r5 = _nt_name_val_list
3651
- s0 << r5
3652
- if r5
3653
- r6 = _nt_CRLF
3654
- s0 << r6
3655
- end
3656
- end
3657
- end
3658
- end
3659
- if s0.last
3660
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
3661
- r0.extend(ObsReceived0)
3662
- else
3663
- @index = i0
3664
- r0 = nil
3665
- end
3666
-
3667
- node_cache[:obs_received][start_index] = r0
3668
-
3669
- r0
3670
- end
3671
-
3672
- def _nt_obs_path
3673
- start_index = index
3674
- if node_cache[:obs_path].has_key?(index)
3675
- cached = node_cache[:obs_path][index]
3676
- if cached
3677
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3678
- @index = cached.interval.end
3679
- end
3680
- return cached
3681
- end
3682
-
3683
- r0 = _nt_obs_angle_addr
3684
-
3685
- node_cache[:obs_path][start_index] = r0
3686
-
3687
- r0
3688
- end
3689
-
3690
- module ObsOptional0
3691
- def field_name
3692
- elements[0]
3693
- end
3694
-
3695
- def unstructured
3696
- elements[3]
3697
- end
3698
-
3699
- def CRLF
3700
- elements[4]
3701
- end
3702
- end
3703
-
3704
- def _nt_obs_optional
3705
- start_index = index
3706
- if node_cache[:obs_optional].has_key?(index)
3707
- cached = node_cache[:obs_optional][index]
3708
- if cached
3709
- cached = SyntaxNode.new(input, index...(index + 1)) if cached == true
3710
- @index = cached.interval.end
3711
- end
3712
- return cached
3713
- end
3714
-
3715
- i0, s0 = index, []
3716
- r1 = _nt_field_name
3717
- s0 << r1
3718
- if r1
3719
- s2, i2 = [], index
3720
- loop do
3721
- r3 = _nt_WSP
3722
- if r3
3723
- s2 << r3
3724
- else
3725
- break
3726
- end
3727
- end
3728
- r2 = instantiate_node(SyntaxNode,input, i2...index, s2)
3729
- s0 << r2
3730
- if r2
3731
- if has_terminal?(":", false, index)
3732
- r4 = instantiate_node(SyntaxNode,input, index...(index + 1))
3733
- @index += 1
3734
- else
3735
- terminal_parse_failure(":")
3736
- r4 = nil
3737
- end
3738
- s0 << r4
3739
- if r4
3740
- r5 = _nt_unstructured
3741
- s0 << r5
3742
- if r5
3743
- r6 = _nt_CRLF
3744
- s0 << r6
3745
- end
3746
- end
3747
- end
3748
- end
3749
- if s0.last
3750
- r0 = instantiate_node(SyntaxNode,input, i0...index, s0)
3751
- r0.extend(ObsOptional0)
3752
- else
3753
- @index = i0
3754
- r0 = nil
3755
- end
3756
-
3757
- node_cache[:obs_optional][start_index] = r0
3758
-
3759
- r0
3760
- end
3761
-
3762
- end
3763
-
3764
- class RFC2822ObsoleteParser < Treetop::Runtime::CompiledParser
3765
- include RFC2822Obsolete
3766
- end
3767
-
3768
- end