バッカス記法 (BNF: Backus Nauer Form) の構文について

更新 : 2007 年 11 月

ここで使用する ATL レジストラのスクリプトは、BNF 構文で記述されています。BNF 構文では、次の表に示す表記を使用します。

表記規則/記号

説明

::=

等しいことを表します。

|

論理和を表します。

X+

1 つ以上の X です。

[X]

X はオプションです。オプションの区切り記号は、[] で表します。

太字のテキスト

リテラル文字列です。

斜体のテキスト

リテラル文字列を生成する方法を示します。

上の表で示したように、レジストラ スクリプトではリテラル文字列を使用します。これらのリテラル文字列は、スクリプトに実際に表示される文字列です。ATL レジストラ スクリプトで使用するリテラル文字列を次の表に示します。

リテラル文字列

動作

ForceRemove

次のキーが指定されている場合は、そのキーを完全に削除してから再作成します。

NoRemove

登録解除中に、次に指定されているキーを削除の対象外とします。

val

<Key Name> が実際の名前付きの値であることを示します。

Delete

登録中に、次に指定されたキーを削除します。

s

次に指定された値が文字列 (REG_SZ) であることを示します。

d

次に指定された値が DWORD 型 (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> ::= 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 は、16 進の 55 (10 進の 85) に設定された DWORD 値です。この書式は、Visual Basic の仕様に見られる &H 表記を踏襲しています。この書式の詳細については、Hex 関数 (Visual Basic) を参照してください。

参照

参照

レジストラ スクリプトの作成