BNF 规则

BNF 规则BNF 基本要点 部分 BNF 的基本语法 符号 使用符号的表达式 双引号 中的字符串 word 代表这些字符本身 而 double quote 代表双引号 双引号外的字符串 有可能带下划线 代表语法部分 尖括号 lt gt 中的内容为必选项 方括号 中的内容为可选项 大括号 中的内容为可重复 0 至无限次的 使用符号的表达式 符号

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

(0)
上一篇 2026年3月20日 上午8:59
下一篇 2026年3月20日 上午8:59


相关推荐

  • windows下git server搭建

    windows下git server搭建

    2022年4月3日
    173
  • 服务器centos6.5安装教程_服务器是什么系统

    服务器centos6.5安装教程_服务器是什么系统操作系统下载地址:https://pan.baidu.com/s/17Vcx81m_ZnGmxnHFlMrvog密码:v7b3安装完成NeoKylin操作系统之后进行虚拟网卡静态IP配置虚拟化环境搭建:Vmware或Virtuabox1.1. 虚拟机网络模式VMnet0表示的是用于桥接模式下的虚拟交换机;VMnet1表示的是用于仅主机模式下的虚拟交换机;VMnet8表示的是用于NAT模式下的虚拟交换机。综述:VMware安装成功之后

    2022年8月10日
    10
  • 有高校提醒:严禁办公电脑安装“龙虾”!

    有高校提醒:严禁办公电脑安装“龙虾”!

    2026年3月12日
    2
  • C生成随机字符串

    C生成随机字符串summary 生成随机字符串 转载请注明来自 http www uzhanbao com summary paramname length 目标字符串的长度 paramname length

    2026年3月18日
    2
  • vs2012安装教程_vs2005安装图解

    vs2012安装教程_vs2005安装图解Microsoft 的安装包怎么会这样呢?昨天做VS2005 Web项目时,不能加载项目,显示无效还是不支持的安装包,网上搜一下,发现是没有打补丁,急忙在微软网站下载VS2005SP1 补丁,下载家里速度是可以,不到半个小完成.当从22:22分开始安装,装到00:35,整整2个多小时,真是郁闷,怎么是这样的安装包呢,完成了倒是可以打开项目了,不提示上面提到的错误!

    2022年10月6日
    6
  • Redis命令之hscan

    Redis命令之hscan1 业务背景在互联网的项目中为了提高性能和吞吐量 通常需要做一些优化和数据异构 比如查询 DB 我们可以优化索引 通过命中索引来提高查询速度 也可以把数据异构到 Redis 虽然 Redis 的性能非常好也支持 5 种数据结构 如果想性能更好的话 可以考虑异构到 JVM 缓存 也就是 DB 的数据异构到 Redis Redis 的数据定期异构到 JVM 缓存 2 带来问题在 Redis 中通过用一个 hashmap 来存储业务数据 当这些业务数据比较小 我们可以通过 hGetAll 来获取 redis 的整个 map 然后设

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号