BNF范式
2012-06-09 23:07
351 查看
巴科斯范式义同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}
这个是递归定义的,意味着空格可以重复任意次数。
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}
这个是递归定义的,意味着空格可以重复任意次数。
相关文章推荐
- Java web应用中的常见字符编码问题的解决方法
- Enigma脱壳、Enigma过注册各个版本总结
- 递归和迭代术
- AWAY3D4更新GOLD版本
- CSS 入门
- Eclipse 快捷键 代码补全 总是提示“No Default Proposals”
- Android实时绘制效果(二)
- Android实时绘制效果(一) 推荐
- 走进Delphi
- C++中的单例模式
- JavaScript全局变量的避免(《JavaScript语言精粹》相关笔记)
- SQL Server 2008的外围应用配置器到哪里去了
- F# 处理 WebBrowser
- 关于单调队列的个人理解
- DIV+CSS中让布局居中_背景图片居中_文字内容居中
- 白话地图投影之图解投影
- 语录
- java1.7 里的新特性有什么?
- Ubuntu下LaTex中文环境配置
- lstrcpy strcpy 区别