语法结构使用BNF范式形式给出,先作一个简单了解。web
在双引号中的字("word")表明着这些字符自己。而double_quote用来表明双引号。
在双引号外的字(有可能有下划线)表明着语法部分。
尖括号( < > )内包含的为必选项。
方括号( [ ] )内包含的为可选项。
大括号( { } )内包含的为可重复0至无数次的项。
竖线( | )表示在其左右两边任选一项,至关于"OR"的意思。
::= 是“被定义为”的意思。
BNF 语法使用下表中显示的表示法。ide
约定/符号 | 含义 |
---|---|
::= |
等效 |
| |
OR |
X+ |
一个或多个 X 。 |
[X] |
X 可选。可选的分隔符由 [] 表示。 |
任何粗体文本 | 字符串。 |
任何斜体 文本 | 如何构造字符串。 |
正如前表中所指出的,注册器脚本使用字符串。这些值是必须出如今脚本中的实际的文本。下表描述 ATL 注册器脚本中使用的字符串。spa
字符串 | 操做 |
---|---|
ForceRemove | 彻底移除下一项(若是存在),而后从新建立它。 |
NoRemove | 在“注销”期间不移除下一项。 |
val | 指定 <Key Name> 其实是一个命名值。 |
Delete | 在“注册”期间删除下一项。 |
s | 指定下一个值为字符串 (REG_SZ)。 |
d | 指定下一个值为 DWORD (REG_DWORD)。 |
m | 指定下一个值为多字符串 (REG_MULTI_SZ)。 |
b | 指定下一个值为二进制值 (REG_BINARY)。 |
如下是一些语法示例,能够帮助您理解表示法和字符串在 ATL 注册器脚本中的工做方式。code
- <registry expression> ::= <Add Key>
指定 registry expression
等效于 Add Key
。orm
- <registry expression> ::= <Add Key> | <Delete Key>
指定 registry expression
等效于 Add Key
或 Delete Key
。ci
- <Key Name> ::= '<AlphaNumeric>+'
指定 Key Name
等效于一个或多个 AlphaNumeric
。字符串
- <Add Key> ::= [ForceRemove | NoRemove | val]<Key Name>
指定 Add Key
等效于 Key Name
,并且字符串、ForceRemove
、NoRemove
以及 val
均为可选。string
- <AlphaNumeric> ::= any character not NULL, that is, ASCII 0
指定 AlphaNumeric
等效于任何非空字符。it
- val 'testmulti' = m 'String 1\0String 2\0'
指定项名 testmulti
是由 String 1
和 String 2
组成的多字符串值。