附属書A.文法一覧

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<bchars> 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.