Reload Original PagePrint PageEmail Page

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

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

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

正如前表中所指出的,注册器脚本使用字符串。这些值是必须出现在脚本中的实际的文本。下表描述 ATL 注册器脚本中使用的字符串。

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

以下是一些语法示例,可以帮助您理解表示法和字符串在 ATL 注册器脚本中的工作方式。

语法示例 1

<registry expression> ::= <Add Key>

指定 registry expression 等效于 Add Key

语法示例 2

<registry expression> ::= <Add Key> | <Delete Key>

指定 registry expression 等效于 Add KeyDelete Key

语法示例 3

<Key Name> ::= '<AlphaNumeric>+'

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

语法示例 4

<Add Key> ::= [ForceRemove | NoRemove | val]<Key Name>

指定 Add Key 等效于 Key Name,而且字符串、ForceRemoveNoRemove 以及 val 均为可选。

语法示例 5

<AlphaNumeric> ::= any character not NULL, that is, ASCII 0

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

语法示例 6

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

::...

免责声明:
当前网页内容, 由 大妈 ZoomQuiet 使用工具: ScrapBook :: Firefox Extension 人工从互联网中收集并分享;
内容版权归原作者所有;
本人对内容的有效性/合法性不承担任何强制性责任.
若有不妥, 欢迎评注提醒:

或是邮件反馈可也:
askdama[AT]googlegroups.com


点击注册~> 获得 100$ 体验券: DigitalOcean Referral Badge

订阅 substack 体验古早写作:


关注公众号, 持续获得相关各种嗯哼:
zoomquiet


自怼圈/年度番新

DU22.4
关于 ~ DebugUself with DAMA ;-)
粤ICP备18025058号-1
公安备案号: 44049002000656 ...::