Présentation de la syntaxe BNF (Backus Nauer Form)
Les scripts utilisés par l’enregistreur ATL sont décrits dans cette rubrique avec la syntaxe BNF, qui utilise la notation indiquée dans le tableau suivant.
Convention/symbole | Signification |
---|---|
::= | Équivalent |
| | OR |
+X | Un ou plusieurs X. |
[X] | X est facultatif. Les délimiteurs facultatifs sont indiqués par []. |
Du texte en gras | Un littéral de chaîne. |
Du texte en italique | Comment construire le littéral de chaîne |
Comme indiqué dans le tableau précédent, les scripts d’enregistreur utilisent des littéraux de chaîne. Ces valeurs sont le texte réel qui doit apparaître dans votre script. Le tableau suivant décrit les littéraux de chaîne utilisés dans un script d’enregistreur ATL.
Littéral de chaîne | Action |
---|---|
ForceRemove | Supprime complètement la clé suivante (si elle existe), puis la recrée. |
NoRemove | Ne supprime pas la clé suivante lors de la désinscription. |
val | Spécifie que <Key Name> est en réalité une valeur nommée. |
Supprimer | Supprime la clé suivante lors de l’inscription. |
s | Spécifie que la valeur suivante est une chaîne (REG_SZ). |
d | Spécifie que la valeur suivante est un DWORD (REG_DWORD). |
m | Spécifie que la valeur suivante est une multichaîne (REG_MULTI_SZ). |
b | Spécifie que la valeur suivante est une valeur binaire (REG_BINARY). |
Exemples de syntaxe BNF
Voici quelques exemples de syntaxe pour vous aider à comprendre le fonctionnement de la notation et des littéraux de chaîne dans un script d’enregistreur ATL.
Exemple de syntaxe 1
<expression> de registre ::= <Ajouter une clé>
spécifie que registry expression
équivaut à Add Key
.
Exemple de syntaxe 2
<expression> de registre ::= <Ajouter une clé> | <Supprimer la clé>
spécifie que registry expression
équivaut à Add Key
ou à Delete Key
.
Exemple de syntaxe 3
<Nom> de clé ::= '<AlphaNumeric>+'
spécifie qu’elle Key Name
équivaut à une ou plusieurs AlphaNumeric
valeurs.
Exemple de syntaxe 4
<Ajouter une clé> ::= [ForceRemove | NoRemove | val]Nom de clé<>
spécifie que Add Key
équivaut à Key Name
, et que les littéraux de chaîne, ForceRemove
, NoRemove
et val
sont facultatifs.
Exemple de syntaxe 5
<AlphaNumeric> ::= tout caractère non NULL, autrement dit, ASCII 0
spécifie que AlphaNumeric
équivaut à n’importe quel caractère non NULL.
Exemple de syntaxe 6
val 'testmulti' = m 'String 1\0String 2\0'
spécifie que le nom de clé testmulti
est une valeur multichaîne composée de String 1
et de String 2
.
Exemple de syntaxe 7
val 'testhex' = d '&H55'
spécifie que le nom de clé testhex
est une valeur DWORD définie sur 55 en hexadécimal (85 en décimal). Notez que ce format respecte la notation &H qui est celle de la spécification Visual Basic.