Partager via


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.

Voir aussi

Création de scripts d’inscription