BNF基本要点(部分):
- BNF的基本语法:
<符号>
::=
<使用符号的表达式>使用符号的表达式>
符号> - 双引号(” “)中的字符串(”word”)代表这些字符本身,而double_quote代表双引号。
- 双引号外的字符串(有可能带下划线)代表语法部分。
- 尖括号(< >)中的内容为必选项。
- 方括号([ ])中的内容为可选项。
- 大括号({ })中的内容为可重复0至无限次的项。
- 竖线(|)表示其左右两侧任选一项,相当于 OR 的意思。
- ::= 符号表示 “被定义为”的意思。
- …
ABNF 基本扩充要点(部分):
- ABNF的基本语法: name = elements crlf
- 用字符映射的ASCII码表示一个字符,格式为 %TYPE ,其中TYPE为进制(b/d/x三种), b for binary(二进制),d for decimal(十进制),x for hexadecimal(十六进制)。如 %d13 和 %x0D 都代表 CR。
- 用句号(.)相连,表示一串连续的字符,如 %d13.10 代表CRLF(即%d13和%d10相连接),再如 %x44.6f.6d.61.69.6e.3a 1*FWS 代表”Domain: “这一个字符串(注意最后还有一个空格)。
- …
ABNF的核心规则:
- ALPHA = %x41-5A / %x61-7A ; A-Z / a-z,即 大写和小写 ASCII 字母 (A-Z, a-z)
- BIT = “0” / “1” ; 即二进制字符
- DQUOTE = %x22 ; ” (Double Quote),即 双引号
- VCHAR = %x21-7E ; visible (printing) characters,即 可见字符
- CHAR = %x01-7F ; any 7-bit US-ASCII character, excluding NUL,7位
- OCTET = %x00-FF ; 8 bits of data,8位
- CTL = %x00-1F / %x7F ; controls,即 控制字符
- CR = %x0D ; carriage return,即 回车
- LF = %x0A ; linefeed,即 换行
- CRLF = CR LF ; Internet standard newline,即 互联网标准换行
- DIGIT = %x30-39 ; 0-9
- HEXDIG = DIGIT / “A” / “B” / “C” / “D” / “E” / “F” ;十六进制数字 (0-9, A-F, a-f)
- SP = %x20 ; 即 空行
- HTAB = %x09 ; horizontal tab,即 横向制表符(Tab)
- WSP = SP / HTAB ; white space,即 空格或横向制表符
- LWSP = *(WSP / CRLF WSP) ; 即 直线空白(晚于换行)
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/201630.html原文链接:https://javaforall.net
