了解巴科斯-诺尔范式 (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 Key
或 Delete Key
。
语法示例 3
<键名> ::= '<AlphaNumeric>+'
指定 Key Name
等效于一个或多个 AlphaNumeric
值。
语法示例 4
<添加键> ::= [ForceRemove | NoRemove | val]<键名>
指定 Add Key
等效于 Key Name
,并且指定字符串文本 ForceRemove
、NoRemove
和 val
是可选的。
语法示例 5
<AlphaNumeric> ::= 任何不为 NULL 的字符,即 ASCII 0
指定 AlphaNumeric
等效于任何非 NULL 字符。
语法示例 6
val 'testmulti' = m 'String 1\0String 2\0'
指定项名称 testmulti
是由 String 1
和 String 2
组成的多字符串值。
语法示例 7
val 'testhex' = d '&H55'
指定项名称 testhex
是设置为十六进制的 55(十进制为 85)的 DWORD 值。 请注意,此格式符合 Visual Basic 规范中找到的 &H 表示法。