了解巴科斯-诺尔范式 (BNF) 语法

本主题使用 BNF 语法来描述 ATL 注册器使用的脚本,将使用下表中所示的表示法。

约定/符号 含义
::= 等效
| OR
X+ 一个或多个 X。
[X] X 是可选的。 可选的分隔符由 [] 表示。
任何粗体文本 字符串文本。
任何斜体文本 如何构造字符串文本。

如上表所示,注册器脚本使用字符串文本。 这些值是必须出现在脚本中的实际文本。 下表介绍了在 ATL 注册器脚本中使用的字符串文本。

字符串文本 操作
ForceRemove 完全删除下一个项(如果存在),然后重新创建它。
NoRemove 取消注册期间不会删除下一个项。
val 指定 <Key Name> 实际上是命名值。
删除 注册期间删除下一个项。
s 指定下一个值是字符串 (REG_SZ)。
d 指定下一个值是 DWORD (REG_DWORD)。
m 指定下一个值是多字符串 (REG_MULTI_SZ)。
b 指定下一个值是二进制值 (REG_BINARY)。

BNF 语法示例

以下是一些语法示例,有助于了解表示法和字符串文本在 ATL 注册器脚本中的工作原理。

语法示例 1

<registry expression> ::= <添加键>

指定 registry expression 等效于 Add Key

语法示例 2

<registry expression> ::= <添加键> | <删除键>

指定 registry expression 等效于 Add KeyDelete Key

语法示例 3

<键名> ::= '<AlphaNumeric>+'

指定 Key Name 等效于一个或多个 AlphaNumeric 值。

语法示例 4

<添加键> ::= [ForceRemove | NoRemove | val]<键名>

指定 Add Key 等效于 Key Name,并且指定字符串文本 ForceRemoveNoRemoveval 是可选的。

语法示例 5

<AlphaNumeric> ::= 任何不为 NULL 的字符,即 ASCII 0

指定 AlphaNumeric 等效于任何非 NULL 字符。

语法示例 6

val 'testmulti' = m 'String 1\0String 2\0'

指定项名称 testmulti 是由 String 1String 2 组成的多字符串值。

语法示例 7

val 'testhex' = d '&H55'

指定项名称 testhex 是设置为十六进制的 55(十进制为 85)的 DWORD 值。 请注意,此格式符合 Visual Basic 规范中找到的 &H 表示法

另请参阅

创建注册器脚本