Commit 92040639d8da73c796d1033b9475f4be0998e346

Drop obsolete BNFC experiment.
  
1------------------------------------------------------------------------------
2------------------------------------------------------------------------------
3
4----- 4.1 SMTP Commands ------------------------------------------------------
5
6
7
8----- 4.1.2 Command Argument Syntax ------------------------------------------
9
10
11 RevPath . ReversePath ::= Path ;
12 NullPath . ReversePath ::= "<>" ;
13
14 ForwPostM . ForwardPath ::= Postmaster ;
15 ForwPath . ForwardPath ::= Path ;
16 Postmaster . Postmaster ::= "<POSTMASTER@" Domain ">" ;
17 LocalPostmaster . Postmaster ::= "<POSTMASTER>" ;
18
19
20 RoutePath . Path ::= "<" AtDomain [AtDomain] ":" Mailbox ">" ;
21 MailboxPath . Path ::= "<" Mailbox ">" ;
22 [] . [AtDomain] ::= ;
23 (:) . [AtDomain] ::= "," AtDomain [AtDomain] ;
24 AtDomain . AtDomain ::= "@" Domain ;
25
26 MailParam . MailParams ::= EsmtpParam [EsmtpParam] ;
27 RcptParam . RcptParams ::= EsmtpParam [EsmtpParam] ;
28 EsmtpFlag . EsmtpParam ::= EsmtpKeyword ;
29 EsmtpParam . EsmtpParam ::= EsmtpKeyword "=" EsmtpValue ;
30 [] . [EsmtpParam] ::= ;
31 (:) . [EsmtpParam] ::= EsmtpParam [EsmtpParam];
32
33 EsmtpKeyword . EsmtpKeyword ::= Atom ;
34 EsmtpValue . EsmtpValue ::= Atom ;
35 -- TODO: esmtp-keyword = (ALPHA / DIGIT) *(ALPHA / DIGIT / "-")
36 -- esmtp-value = 1*(%d33-60 / %d62-127)
37 -- ; any CHAR excluding "=", SP, and control characters
38 -- Keyword = Ldh-str
39 -- Argument = Atom
40
41 Domain . Domain ::= SubDomain "." SubDomain [SubDomain] ;
42 DomainLit . Domain ::= AddrLiteral ;
43 [] . [SubDomain] ::= ;
44 (:) . [SubDomain] ::= "." SubDomain [SubDomain] ;
45 SubDomain . SubDomain ::= Atom ;
46 -- TODO: SubDomain . SubDomain ::= LetDig LdhStr ;
47 -- Let-dig = ALPHA / DIGIT
48 -- Ldh-str = *( ALPHA / DIGIT / "-" ) Let-dig
49
50 Ip4Lit . AddrLiteral ::= "[" IpAddrLiteral "]" ;
51 Ip6Lit . AddrLiteral ::= "[" IpSixAddrLiteral "]" ;
52
53 Mailbox . Mailbox ::= LocalPart "@" Domain ;
54 LPDot . LocalPart ::= DotString [DotString] ;
55 LPQuot . LocalPart ::= QuotedString ;
56
57 DotString . DotString ::= Atom ;
58 [] . [DotString] ::= ;
59 (:) . [DotString] ::= "." DotString [DotString] ;
60
61 token Atom ( letter | digit | ["!#$%&'*+-/=?^_`{|}~"] )+ ;
62
63 QuotedString . QuotedString ::= String ;
64
65 StrAtom . RfcString ::= Atom ;
66 StrQuoted . RfcString ::= QuotedString ;
67
68
69----- 4.1.3 Address Literals -----------------------------------------
70
71--
72--
73--
74--
75--
76
77 Ip4AddrLit . IpAddrLiteral ::= Atom "." Atom "." Atom "." Atom ;
78 Ip6AddrLit . IpSixAddrLiteral ::= "IPv6:" IpSixAddr ;
79 -- Note: Unlike in the MailFrom or RcptTo terminals, we
80 -- cannot use ("IPv6" ":"), because this would
81 -- match ("::" ":") -- rather than the other way
82 -- roud -- in an empty IPv6 address literal:
83 -- "[Ipv6:::]".
84
85 Ip6AddrFull . IpSixAddr ::= Atom ":" Atom ":" Atom ":" Atom ":" Atom ":" Atom ":" Atom ":" Atom ;
86 Ip6v4Full . IpSixAddr ::= Atom ":" Atom ":" Atom ":" Atom ":" Atom ":" Atom ":" IpAddrLiteral ;
87 Ip6AddrComp . IpSixAddr ::= IpSixAtom [IpSixAtom] ;
88
89 IpSixAtom . IpSixAtom ::= Atom ;
90 IpSixDot . IpSixAtom ::= "." ;
91 IpSixColon . IpSixAtom ::= ":" ;
92 IpSixDoubleColon. IpSixAtom ::= "::" ;
93 [] . [IpSixAtom] ::= ;
94 (:) . [IpSixAtom] ::= IpSixAtom [IpSixAtom] ;
95
96----- 4.1.4 Order of Commands ----------------------------------------
97--
98--
99--
100--
101--
102--
103--
104--
105--
106--
107--
108--
109--
110--
111--
112--
113--
114--
115--
116--
117--
118--
119--
120--
121--
122--
123--
124--
125--
126--
127--
128--
129--
130--
131--
132--
133--
134--
135--
136--
137--
138--
139--
140--
141--
142--
143--
144--
145--
146--
147--
148--
149--
150--
151--
152--
153--
154--
155--
156--
157--
158--
159--
160--
161--
162--
163--
164--
165--
166--
167--
168--
169--
170--
171--
172--
173--
174--
175--
176--
177--
178--
179--
180--
181--
182--
183--
184--
185--
186--
187--
188--
189--
190--
191--
192--
193--
194--
195--
196--
197--
198--
199--
200--
201--
202--
203--
204--
205--
206--
207--
208--
209--
210--
211--
212--
213--
214--
215--
216--
217--
218--
219--
220--
221--
222--
223--
224--
225--
226--
227--
228--
229--
230--
231--
232--
233--
234--
235--
236--
237--
238--
239--
240--
241--
242--
243--
244--
245--
246--
247--
248--
249--
250--
251--
252--
253--
254--
255--
256--
257--
258--
259--
260--
261--
262--
263--
264--
265--
266--
267--
268--
269--
270--
271--
272--
273--
274--
275--
276--
277--
278--
279--
280--
281--
282--
283--
284--
285--
286--
287--
288--
289--
290--
291--
292--
293--
294--
295--
296--
297--
298--
299--
300--
301--
302--
303--
304--
305--
306--
307--
308--
309--
310--
311--
312--
313--
314--
315--
316--
317--
318--
319--
320--
321--
322--
323--
324--
325--
326--
327--
328--
329--
330--
331--
332--
333--
334--
335--
336--
337--
338--
339--
340--
341--
342--
343--
344--
345--
346--
347--
348--
349--
350--
351--
352--
353--
354--
355--
356--
357--
358--
359--
360--
361--
362--
363--
364--
365--
366--
367--
368--
369--
370--
371--
372--
373--
374--
375--
376--
377--
378--
379--
380--
381--
382--
383--
384--
385--
386--
387--
388--
389--
390--
391--
392--
393--
394--
395--
396--
397--
398--
399--
400--
401--
402--
403--
404--
405--
406--
407--
408--
409--
410--
411--
412--
413--
414--
415--
416--
417--
418--
419--
420--
421--
422--
423--
424--
425--
426--
427--
428--
429--
430--
431--
432--
433--