Appendix A -- Collected Grammar
この附属書は,この標準仕様書(TS)で規定されるすべての構文の,完全なBNF文法を含む。
This appendix contains the complete BNF grammar for all the syntax
specified by this document.
しかし,これ自身では,文法が完全でない。
これはRFC 822で定義される多くの構文規則を名前で参照する。
ここでそれらの文法を再生成して二つの間に意図しない違いを生じる危険を冒すのではなく,この標準仕様書(TS)は,残りの定義については,単にRFC 822を読者に参照させる。
用語が未定義である場合,それはRFC 822の定義を参照する。
By itself, however, this grammar is incomplete. It refers by name to
several syntax rules that are defined by RFC 822. Rather than
reproduce those definitions here, and risk unintentional differences
between the two, this document simply refers the reader to RFC 822
for the remaining definitions. Wherever a term is undefined, it
refers to the RFC 822 definition.
boundary := 0*69>bchars< bcharsnospace
bchars := bcharsnospace / " "
bcharsnospace := DIGIT / ALPHA / "'" / "(" / ")" /
"+" / "_" / "," / "-" / "." /
"/" / ":" / "=" / "?"
body-part := <RFC 822で定義されている"message"は,
すべてのヘッダフィールドはオプションで,
指定されたdash-boundaryで始まらず,
本体部分のどこにも区切り子はない。
このテキストに記述されているように,
部分のセマンティクスはメッセージの
セマンティクスとは違うことに注意。>
close-delimiter := delimiter "--"
dash-boundary := "--" boundary
; Content-Typeフィールドの
; boundaryパラメタの値から
; 境界。
delimiter := CRLF dash-boundary
discard-text := *(*text CRLF)
; 無視又は削除してよい。
encapsulation := delimiter transport-padding
CRLF body-part
epilogue := discard-text
multipart-body := [preamble CRLF]
dash-boundary transport-padding CRLF
body-part *encapsulation
close-delimiter transport-padding
[CRLF epilogue]
preamble := discard-text
transport-padding := *LWSP-char
; 作成者は長さゼロのトランスポート
; パディングを生成してはならず,
; 受信者はメッセージトランスポート
; により加えられたパディングを
; 扱えなければならない。
boundary := 0*69 bcharsnospace
bchars := bcharsnospace / " "
bcharsnospace := DIGIT / ALPHA / "'" / "(" / ")" /
"+" / "_" / "," / "-" / "." /
"/" / ":" / "=" / "?"
body-part := <"message" as defined in RFC 822, with all
header fields optional, not starting with the
specified dash-boundary, and with the
delimiter not occurring anywhere in the
body part. Note that the semantics of a
part differ from the semantics of a message,
as described in the text.>
close-delimiter := delimiter "--"
dash-boundary := "--" boundary
; boundary taken from the value of
; boundary parameter of the
; Content-Type field.
delimiter := CRLF dash-boundary
discard-text := *(*text CRLF)
; May be ignored or discarded.
encapsulation := delimiter transport-padding
CRLF body-part
epilogue := discard-text
multipart-body := [preamble CRLF]
dash-boundary transport-padding CRLF
body-part *encapsulation
close-delimiter transport-padding
[CRLF epilogue]
preamble := discard-text
transport-padding := *LWSP-char
; Composers MUST NOT generate
; non-zero length transport
; padding, but receivers MUST
; be able to handle padding
; added by message transports.