Warning, /pim/trojita/src/Imap/Parser/rfc5322.abnf is written in an unsupported language. File is not indexed.

0001 quoted-pair     =   ("\" (VCHAR / WSP)) / obs-qp
0002 
0003 
0004 FWS             =   ([*WSP CRLF] 1*WSP) /  obs-FWS
0005                                        ; Folding white space
0006 
0007 ctext           =   %d33-39 /          ; Printable US-ASCII
0008                     %d42-91 /          ;  characters not including
0009                     %d93-126 /         ;  "(", ")", or "\"
0010                     obs-ctext
0011 
0012 ccontent        =   ctext / quoted-pair / comment
0013 
0014 comment         =   "(" *([FWS] ccontent) [FWS] ")"
0015 
0016 CFWS            =   (1*([FWS] comment) [FWS]) / FWS
0017 
0018 atext           =   ALPHA / DIGIT /    ; Printable US-ASCII
0019                     "!" / "#" /        ;  characters not including
0020                     "$" / "%" /        ;  specials.  Used for atoms.
0021                     "&" / "'" /
0022                     "*" / "+" /
0023                     "-" / "/" /
0024                     "=" / "?" /
0025                     "^" / "_" /
0026                     "`" / "{" /
0027                     "|" / "}" /
0028                     "~"
0029 
0030 atom            =   [CFWS] 1*atext [CFWS]
0031 
0032 dot-atom-text   =   1*atext *("." 1*atext)
0033 
0034 dot-atom        =   [CFWS] dot-atom-text [CFWS]
0035 
0036 specials        =   "(" / ")" /        ; Special characters that do
0037                     "<" / ">" /        ;  not appear in atext
0038                     "[" / "]" /
0039                     ":" / ";" /
0040                     "@" / "\" /
0041                     "," / "." /
0042                     DQUOTE
0043 
0044 
0045 qtext           =   %d33 /             ; Printable US-ASCII
0046                     %d35-91 /          ;  characters not including
0047                     %d93-126 /         ;  "\" or the quote character
0048                     obs-qtext
0049 
0050 qcontent        =   qtext / quoted-pair
0051 
0052 quoted-string   =   [CFWS]
0053                     DQUOTE ((1*([FWS] qcontent) [FWS]) / FWS) DQUOTE
0054                     [CFWS]
0055 
0056 
0057 word            =   atom / quoted-string
0058 
0059 phrase          =   1*word / obs-phrase
0060 
0061 unstructured    =   (*([FWS] VCHAR) *WSP) / obs-unstruct
0062 
0063 
0064 date-time       =   [ day-of-week "," ] date time [CFWS]
0065 
0066 day-of-week     =   ([FWS] day-name) / obs-day-of-week
0067 
0068 day-name        =   "Mon" / "Tue" / "Wed" / "Thu" /
0069                     "Fri" / "Sat" / "Sun"
0070 
0071 date            =   day month year
0072 
0073 day             =   ([FWS] 1*2DIGIT FWS) / obs-day
0074 
0075 month           =   "Jan" / "Feb" / "Mar" / "Apr" /
0076                     "May" / "Jun" / "Jul" / "Aug" /
0077                     "Sep" / "Oct" / "Nov" / "Dec"
0078 
0079 year            =   (FWS 4*DIGIT FWS) / obs-year
0080 
0081 time            =   time-of-day zone
0082 
0083 time-of-day     =   hour ":" minute [ ":" second ]
0084 
0085 hour            =   2DIGIT / obs-hour
0086 
0087 minute          =   2DIGIT / obs-minute
0088 
0089 second          =   2DIGIT / obs-second
0090 
0091 zone            =   (FWS ( "+" / "-" ) 4DIGIT) / obs-zone
0092 
0093 
0094 address         =   mailbox / group
0095 
0096 mailbox         =   name-addr / addr-spec
0097 
0098 name-addr       =   [display-name] angle-addr
0099 
0100 angle-addr      =   [CFWS] "<" addr-spec ">" [CFWS] /
0101                     obs-angle-addr
0102 
0103 group           =   display-name ":" [group-list] ";" [CFWS]
0104 
0105 display-name    =   phrase
0106 
0107 mailbox-list    =   (mailbox *("," mailbox)) / obs-mbox-list
0108 
0109 address-list    =   (address *("," address)) / obs-addr-list
0110 
0111 group-list      =   mailbox-list / CFWS / obs-group-list
0112 
0113 
0114 addr-spec       =   local-part "@" domain
0115 
0116 local-part      =   dot-atom / quoted-string / obs-local-part
0117 
0118 domain          =   dot-atom / domain-literal / obs-domain
0119 
0120 domain-literal  =   [CFWS] "[" *([FWS] dtext) [FWS] "]" [CFWS]
0121 
0122 dtext           =   %d33-90 /          ; Printable US-ASCII
0123                     %d94-126 /         ;  characters not including
0124                     obs-dtext          ;  "[", "]", or "\"
0125 
0126 message         =   (fields / obs-fields)
0127                     [CRLF body]
0128 
0129 body            =   (*(*998text CRLF) *998text) / obs-body
0130 
0131 text            =   %d1-9 /            ; Characters excluding CR
0132                     %d11 /             ;  and LF
0133                     %d12 /
0134                     %d14-127
0135 
0136 fields          =   *(trace
0137                       *optional-field /
0138                       1*(resent-date /
0139                         resent-from /
0140                         resent-sender /
0141                         resent-to /
0142                         resent-cc /
0143                         resent-bcc /
0144                         resent-msg-id))
0145                     *(orig-date /
0146                     from /
0147                     sender /
0148                     reply-to /
0149                     to /
0150                     cc /
0151                     bcc /
0152                     message-id /
0153                     in-reply-to /
0154                     references /
0155                     subject /
0156                     comments /
0157                     keywords /
0158                     optional-field)
0159 
0160 
0161 orig-date       =   "Date:" date-time CRLF
0162 
0163 
0164 from            =   "From:" mailbox-list CRLF
0165 
0166 sender          =   "Sender:" mailbox CRLF
0167 
0168 reply-to        =   "Reply-To:" address-list CRLF
0169 
0170 
0171 to              =   "To:" address-list CRLF
0172 
0173 cc              =   "Cc:" address-list CRLF
0174 
0175 bcc             =   "Bcc:" [address-list / CFWS] CRLF
0176 
0177 
0178 message-id      =   "Message-ID:" msg-id CRLF
0179 
0180 in-reply-to     =   "In-Reply-To:" 1*msg-id CRLF
0181 
0182 references      =   "References:" 1*msg-id CRLF
0183 
0184 msg-id          =   [CFWS] "<" id-left "@" id-right ">" [CFWS]
0185 
0186 id-left         =   dot-atom-text / obs-id-left
0187 
0188 id-right        =   dot-atom-text / no-fold-literal / obs-id-right
0189 
0190 no-fold-literal =   "[" *dtext "]"
0191 
0192 
0193 subject         =   "Subject:" unstructured CRLF
0194 
0195 comments        =   "Comments:" unstructured CRLF
0196 
0197 keywords        =   "Keywords:" phrase *("," phrase) CRLF
0198 
0199 
0200 resent-date     =   "Resent-Date:" date-time CRLF
0201 
0202 resent-from     =   "Resent-From:" mailbox-list CRLF
0203 
0204 resent-sender   =   "Resent-Sender:" mailbox CRLF
0205 
0206 resent-to       =   "Resent-To:" address-list CRLF
0207 
0208 resent-cc       =   "Resent-Cc:" address-list CRLF
0209 
0210 resent-bcc      =   "Resent-Bcc:" [address-list / CFWS] CRLF
0211 
0212 resent-msg-id   =   "Resent-Message-ID:" msg-id CRLF
0213 
0214 
0215 trace           =   [return]
0216                     1*received
0217 
0218 return          =   "Return-Path:" path CRLF
0219 
0220 path            =   angle-addr / ([CFWS] "<" [CFWS] ">" [CFWS])
0221 
0222 received        =   "Received:" *received-token ";" date-time CRLF
0223 
0224 received-token  =   word / angle-addr / addr-spec / domain
0225 
0226 optional-field  =   field-name ":" unstructured CRLF
0227 
0228 field-name      =   1*ftext
0229 
0230 ftext           =   %d33-57 /          ; Printable US-ASCII
0231                     %d59-126           ;  characters not including
0232                                        ;  ":".
0233 
0234 obs-NO-WS-CTL   =   %d1-8 /            ; US-ASCII control
0235                     %d11 /             ;  characters that do not
0236                     %d12 /             ;  include the carriage
0237                     %d14-31 /          ;  return, line feed, and
0238                     %d127              ;  white space characters
0239 
0240 obs-ctext       =   obs-NO-WS-CTL
0241 
0242 obs-qtext       =   obs-NO-WS-CTL
0243 
0244 obs-utext       =   %d0 / obs-NO-WS-CTL / VCHAR
0245 
0246 obs-qp          =   "\" (%d0 / obs-NO-WS-CTL / LF / CR)
0247 
0248 obs-body        =   *(%d0-127)
0249 
0250 obs-unstruct    =   *( (*CR 1*(obs-utext / FWS)) / 1*LF ) *CR
0251 
0252 
0253 obs-phrase      =   word *(word / "." / CFWS)
0254 
0255 obs-phrase-list =   [phrase / CFWS] *("," [phrase / CFWS])
0256 
0257 obs-FWS         =   1*([CRLF] WSP)
0258 
0259 obs-day-of-week =   [CFWS] day-name [CFWS]
0260 
0261 obs-day         =   [CFWS] 1*2DIGIT [CFWS]
0262 
0263 obs-year        =   [CFWS] 2*DIGIT [CFWS]
0264 
0265 obs-hour        =   [CFWS] 2DIGIT [CFWS]
0266 
0267 obs-minute      =   [CFWS] 2DIGIT [CFWS]
0268 
0269 obs-second      =   [CFWS] 2DIGIT [CFWS]
0270 
0271 obs-zone        =   "UT" / "GMT" /     ; Universal Time
0272                                        ; North American UT
0273                                        ; offsets
0274                     "EST" / "EDT" /    ; Eastern:  - 5/ - 4
0275                     "CST" / "CDT" /    ; Central:  - 6/ - 5
0276                     "MST" / "MDT" /    ; Mountain: - 7/ - 6
0277                     "PST" / "PDT" /    ; Pacific:  - 8/ - 7
0278                                        ;
0279 
0280 
0281 
0282                     %d65-73 /          ; Military zones - "A"
0283                     %d75-90 /          ; through "I" and "K"
0284                     %d97-105 /         ; through "Z", both
0285                     %d107-122          ; upper and lower case
0286 
0287 obs-angle-addr  =   [CFWS] "<" obs-route addr-spec ">" [CFWS]
0288 
0289 obs-route       =   obs-domain-list ":"
0290 
0291 obs-domain-list =   *(CFWS / ",") "@" domain
0292                     *("," [CFWS] ["@" domain])
0293 
0294 obs-mbox-list   =   *([CFWS] ",") mailbox *("," [mailbox / CFWS])
0295 
0296 obs-addr-list   =   *([CFWS] ",") address *("," [address / CFWS])
0297 
0298 obs-group-list  =   1*([CFWS] ",") [CFWS]
0299 
0300 obs-local-part  =   word *("." word)
0301 
0302 obs-domain      =   atom *("." atom)
0303 
0304 obs-dtext       =   obs-NO-WS-CTL / quoted-pair
0305 
0306 obs-fields      =   *(obs-return /
0307                     obs-received /
0308                     obs-orig-date /
0309                     obs-from /
0310                     obs-sender /
0311                     obs-reply-to /
0312                     obs-to /
0313                     obs-cc /
0314                     obs-bcc /
0315                     obs-message-id /
0316                     obs-in-reply-to /
0317                     obs-references /
0318                     obs-subject /
0319                     obs-comments /
0320                     obs-keywords /
0321                     obs-resent-date /
0322                     obs-resent-from /
0323                     obs-resent-send /
0324                     obs-resent-rply /
0325                     obs-resent-to /
0326                     obs-resent-cc /
0327                     obs-resent-bcc /
0328                     obs-resent-mid /
0329                     obs-optional)
0330 
0331 
0332 obs-orig-date   =   "Date" *WSP ":" date-time CRLF
0333 
0334 obs-from        =   "From" *WSP ":" mailbox-list CRLF
0335 
0336 obs-sender      =   "Sender" *WSP ":" mailbox CRLF
0337 
0338 obs-reply-to    =   "Reply-To" *WSP ":" address-list CRLF
0339 
0340 
0341 obs-to          =   "To" *WSP ":" address-list CRLF
0342 
0343 obs-cc          =   "Cc" *WSP ":" address-list CRLF
0344 
0345 obs-bcc         =   "Bcc" *WSP ":"
0346                     (address-list / (*([CFWS] ",") [CFWS])) CRLF
0347 
0348 obs-message-id  =   "Message-ID" *WSP ":" msg-id CRLF
0349 
0350 obs-in-reply-to =   "In-Reply-To" *WSP ":" *(phrase / msg-id) CRLF
0351 
0352 obs-references  =   "References" *WSP ":" *(phrase / msg-id) CRLF
0353 
0354 obs-id-left     =   local-part
0355 
0356 obs-id-right    =   domain
0357 
0358 obs-subject     =   "Subject" *WSP ":" unstructured CRLF
0359 
0360 obs-comments    =   "Comments" *WSP ":" unstructured CRLF
0361 
0362 obs-keywords    =   "Keywords" *WSP ":" obs-phrase-list CRLF
0363 
0364 
0365 obs-resent-from =   "Resent-From" *WSP ":" mailbox-list CRLF
0366 
0367 obs-resent-send =   "Resent-Sender" *WSP ":" mailbox CRLF
0368 
0369 obs-resent-date =   "Resent-Date" *WSP ":" date-time CRLF
0370 
0371 obs-resent-to   =   "Resent-To" *WSP ":" address-list CRLF
0372 
0373 obs-resent-cc   =   "Resent-Cc" *WSP ":" address-list CRLF
0374 
0375 obs-resent-bcc  =   "Resent-Bcc" *WSP ":"
0376                     (address-list / (*([CFWS] ",") [CFWS])) CRLF
0377 
0378 obs-resent-mid  =   "Resent-Message-ID" *WSP ":" msg-id CRLF
0379 
0380 obs-resent-rply =   "Resent-Reply-To" *WSP ":" address-list CRLF
0381 
0382 obs-return      =   "Return-Path" *WSP ":" path CRLF
0383 
0384 obs-received    =   "Received" *WSP ":" *received-token CRLF
0385 
0386 obs-optional    =   field-name *WSP ":" unstructured CRLF
0387 
0388