RFC 822 的 BNF 规则中的符号是什么意思?
What does the ampersand mean in RFC 822's BNF rules?
The IETF RFC 822 有这些 BNF 规则:
text = <any CHAR, including bare ; => atoms, specials,
CR & bare LF, but NOT ; comments and
including CRLF> ; quoted-strings are
; NOT recognized.
qtext = <any CHAR excepting <">, ; => may be folded
"\" & CR, and including
linear-white-space>
dtext = <any CHAR excluding "[", ; => may be folded
"]", "\" & CR, & including
linear-white-space>
我想知道这些规则中的符号 &
表示什么。 RFC 822 自己的符号约定部分(第 2 节)未定义与符号。我假设 RFC 822 将 RFC 733 用于其 BNF/ABNF,但 RFC 733 也没有定义与符号的含义。
根据上下文,我确定了符号 不 表示以下任何内容:
- 列表项分隔符(这就是逗号的作用,和号不代表牛津逗号式表达式中的最终连词,因为我们在最后一个
,
之前看到 &
在 text
规则中)。
- 如果是列表项分隔符,在
dtext
的情况下应该如何解释?
- 串联(因为串联是通过两个相邻的产生式规则来描述的,它们之间没有运算符)。
- 此外,因为
CRLF
已经是CR和LF的串联,但是RFC 822在text
规则中区分了CRLF
和bare CR & bare LF
。
在 RFC 822 的勘误表中没有提及这一点 - 而 RFC 的后继 RFC(如 2822)用全新规则将规则替换为 & 符号,因此我无法从新语法中推断出它的含义。
那么&
是什么意思?
Shorthand英文单词"and"。它甚至遵守英文标点符号规则。
比较 RFC 822 中的两个定义:
qtext = <any CHAR excepting <">, ; => may be folded
"\" & CR, and including
linear-white-space>
dtext = <any CHAR excluding "[", ; => may be folded
"]", "\" & CR, & including
linear-white-space>
The IETF RFC 822 有这些 BNF 规则:
text = <any CHAR, including bare ; => atoms, specials,
CR & bare LF, but NOT ; comments and
including CRLF> ; quoted-strings are
; NOT recognized.
qtext = <any CHAR excepting <">, ; => may be folded
"\" & CR, and including
linear-white-space>
dtext = <any CHAR excluding "[", ; => may be folded
"]", "\" & CR, & including
linear-white-space>
我想知道这些规则中的符号 &
表示什么。 RFC 822 自己的符号约定部分(第 2 节)未定义与符号。我假设 RFC 822 将 RFC 733 用于其 BNF/ABNF,但 RFC 733 也没有定义与符号的含义。
根据上下文,我确定了符号 不 表示以下任何内容:
- 列表项分隔符(这就是逗号的作用,和号不代表牛津逗号式表达式中的最终连词,因为我们在最后一个
,
之前看到&
在text
规则中)。- 如果是列表项分隔符,在
dtext
的情况下应该如何解释?
- 如果是列表项分隔符,在
- 串联(因为串联是通过两个相邻的产生式规则来描述的,它们之间没有运算符)。
- 此外,因为
CRLF
已经是CR和LF的串联,但是RFC 822在text
规则中区分了CRLF
和bare CR & bare LF
。
- 此外,因为
在 RFC 822 的勘误表中没有提及这一点 - 而 RFC 的后继 RFC(如 2822)用全新规则将规则替换为 & 符号,因此我无法从新语法中推断出它的含义。
那么&
是什么意思?
Shorthand英文单词"and"。它甚至遵守英文标点符号规则。
比较 RFC 822 中的两个定义:
qtext = <any CHAR excepting <">, ; => may be folded
"\" & CR, and including
linear-white-space>
dtext = <any CHAR excluding "[", ; => may be folded
"]", "\" & CR, & including
linear-white-space>