增强型巴科斯范式ABNF
RFC2234 定义了增加型巴科斯范式(ABNF)。近年来在Internet的定义中 ABNF 被广泛使用。ABNF 做了更多的改进。增强型巴科斯-瑙尔范式(ABNF)基于了巴科斯-瑙尔范式(BNF),但由它自己的语法和推导规则构成。这种元语言的发起原则是描述作为通信协议(双向规范)的语言的形式系统。它建档于 RFC 4234 中通常充当 IETF 通信协议的定义语言。
4.1. 推导规则
ABNF 规定是一组推导规则,写为:
规则 = 定义 ; 注释 CR LF
说明:
这里的规则是大小写敏感的非终结符,定义是由定义这个规则的符号序列、一个文档注释组成,并结束于回车换行。
规则名字是大小写不敏感的:, , 和 都提及同一个规则。规则名字由开始于一个字母的字母、数字和连字符组成。不要求用尖括号(“<”, “>”) (如 BNF 那样)包围规则名字。但是它们可以用来界定规则名字,比如在冗文中识别出规则名字的时候。ABNF 使用 7-位 ASCII 编码,在 8-位域中把高位置零。
终结符由一个或多个数值字符指定。数值字符可以指定为跟随着基数(b = 二进制, d = 十进制, x = 十六进制)的一个百分号“%”,随后是这个数值,或数值的串联(用“.” 来指示)。例如回车可以指定为十进制的 %d13 或十六进制的 %x0D。回车换行可以指定为 %d13.10。
文字正文通过使用包围在引号(")中字符串来指定。这些字符串是大小写不敏感的,使用的字符集是 US-ASCII。所以字符串“abc”将匹配“abc”, “Abc”, “aBc”, “abC”, “ABc”, “AbC”, “aBC” 和 “ABC”。对于大小写敏感匹配,必须定义明确的字符: 要匹配 “aBc” 定义将是 %d97 %d66 %d99。
4.2. 操作符
空白被用来分隔定义的各个元素: 要使空格被识别为分割符则必须明确的包含它。
4.3. 串联
规则1 规则2
规则可以通过列出一序列的规则名字来定义。
示例:
要匹配字符串“aba”可以使用下列规则:
fu = %x61; a
bar = %x62; b
mumble = fu bar fu
4.4. 选择
规则1 / 规则2
规则可以通过用反斜杠(“/”)分隔的多选一规则来定义。
示例:
要接受规则 或规则 可构造如下规则:
fubar = fu / bar
4.5. 递增选择
规则1 =/ 规则2
可以通过使用在规则名字和定义之间的“=/”来向一个规则增加补充选择。
示例:
规则
ruleset = alt1 / alt2 / alt3 / alt4 / alt5
等价于
ruleset = alt1 / alt2
ruleset =/ alt3
ruleset =/ alt4 / alt5
4.6. 值范围
%c##-##
数值范围可以通过使用连字符(“-”)来指定。
示例:
规则
OCTAL = "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7"
等价于
OCTAL = %x30-37
4.7. 序列分组
(规则1 规则2)
元素可以放置在圆括号中来组合定义中的规则。
示例:
要匹配“elem fubar snafu”或“elem tarfu snafu”可以构造下列规则:
group = elem (fubar / tarfu) snafu
要匹配“elem fubar”或“tarfu snafu”可以构造下列规则:
group = elem fubar / tarfu snafu
group = (elem fubar) / (tarfu snafu)
4.8. 可变重复
n*m规则
要指示一个元素的重复可以使用形式 *元素。可选的 给出要包括的元素的最小数目,缺省为 0。可选的 给出要包括的元素的最大数目,缺省为无穷。
对零或多个元素使用 *元素,对一或多个元素使用 1*元素,对二或三个元素使用 2*3元素。
4.9. 特定重复
n规则
要指示明确数目的元素可使用形式 元素,它等价于 *元素。
使用 2DIGIT 得到两个数字,使用 3DIGIT 得到三个数字。(DIGIT 在下面的核心规则中定义)。
4.10. 可选序列
[规则]
示例:
要指示可选元素下列构造是等价的:
[fubar snafu]
*1(fubar snafu)
0*1(fubar snafu)
4.11. 注释
; 注释
分号(“;”)开始一个注释并持续到此行的结束。
4.12. 操作符优先级
上述操作符有从最紧绑定(binding)到最松绑定的给定优先级:
字符串,名字形成(formation)
注释
值范围
重复
分组,可选
串联
选择
与串联一起使用选择操作符可以造成混淆,建议使用分组来做明确串联分组。
RFC2234 定义了增加型巴科斯范式(ABNF)。近年来在Internet的定义中 ABNF 被广泛使用。ABNF 做了更多的改进。增强型巴科斯-瑙尔范式(ABNF)基于了巴科斯-瑙尔范式(BNF),但由它自己的语法和推导规则构成。这种元语言的发起原则是描述作为通信协议(双向规范)的语言的形式系统。它建档于 RFC 4234 中通常充当 IETF 通信协议的定义语言。
4.1. 推导规则
ABNF 规定是一组推导规则,写为:
规则 = 定义 ; 注释 CR LF
说明:
这里的规则是大小写敏感的非终结符,定义是由定义这个规则的符号序列、一个文档注释组成,并结束于回车换行。
规则名字是大小写不敏感的:
终结符由一个或多个数值字符指定。数值字符可以指定为跟随着基数(b = 二进制, d = 十进制, x = 十六进制)的一个百分号“%”,随后是这个数值,或数值的串联(用“.” 来指示)。例如回车可以指定为十进制的 %d13 或十六进制的 %x0D。回车换行可以指定为 %d13.10。
文字正文通过使用包围在引号(")中字符串来指定。这些字符串是大小写不敏感的,使用的字符集是 US-ASCII。所以字符串“abc”将匹配“abc”, “Abc”, “aBc”, “abC”, “ABc”, “AbC”, “aBC” 和 “ABC”。对于大小写敏感匹配,必须定义明确的字符: 要匹配 “aBc” 定义将是 %d97 %d66 %d99。
4.2. 操作符
空白被用来分隔定义的各个元素: 要使空格被识别为分割符则必须明确的包含它。
4.3. 串联
规则1 规则2
规则可以通过列出一序列的规则名字来定义。
示例:
要匹配字符串“aba”可以使用下列规则:
fu = %x61; a
bar = %x62; b
mumble = fu bar fu
4.4. 选择
规则1 / 规则2
规则可以通过用反斜杠(“/”)分隔的多选一规则来定义。
示例:
要接受规则
fubar = fu / bar
4.5. 递增选择
规则1 =/ 规则2
可以通过使用在规则名字和定义之间的“=/”来向一个规则增加补充选择。
示例:
规则
ruleset = alt1 / alt2 / alt3 / alt4 / alt5
等价于
ruleset = alt1 / alt2
ruleset =/ alt3
ruleset =/ alt4 / alt5
4.6. 值范围
%c##-##
数值范围可以通过使用连字符(“-”)来指定。
示例:
规则
OCTAL = "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7"
等价于
OCTAL = %x30-37
4.7. 序列分组
(规则1 规则2)
元素可以放置在圆括号中来组合定义中的规则。
示例:
要匹配“elem fubar snafu”或“elem tarfu snafu”可以构造下列规则:
group = elem (fubar / tarfu) snafu
要匹配“elem fubar”或“tarfu snafu”可以构造下列规则:
group = elem fubar / tarfu snafu
group = (elem fubar) / (tarfu snafu)
4.8. 可变重复
n*m规则
要指示一个元素的重复可以使用形式 *元素。可选的 给出要包括的元素的最小数目,缺省为 0。可选的 给出要包括的元素的最大数目,缺省为无穷。
对零或多个元素使用 *元素,对一或多个元素使用 1*元素,对二或三个元素使用 2*3元素。
4.9. 特定重复
n规则
要指示明确数目的元素可使用形式 元素,它等价于 *元素。
使用 2DIGIT 得到两个数字,使用 3DIGIT 得到三个数字。(DIGIT 在下面的核心规则中定义)。
4.10. 可选序列
[规则]
示例:
要指示可选元素下列构造是等价的:
[fubar snafu]
*1(fubar snafu)
0*1(fubar snafu)
4.11. 注释
; 注释
分号(“;”)开始一个注释并持续到此行的结束。
4.12. 操作符优先级
上述操作符有从最紧绑定(binding)到最松绑定的给定优先级:
字符串,名字形成(formation)
注释
值范围
重复
分组,可选
串联
选择
与串联一起使用选择操作符可以造成混淆,建议使用分组来做明确串联分组。
#2021-2022欧洲乒乓球男子冠军联赛#
【参赛俱乐部】https://t.cn/A6M5c94y
STAGE 1
GROUP A
AS PONTOISE CERGY (France)
CTT BORGES (Spain)
CSS-SZAK ODORHEIU SECUIESC (Romania)
GDCS JUNCAL (Portugal)
GROUP B
SPG FELBERMAYR WELS (Austria)
PTE PEAC KALO-MEH (Hungary)
TTC SOKAH HOBOKEN (Belgium)
TTC NEU-ULM (Germany)
GROUP C
TTC OSTRAVA 2016 (Czech Republic)
K.S. DEKORGLASS DZIALDOWO (Poland)
TOP SPIN MESSINA FONTALBA (Italy)
TTSC UMMC-ELEM (Russian Federation)
GROUP D
LEKA ENEA MARPEX
SOLEX-CONSULT WIENER NEUSTADT (Austria)
SF SKK EL NINO PRAHA (Czech Republic)
STK STARR CROATIA (Croatia)
STAGE 2
GROUP A
BORUSSIA DUSSELDORF (Germany)
SPORTING CLUBE DE PORTUGAL (Portugal)
GROUP B
TTSC UMMC (Russian Federation)
GV HENNEBONT TT (France)
GROUP C
1. FC SAARBRÜCKEN TT (Germany)
ROSKILDE BORDTENNIS BTK61 (Denmark)
GROUP D
FAKEL GAZPROM ORENBURG (Russian Federation)
KS DARTOM BOGORIA GRODZISK MAZOWIECKI (Poland)
【参赛俱乐部】https://t.cn/A6M5c94y
STAGE 1
GROUP A
AS PONTOISE CERGY (France)
CTT BORGES (Spain)
CSS-SZAK ODORHEIU SECUIESC (Romania)
GDCS JUNCAL (Portugal)
GROUP B
SPG FELBERMAYR WELS (Austria)
PTE PEAC KALO-MEH (Hungary)
TTC SOKAH HOBOKEN (Belgium)
TTC NEU-ULM (Germany)
GROUP C
TTC OSTRAVA 2016 (Czech Republic)
K.S. DEKORGLASS DZIALDOWO (Poland)
TOP SPIN MESSINA FONTALBA (Italy)
TTSC UMMC-ELEM (Russian Federation)
GROUP D
LEKA ENEA MARPEX
SOLEX-CONSULT WIENER NEUSTADT (Austria)
SF SKK EL NINO PRAHA (Czech Republic)
STK STARR CROATIA (Croatia)
STAGE 2
GROUP A
BORUSSIA DUSSELDORF (Germany)
SPORTING CLUBE DE PORTUGAL (Portugal)
GROUP B
TTSC UMMC (Russian Federation)
GV HENNEBONT TT (France)
GROUP C
1. FC SAARBRÜCKEN TT (Germany)
ROSKILDE BORDTENNIS BTK61 (Denmark)
GROUP D
FAKEL GAZPROM ORENBURG (Russian Federation)
KS DARTOM BOGORIA GRODZISK MAZOWIECKI (Poland)
#新品推荐# #人间值得买#
流光溢彩的有机玻璃,夏日的治愈系!
【通透】水晶般的透明度,带来92%以上的透光率,拥有它,像走进森林里的小湖泊;
【耐用】较高的表面硬度与光泽度,使得它在使用中安全系数很高,比起玻璃更为稳定;
【色调】落日橙与青柠绿的搭配,是属于夏天的满满治愈感~
【北欧表情】店内搜索【FAN】【ELEM】
流光溢彩的有机玻璃,夏日的治愈系!
【通透】水晶般的透明度,带来92%以上的透光率,拥有它,像走进森林里的小湖泊;
【耐用】较高的表面硬度与光泽度,使得它在使用中安全系数很高,比起玻璃更为稳定;
【色调】落日橙与青柠绿的搭配,是属于夏天的满满治愈感~
【北欧表情】店内搜索【FAN】【ELEM】
✋热门推荐