BNF范式

来源:互联网 发布:js window scrollto 编辑:程序博客网 时间:2024/09/21 09:21
巴科斯范式义同BNF范式(BNF: Backus-Naur Form 的缩写)描述计算机语言语法的符号集
  在双引号中的字("word")代表着这些字符本身。而double_quote用来代表双引号。
  在双引号外的字(有可能有下划线)代表着语法部分。
  尖括号( < > )内包含的为必选项。
  方括号( [ ] )内包含的为可选项。
  大括号( { } )内包含的为可重复0至无数次的项。
  竖线( | )表示在其左右两边任选一项,相当于"OR"的意思。
  ::= 是“被定义为”的意思。

巴科斯范式示例

finger查询请求的BNF(巴克斯-诺尔范式)定义如下:

--------------------------------------------------------------------------
{Q1}   ::= [{W}|{W}{S}{U}]{C}
{Q2}   ::= [{W}{S}][{U}]{H}{C}
{U}    ::= username
{H}    ::= @hostname | @hostname{H}
{W}    ::= /W
{S}    ::= <SP> | <SP>{S}
{C}    ::= <CRLF>

<CRLF>

   \r\n,即\x0D\x0A

<SP>

   空格,即\x20。

{S}

   这个是递归定义的,意味着空格可以重复任意次数。

原创粉丝点击