理解巴科斯-诺尔范式 (BNF) 语法
2011-08-07 12:08
387 查看
理解巴科斯-诺尔范式 (BNF) 语法
语法结构使用BNF范式形式给出,先做一个简单了解。
在双引号中的字("word")代表着这些字符本身。而double_quote用来代表双引号。
在双引号外的字(有可能有下划线)代表着语法部分。
尖括号( < > )内包含的为必选项。
方括号( [ ] )内包含的为可选项。
大括号( { } )内包含的为可重复0至无数次的项。
竖线( | )表示在其左右两边任选一项,相当于"OR"的意思。
::= 是“被定义为”的意思。
BNF 语法使用下表中显示的表示法。
正如前表中所指出的,注册器脚本使用字符串。这些值是必须出现在脚本中的实际的文本。下表描述 ATL 注册器脚本中使用的字符串。
指定
指定
指定
指定
指定
指定项名
语法结构使用BNF范式形式给出,先做一个简单了解。
在双引号中的字("word")代表着这些字符本身。而double_quote用来代表双引号。
在双引号外的字(有可能有下划线)代表着语法部分。
尖括号( < > )内包含的为必选项。
方括号( [ ] )内包含的为可选项。
大括号( { } )内包含的为可重复0至无数次的项。
竖线( | )表示在其左右两边任选一项,相当于"OR"的意思。
::= 是“被定义为”的意思。
BNF 语法使用下表中显示的表示法。
约定/符号 | 含义 |
---|---|
::= | 等效 |
| | OR |
X+ | 一个或多个 X。 |
[X] | X可选。可选的分隔符由 []表示。 |
任何粗体文本 | 字符串。 |
任何斜体 文本 | 如何构造字符串。 |
字符串 | 操作 |
---|---|
ForceRemove | 完全移除下一项(如果存在),然后重新创建它。 |
NoRemove | 在“注销”期间不移除下一项。 |
val | 指定 <Key Name>实际上是一个命名值。 |
Delete | 在“注册”期间删除下一项。 |
s | 指定下一个值为字符串 (REG_SZ)。 |
d | 指定下一个值为 DWORD (REG_DWORD)。 |
m | 指定下一个值为多字符串 (REG_MULTI_SZ)。 |
b | 指定下一个值为二进制值 (REG_BINARY)。 |
BNF 语法示例
以下是一些语法示例,可以帮助您理解表示法和字符串在 ATL 注册器脚本中的工作方式。语法示例 1
<registry expression> ::= <Add Key>
指定
registry expression等效于
Add Key。
语法示例 2
<registry expression> ::= <Add Key> | <Delete Key>
指定
registry expression等效于
Add Key或
Delete Key。
语法示例 3
<Key Name> ::= '<AlphaNumeric>+'
指定
Key Name等效于一个或多个
AlphaNumeric。
语法示例 4
<Add Key> ::= [ForceRemove | NoRemove | val]<Key Name>
指定
Add Key等效于
Key Name,而且字符串、
ForceRemove、
NoRemove以及
val均为可选。
语法示例 5
<AlphaNumeric> ::= any character not NULL, that is, ASCII 0
指定
AlphaNumeric等效于任何非空字符。
语法示例 6
val 'testmulti' = m 'String 1\0String 2\0'
指定项名
testmulti是由
String 1和
String 2组成的多字符串值。
相关文章推荐
- 语法规范:BNF与ABNF 巴斯克范式
- 巴克斯-诺尔范式语法说明
- 巴科斯-诺尔(BNF范式)范式
- 语法规范:BNF与ABNF 巴斯克范式
- 学习巴克斯范式BNF(Backus Naur Form)读懂SAP HANA语法
- 巴科斯-诺尔范式
- 语法规范:BNF与ABNF 巴斯克范式
- [置顶] 正则表达式语法等价字符/常用运算符/分割语法/正则等价简写释义速记理解技巧
- javascript基础语法――全面理解变量和标识符
- 数据库几大范式的理解
- 数据库三大范式简单理解
- 全面理解.htaccess语法中RewriteCond和RewriteRule意义
- 数据库设计范式的理解
- java基础语法、继承与重载、super、static、finally、String与StringBuffer的深入理解
- 对关系型数据库五个范式的理解
- PostgreSQL 的 语法分析的理解(三)
- 数据库设计(范式理解知识)
- HTML5之appcache语法理解/HTML5应用程序缓存/manifest缓存文件官方用法翻译
- 数据库三大范式另一角度的理解
- java语法,是理解、分析和解决任何java程序、框架、工程的万能切入点