SQL-92标准 中文翻译——定义、记号和约定 (记号)
2009-01-09 11:35
381 查看
3.2 记号
该国际标准中使用的语法符号是BNF 的一种扩展版本 ("Backus Naur Form" or "Backus Normal Form")。在BNF中,语言的每个语法元素通过一个产生规则定义。产生规则根据由字符,字符串和语法元素组成的规则定义元素。
在该国际标准中使用的BNF的版本,使用以下符号:
符号含义
< > 尖括号,用于分隔字符串,字符串为语法元素的名称,SQL语言的非终结符。
::= 定义操作符。用在生成规则中,分隔规则定义的元素和规则定义。 被定义的元素位于操作符的左边,规则定义位于操作符的右边。
[ ] 方括号表示规则中的可选元素。方括号中的规则部分可以明确指定也可以省略。
{ } 花括号聚集规则中的元素。在花括号中的规则部分必须明确指定。
| 替换操作符。 该竖线表明竖线之后的规则部分对于竖线之前的部分是可替换的。 如果竖线出现的位置不在花括号或方括号内,那么它指定对于该规则定义的元素的一个完整替换项。如果竖线出现的位置在花括号或方括号内,那么它指定花括号对或方括号对最里面内容的替换项。
. . . 省略号表明在规则中省略号应用的元素可能被重复多次。如果省略号紧跟在闭花括号"}"之后,那么它应用于闭花括号和开花括号"{"之间的规则部分。如果省略号出现在其他任何元素的后面,那么它只应用于该元素。
!! 介绍普通英文文本。BNF中没有表示某语法元素的定义时使用。
空格用来分隔语法元素。多个空格和多个换行符被视为单个空格。除了上面所给的特殊用途的符号, 在规则中的其它字符和字符串表示其本义。此外,如果定义操作符右边的符号全部由BNF中的符号组成,那么这些符号仅代表其本义,不需要考虑其特殊含义。
花括号对和方括号对内部可以任意嵌套,替换操作符可以出现在嵌套的任何地方。
形成任何语法元素实例的字符串可能产生自该元素的BNF定义,产生过程应用以下步骤:
1) 对于该元素,选择在产生规则右边定义的任意一个选项, 并用该选项替换该元素。
2) 替换每个省略号和省略号所应用的一个或多个对象的实例。
3) 对于方括号中的字符串部分, 要么删除括号和括号中的内容,要么将括号转换为花括号。
4) 对于花括号中的字符串部分,对其子字符串应用步骤1至步骤5,然后移除花括号。
5) 对于仍然在字符串中的非终结语法元素(如在尖括号中的名称),应用步骤1至步骤5 。
当字符串中不再存在非终结符时,扩展过程(或产生过程)完成。
相关文章推荐
- SQL-92标准 中文翻译——定义、记号和约定 (约定)
- SQL-92标准 中文翻译——定义、记号和约定 (定义)
- SQL-92标准 中文翻译
- SQL-92标准 中文翻译——范围
- SQL-92标准 中文翻译——概念 (数据类型)
- SQL-92标准 中文翻译 ——前言
- SQL-92标准 中文翻译——概念(字符串)
- SQL-92标准 中文翻译——概念(位字符串)
- SQL-92标准 中文翻译——简介
- SQL-92标准 中文翻译——规范性引用
- 86标准sql与92标准SQL用法区别
- 标准SQL规范中定义的四个事务隔离级别
- SQL 92 标准
- sql = 和<>遵循的sql-92标准的设置SET ANSI_NULLS ON
- 标准SQL规范中定义的四个事务隔离级别
- Spark SQL 官方文档-中文翻译
- 博客 其实是很臭的翻译 人人都可以对BLOG进行中文解释,而我依据第三标准解释为:勃渴
- 数据库笔记3————关系数据库标准语言SQL上(SQL的数据定义和数据更新)
- (翻译) LINQ to SQL(Part 2 定义数据模型类) 自ScottGu
- 标准SQL规范中定义的四个事务隔离级别