Einführung in die BNF-Syntax (Backus Naur Form)
Die vom ATL-Registrar verwendeten Skripts sind in diesem Thema mit der BNF-Syntax beschrieben, für die die in der folgenden Tabelle aufgeführte Notation verwendet wird.
Konvention/Symbol | Bedeutung |
---|---|
::= | Entsprechung |
| | ODER |
+X | Mindestens ein X. |
[X] | X ist optional. Optionale Trennzeichen werden durch [] gekennzeichnet. |
Jeglicher fett ausgezeichnete Text | Ein Zeichenfolgenliteral. |
Jeglicher kursiv ausgezeichnete Text | Art und Weise, wie das Zeichenfolgenliteral erstellt wird. |
Wie in der obigen Tabelle angegeben ist, werden für Registrar-Skripts Zeichenfolgenliterale verwendet. Diese Werte sind tatsächlich Text, der in Ihrem Skript vorhanden muss. In der folgende Tabelle sind die Zeichenfolgenliterale beschrieben, die in einem ATL-Registrar-Skript verwendet werden.
Zeichenfolgenliteral | Aktion |
---|---|
ForceRemove | Entfernt den nächsten Schlüssel (sofern vorhanden) vollständig und erstellt diesen dann neu. |
NoRemove | Entfernt den nächsten Schlüssel beim Aufheben der Registrierung nicht. |
val | Gibt an, dass <Key Name> tatsächlich ein benannter Wert ist. |
Delete | Löscht den nächsten Schlüssel während der Registrierung. |
s | Gibt an, dass der nächste Wert eine Zeichenfolge (REG_SZ) ist. |
d | Gibt an, dass der nächste Wert ein DWORD-Wert (REG_DWORD) ist. |
m | Gibt an, dass der nächste Wert eine mehrteilige Zeichenfolge (REG_MULTI_SZ) ist. |
b | Gibt an, dass der nächste Wert ein Binärwert (REG_BINARY) ist. |
Beispiele für die BNF-Syntax
Es folgen einige Syntaxbeispiele, die Ihnen verdeutlichen sollen, wie die Notation und die Zeichenfolgenliterale in einem ATL-Registrar-Skript funktionieren.
Syntaxbeispiel 1
<Registrierungsausdruck> ::= <Schlüssel hinzufügen>
gibt an, dass registry expression
mit Add Key
identisch ist.
Syntaxbeispiel 2
<Registrierungsausdruck> ::= <Schlüssel> hinzufügen | <ENTF-TASTE>
gibt an, dass registry expression
entweder mit Add Key
oder mit Delete Key
identisch ist.
Syntaxbeispiel 3
<Schlüsselname> ::= '<AlphaNumeric>+'
Gibt an, dass Key Name
einem oder AlphaNumeric
mehreren Werten entspricht.
Syntaxbeispiel 4
<Schlüssel> hinzufügen ::= [ForceRemove NoRemove | | val]<Schlüsselname>
gibt an, dass Add Key
mit Key Name
identisch ist, und dass die Zeichenfolgenliterale ForceRemove
, NoRemove
und val
optional sind.
Syntaxbeispiel 5
<AlphaNumeric> ::= beliebiges Zeichen nicht NULL, d. a. ASCII 0
gibt an, dass AlphaNumeric
mit jedem Nicht-NULL-Zeichen identisch ist.
Syntaxbeispiel 6
val 'testmulti' = m 'String 1\0String 2\0'
gibt an, dass der Schlüsselname testmulti
eine mehrteilige Zeichenfolge ist, die aus String 1
und String 2
besteht.
Syntaxbeispiel 7
val 'testhex' = d '&H55'
gibt an, dass der Schlüsselname testhex
ein DWORD-Wert ist, der auf hexadezimal 55 (dezimal 85) festgelegt ist. Beachten Sie, dass dieses Format der &H-Notation entspricht, wie sie in der Visual Basic-Spezifikation enthalten ist.