Backus-Naur form (BNF) 構文を理解する
ATL レジストラーで使用されるスクリプトは、このトピックでは BNF 構文を使用して記述されています。つまり、次の表に示されている表記を使用しています。
規則/シンボル | 意味 |
---|---|
同等の | |
| | OR |
+X | 1 つ以上の X。 |
[X] | X は省略可能です。 省略可能な区切り記号は [] で示されています。 |
すべての太字テキスト | 文字列リテラル。 |
すべての斜体テキスト | 文字列リテラルを作成する方法。 |
上記の表に示されているように、レジストラー スクリプトでは文字列リテラルが使用されます。 これらの値は、スクリプトに表示する必要がある実際のテキストです。 次の表で、ATL レジストラー スクリプトで使用される文字列リテラルについて説明します。
文字列リテラル | アクション |
---|---|
ForceRemove | 次のキー (存在する場合) を完全に削除してから再作成します。 |
NoRemove | 登録解除時に次のキーを削除しません。 |
val | <Key Name> が実際には名前付きの値であることを指定します。 |
削除 | 登録時に次のキーを削除します。 |
s | 次の値が文字列 (REG_SZ) であることを指定します。 |
d | 次の値がダブルワード (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
が 1 つ以上の 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
が任意の NULL 以外の文字と等しいことを指定します。
構文例 6
val 'testmulti' = m 'String 1\0String 2\0'
キー名 testmulti
が String 1
と String 2
で構成される複数行文字列の値であることを指定します。
構文例 7
val 'testhex' = d '&H55'
キー名 testhex
が 16 進数の 55 (10 進数の 85) に設定されたダブルワード値であることを指定します。 この形式は、Visual Basic 仕様に記載されている &H 表記に準拠していることに注意してください。